共识机制是区块链的核心技术之一,共识机制能够帮助区块链降低搭建信任关系的成本,实现价值互联网。那么具体什么是共识机制呢?先看一个简单的例子。
村里准备选出一个德才兼备的人当村长,每个人都有心目中的最佳人选,纷纷在村委为了这个村长的人选而哄吵不休,主办人根本没有办法听清楚人们在说什么。此时,主办人为了控制这种混乱的局面,只好敲鼓叫停,并且告诉大家这样哄吵半天也得不出结论,可以换一种方法,用投票选举的方式,谁获得的票数最多,谁就胜任村长的职务。大家一听这个办法很公平,于是就达成一致看法,最终用投票选举的方式选出了最佳人选。
在以上例子中,“一致看法”其实就是“共识机制”,换句话说,村民达成共识的方法和过程的集合就是一种共识机制。“共识机制”又可以称为“共识算法”。区块链中的共识机制就是通过特殊节点的投票,在很短的时间内完成对交易的验证和确认,在对一笔交易进行验证和确认的过程中,如果这些与利益毫不相干的众多节点能够达成共识,那么整个区块链中的所有节点就对这笔交易实现成功验证和确认。
共识机制的价值和意义是什么呢?由于区块链网络具有延迟的特性,所以在区块链分布式网络中的各个节点在受到交易信息的时间上存在一定的差异性,这就使得完成交易验证和确认存在时间先后问题,这样,每个节点在验证和确认交易的过程中,难以在时间上保持一致。而区块链的共识机制恰好可以有效解决这个“时间难以保持一致”的问题。共识机制就是在一个时间段内对事物的前后顺序达成共识的一种算法,就是解决达成共识的依据。
“拜占庭将军”问题对区块链的共识机制的时间一致性问题有很好的阐释。
拜占庭是东罗马帝国的首都,这里幅员辽阔,人们非常富有。为此,拜占庭周围有10个小国家非常垂涎拜占庭的财富,想一起攻打拜占庭,掠夺拜占庭的财富和土地。但由于拜占庭军队实力雄厚,只有6个以上国家的兵力相加才能打败拜占庭,而少于6个国家发起进攻,战争就会失败。(www.daowen.com)
然而,由于这10个国家都离得很远,在当时的条件下,人们通常用信鸽或邮差的方式传递消息,为了保证消息传递的过程中信鸽不会被误射或被拜占庭军队截获,这10个国家选择邮差送信,以沟通作战时间、作战战略等,并在这两个问题上达成共识。但是,这其中存在很多问题:即便邮差成功传递消息,但如果10个国家中有的国家的将军是叛徒,传递假的作战时间和作战战略该怎么办?如何才能排除叛徒的干扰,以达到作战行动统一的目的?
第一种方法就是传递口头消息,每个小国向其他9个国家发送作战消息,以确定进攻时间和方略。第二种方法是发送书面协议,每个小国向其他9个国家以书面的形式发送作战协议,同意的国家就在上面签字盖章。
但问题是,如果签字盖章造假,又如何能保证协议内容的一致性?另外,虽然10个小国组成了一个去中心化的系统,但每个国家都有决策权,那么如何保证协议发送的同步?
有这样一个解决方法:在系统中加入发送信息的成本,即一个时间段内只允许一个节点传播信息。其实加入的这一成本就是“工作量”,每个阶段都必须完成一个计算工作才能传递消息,这样谁第一个完成工作,谁才能第一个传播消息。当某一节点发出统一进攻的消息后,其他各个节点收到发起者的信息后必须签名盖章,以确认各自的身份。这就是现代加密技术。这种加密技术完全可以解决消息传送的私密性、身份确认、签名不可伪造和篡改,从而保证了信息传递的一致性和同步性。而这种为了达成作战共识而按照时间先后顺序进行的算法,就是共识算法,即共识机制。
前文中提到,区块链的共识机制中,常见的有工作量证明机制、股权证明机制、授权股权证明机制,然而不同的共识机制,其意义和作用也不尽相同。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。