当前位置:首页 > 热点新闻 > 正文

什么是区块链共识(区块链共识算法解析)

区块链系统的本质就是一个分布式应用软件。分布式系统的首要问题就是如何解决一致性的问题,也就是如何在多个独立的节点之间达成共识。

在有错误的进程存在并且有可能出现网络分区的情况下,FLP 定理彻底关闭了在传统计算机算法体系下提出解决方案的大门。由社会学和博弈论得到启发,我们尝试引入以下机制。

(1)激励机制。比如,在拜占庭将军问题中给忠诚的将军以奖励。我们引进博弈论概念:不再把节点或者说将军分成公正/恶意(忠诚/ 背叛)两方,认为每一个节点的行为是由激励机制决定。我们认为, 人之初,性无善无恶。性的善恶由后台的激励机制决定,如果激励机制设置得当,考虑到每个节点都有最大化自己的利益的倾向,大部分的节点都会遵守规则,成为公正的节点。

(2)随机性。在拜占庭将军问题中,决定下一步行动需要将军们协调一致,确定统一的下一步计划。在传统的中心化系统中,由权威性的将军做决定。在去中心化的系统中,根据什么规则决定谁有记账权呢?

1)根据每个节点(将军)的计算力(computing power)来决定。谁的计算力强,解开某个谜题,就可以获得记账权(在拜占庭将军问题里是指挥权)。这是 PoW 共识协议。

2)根据每个节点(将军)具有的资源(stake)来决定。所用到的资源不能被垄断,谁投入的资源多,谁就可以获得记账权。这是 PoS 共识协议。

出于上面的考虑,我们引入上诉两种共识算法,试图更好的解决拜占庭将军问题。分布式共识协议具有以下两点属性:

1.如果所有公正节点达到共识,共识过程终止;

2.最后达成的共识必须是公正的。

联盟链的不同方面是从不同点涉及了中心化及去中心化。点对点网络是最接近去中心化的体系,任何一个人都可以运行一个联盟链节点,而且基本没有什么入门门槛,而挖矿领域具有非常高的中心化及挖矿能力集中的倾向。

对公正节点选择的假设可以让“隐性共识”成为可能。我们的共识协议有多个回合,每个回合都有对应着区块链里面的一个块。在每一个回合里,一个随机节点会被选中,然后这个节点可以提议这个链的下一个区块。联盟链共识算法,这个算法的简化假设是,可以随意选择一个节点,这些节点都不会受到女巫攻击的影响。

1.新的交易被广播到所有节点上。

2.每个节点都将新交易放进一个区块。

3.在每个回合,一个随机节点可以广播它的区块。

4.其他节点可以选择接受这个区块,前提是如果区块里的交易都是正当的(有真的签名)。

节点们可以把以上区块的哈希值放进自己的区块里,以此来表示它们对这个新区块的认可。

为使联盟链顺畅运行,公众必须就以下三个问题达成共识:

1.关于规则的共识。这里所说的规则是指包括确保交易或区块有效的机制,及运行时涉及的核心协议和数据格式等内容。人们需要就这些规则达成共识,这样,联盟链系统中的所有参与者才能就发生的情况相互沟通并达成协议。

2.关于历史记录的共识。参与者必须对区块链的内容,包括哪些是属于区块链,哪些是不属于区块链的内容达成共识,这样,公众才能就如何确认已发生的交易达成共识。在此基础上,公众就可以对未动用产出的数额及拥有人达成共识。这一共识源自区块链的创建过程和使各个节点对区块链内容的理解达成一致的过程。这是对联盟链中最常用且技术最复杂的一种共识。

3.关于 联盟链价值的共识。第三种共识要求公众普遍认为 联盟链是有价值的,任何一种货币,不管是像美元这样的法定货币,还是像比特币一样的数字加密货币,赖以存在的基础都是其具有价值的共识。公众普遍接受可以用它进行交易,在现在或未来可以用它换取其他有价值的东西。

对于这第三种共识具有一定的循环性。即我相信我今天收到的联盟链是有价值的,这取决于我希望明天收到这个 联盟链的人同样相信它的价值。因此,对价值共识的基础在于对价值延续性的共识。这有时被称为“仙子效应”(Tinkerbell effect),这个名字来源于童话故事《彼得潘》,仙子之所以存在,是因为你相信她存在。