作为一种全新种类的分布式系统,
区块链往往被错误地当作是一个分布式的数据库或日志系统,实际上区块链与传统的分布式系统之间有着本质的区别——去中心化。现在我们来审视一下区块链与传统分布式系统的主要区别:
(1)一致性算法:区块链需要解决的是拜占庭将军问题,即网络中存在一个或多个欺诈节点,可能会故意违反协议或传输错误的数据,因此区块链往往采用拜占庭容错的一致性算法(通常称为共识算法),如 BFT、PoW、PoS 等;而传统分布式系统只需考虑节点失效和通讯错误的情况,往往采用 paxos、raft 之类的一致性算法,这类算法不能对抗欺诈节点。
(2)中央控制方:在区块链网络中是不存在中央控制方的,没有一个节点可以控制或协调账本数据的生成,各节点通过共识算法进行协调,生成一致的账本。而传统发布式系统则往往是由一个机构进行控制,统一调度各节点参与运算。
(3)规则制定:区块链的规则就是共识协议,又称共识机制,共识算法是其中的一部分。共识机制一般是由一个人或一个团队设计制定,并开发出相应的程序,提供给社区使用。这一点似乎与传统的分布式系统一样,但区块链的共识机制的改变、升级是需要社区对此有一致的共识,如果不能达成共识,则任何人都可以实施硬分叉,另建一个社区、一条链。这就是共识机制的去中心化过程。
(4)计算模式:由于区块链节点之间不具有相互信任,因此区块链的业务计算是通过智能合约完成的,智能合约代码在网络上的所有(或部分)节点上同时运行,其执行结果通过共识算法在全网进行验证,通过这种计算上的冗余来保证计算结果的一致性。而传统分布式系统则无需考虑这些问题,同样的运算只需在一个或少数几个节点上进行,结果也无需其他节点验证,可以获得很高的效率。
(5)性能:区块链是以相对的低效率来换取公正,目前主流的公有链每秒只能处理几笔到几十笔交易,更高效的区块链软件正在研发之中;而分布式系统的性能理论上可以无限提升,目前已达到每秒数十万笔交易。
由此可见,区块链是一种特殊的分布式系统,通过解决拜占庭将军问题实现了非信任网络环境下的最终一致性,代价是相对较低的效率。如果剔除区块链的去中心化因素,由一个或几个中心节点来控制整个系统,则这种效率的牺牲变得毫无必要,区块链就退化为传统的分布式系统。
版权申明:本内容来自于互联网,属第三方汇集推荐平台。本文的版权归原作者所有,文章言论不代表链门户的观点,链门户不承担任何法律责任。如有侵权请联系QQ:3341927519进行反馈。