从拜占庭将军问题到DPOS算法,共识算法

如何理解区块链的共识算法?

从拜占庭将军问题到DPOS算法,共识算法


区块链系统的本质就是一个分布式应用软件 。分布式系统的首要问题就是如何解决一致性的问题,也就是如何在多个独立的节点之间达成共识 。在有错误的进程存在并且有可能出现网络分区的情况下,FLP 定理彻底关闭了在传统计算机算法体系下提出解决方案的大门 。由社会学和博弈论得到启发,我们尝试引入以下机制 。(1)激励机制 。
比如,在拜占庭将军问题中给忠诚的将军以奖励 。我们引进博弈论概念:不再把节点或者说将军分成公正/恶意(忠诚/ 背叛)两方,认为每一个节点的行为是由激励机制决定 。我们认为, 人之初,性无善无恶 。性的善恶由后台的激励机制决定,如果激励机制设置得当,考虑到每个节点都有最大化自己的利益的倾向,大部分的节点都会遵守规则,成为公正的节点 。
(2)随机性 。在拜占庭将军问题中,决定下一步行动需要将军们协调一致,确定统一的下一步计划 。在传统的中心化系统中,由权威性的将军做决定 。在去中心化的系统中,根据什么规则决定谁有记账权呢?1)根据每个节点(将军)的计算力(computing power)来决定 。谁的计算力强,解开某个谜题,就可以获得记账权(在拜占庭将军问题里是指挥权) 。
这是 PoW 共识协议 。2)根据每个节点(将军)具有的资源(stake)来决定 。所用到的资源不能被垄断,谁投入的资源多,谁就可以获得记账权 。这是 PoS 共识协议 。出于上面的考虑,我们引入上诉两种共识算法,试图更好的解决拜占庭将军问题 。分布式共识协议具有以下两点属性:1.如果所有公正节点达到共识,共识过程终止;2.最后达成的共识必须是公正的 。
区块链的共识机制是什么?有哪些优缺点?
从拜占庭将军问题到DPOS算法,共识算法


【从拜占庭将军问题到DPOS算法,共识算法】共识机制用通俗的话讲就是制度,在中心化的世界里,不存在制度这一说 。因为一家之言可以决定走势 。例如,你用支付宝时候你一定不会怀疑谁在记录每一笔交易 。支付宝就是中心,支付宝负责记账 。可是在去中心的世界里面,怎么用一套制度来管理这些离散的节点呢?这种管理方式就称之为“共识机制” 。因此就有模仿我们人类社会的管理方式的共识机制 。
第一种“按劳分配”就是我们说的POW模式 。POW:全称Proof of Work,工作量证明 。简单的说就是干的多,拿得多 。我们现在挖矿的例如BTC,莱特等都是POW模式的币 。算力越高、挖矿时间越长,你获得的货币就越多 。优点比较公平,比较去中心化,缺点,所有节点都在工作计算一些没有实际意义的“数学题”,造成资源的浪费 。
第二种“股权分配”就是我们说的POS模式 。POS全称Proof of Stake,股权证明 。简单来说,就是一个根据你持有货币的量和时间,给你发利息的一个制度 。可以简单理解成你把币放银行,一年给你利息,这个利息不是钱,是币 。这种优点是减少资源浪费,看似比较公平,谁拥有的多存的时间长利息就多 。很少有人质疑银行的分配制度 。
但是缺点在于,对于区块链,增大后入节点的难度,造成贫富分化“有钱的越来越有钱 。”国内一款山寨币量子币就是pos模式,未来eth也会走向pos 。第三种“人民代表大会制度”并不是每个人直接参与政务管理的竞争,每个人选出自己的代表让代表去管理 。这种模式叫DPOS模式 。DPOS:Delegated Proof of Stake,委任权益证明 。

推荐阅读