想知道更多关于区块链技术知识,请百度【链客区块链技术问答社区】

链客,有问必答!

共识机制是区块链的核心基石,是区块链系统安全性的重要保障。区块链是一个去中心化的系统,共识机制通过数学的方式,让分散在全球各地成千上万的节点就区块的创建达成一致的意见。共识机制中还包含了促使区块链系统有效运转的激励机制,是区块链建立信任的基础。

区块链公链常用的共识机制有 POW、POS、DPOS、BFT 以及多种机制混合而成的共识机制等。共识是指系统节点达成一致的过程,而分布式系统的一致性体现在三个方面:

最终性(Termination): 所有进程最终会在有限步数中结束并选取一 个值, 算法不会无尽执行下去。

统一性(Agreement): 所有进程必须同意同一个值。

合法性(Validity): 输出内容是输入内容按照系统规则生成的,且输出内容合法。

最终性衡量了达成共识的效率,在一些对交易确认的实时性要求高的场景显 得非常重要,而统一性和合法性表征了共识的安全性。在区块链系统中,去中心 化程度表征了分布式系统的大规模协作程度。因此,我们从效率、安全性和去中 心化程度这三个维度去评价各种共识机制,也就是长铗提出的著名的“不可能三 角”3理论。
 比特币采用的 POW 工作量证明共识机制,在生成区块时,系统让所有节点 公平地去计算一个随机数,最先寻找到随机数的节点即是这个区块的生产者,并 获得相应的区块奖励。由于哈希函数是散列函数,求解随机数的唯一方法在数学 上只能是穷举,随机性非常好,每个人都可以参与协议的执行。由于梅克尔树根的设置,哈希函数的解的验证过程也能迅速实现。因此,比特币的 POW 共识机 制门槛很低,无需中心化权威的许可,人人都可以参与,并且每一个参与者都无 需身份认证。

算法简单,容易实现,节点可自由进入,去中心化程度高。

破坏系统需要投入极大的成本,安全性极高。

区块生产者的选择通过节点求解哈希函数实现,提案的产生、验证到共识的最终达成过程是一个纯数学问题,节点间无需交换额外的信息即可达成共识,整个过程不需要人性的参与。

比特币系统的设定在保证安全性的的前提下,牺牲了一部分最终性。因此,POW 共识算法也存在一些问题:

为了保证去中心化程度,区块的确认时间难以缩短。

没有最终性,需要检查点机制来弥补最终性,但随着确认次数的增加,达成共识的可能性也呈指数级地增长。由于这两个方面的问题,一笔交易为了确保安全,要在6 个新的区