区块链作为一种新型的分布式系统,往往被误认为是分布式数据库或日志系统。事实上,区块链和传统的分布式系统有本质的区别——分散化。
现在我们来看看区块链和传统分布式系统的主要区别:
(1)一致性算法:区块链需要解决拜占庭将军的问题,即网络中有一个或多个欺诈节点,可能故意违反协议或传输错误数据。因此,区块链通常使用拜占庭容错的一致性算法(通常称为共识算法),如BFT、PoW、PoS等等;传统的分布式系统只考虑节点故障和通信错误,通常使用paxos、raft这种算法不能对抗欺诈节点。
(2)中央控制方:区块链网络中没有中央控制器,也没有节点可以控制或协调帐簿数据的生成。每个节点通过共识算法协调生成一致的帐簿。
(2)中央控制方:区块链网络中没有中央控制器,也没有节点可以控制或协调帐簿数据的生成。每个节点通过共识算法协调生成一致的帐簿。传统的发布系统通常由机构控制,并统一调度每个节点参与操作。
(3)规则制定:区块链的规则是共识协议,也称为共识机制,共识算法是其中的一部分。共识机制通常由一个人或一个团队设计和制定,并为社区开发相应的程序。这似乎和传统的分布式系统一样,但区块链共识机制的改变和升级需要社区达成共识。如果不能达成共识,任何人都可以实施硬分叉,建立另一个社区和一条链。这是共识机制的分散过程。
(4)计算模式:由于区块链节点之间没有相互信任,区块链的业务计算是通过智能合约完成的。智能合约代码同时在网络上的所有(或部分)节点上运行,其执行结果通过共识算法在整个网络上验证,计算结果的一致性通过该计算的冗余来确保。传统的分布式系统不需要考虑这些问题些问题。同样的操作只需要在一个或几个节点上进行,需要其他节点验证,效率很高。
(5)性能:区块链以相对较低的效率换取公平性。目前,主流公共链每秒只能处理几到几十笔交易,正在开发更高效的区块链软件;理论上,分布式系统的性能可以无限提高,每秒可以达到数十万笔交易。