区块链的伟大之处就在于其解决了在不可信的“道路”上如何进行可信信息和价值的传递的问题。如果让你存一大笔钱,你会选择工行、建行这样的大银行,还是某不知名的地方小银行呢?我想你一定会选择前者,为什么?因为大银行可信。
既然信任问题这么重要,那么信任是如何在中心化系统中得到验证的呢?举个小例子:假如说我在上海的工行某支行A给身在深圳的我媳妇转了10万块钱。但是我媳妇在我转账后去当地深圳的工行某支行B来提款时,却发现这笔账在这边根本没有记录。然后打电话问我到底怎么回事。我又立刻去上海的支行A柜台查了一下,工作人员告诉我这笔账确实已经成功转过去了。这样,我这笔钱就“转丢”了!
以上问题的出现,其实就是工行支行A和B的账目系统没有达到一致性同步。既然账目都不一致,那何谈信任?
共识机制就是保证区块链网络中账本一致性的方法。因为各个记账节点之间并不是相互信任,甚至是不知道对方是谁。那么通过节点之间相互同步账本从而保证全世界的节点本地记录的账本全是一模一样的,则是一个去中心化账本系统的信任基石。
去中心化系统的共识机制同中心化系统的共识机制之间还存有很大的不同之处。宏观上看,中心化系统的共识机制就是复制最中心的账本。但是去中心化系统做不到这样,因为该系统中就没有一个核心的“中心”。而且,全账本是由全世界的节点在不同时间分别记的账组合而成,这就需要各节点之间指定一套规则,并且一折不扣地执行。
假设各个节点规定每个区块的名字都是要以该高度开头。那么在区块高度为1024的时候,节点A收到了三个区块,名字分别为“1023Alice”、“1024Bob”和“1025Chris”;节点B收到了三个区块,名字分别为“1024Bob”、“1025Dandy”和“1026Ella”;节点C只收到了一个区块,名字为“1027Frank”。那么根据之前定下的规则,节点A和B都会将区块“1024Bob”写入账本,而节点C将不做写账本操作直到收到符合规定的区块。
以上就是个极其简单的共识机制,当然真实的区块链共识机制要比这个复杂得多。
网友评论