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

时间:2021-07-22 05:40来源:www.hcmsxh.com作者:未知点击:

导读:
扫描关注公众号

PoS作为PoW的一种升级共识机制,依据每一个节点所持有代币的数目和时间,等比率的减少挖矿困难程度,在一定量上缩短了共识达成的时间,但非常重要的是不再需要消耗很多能源进行挖矿。它的缺点在于:性能提高有限,持币吃息的模式会致使代币的很多集中,流动性变得匮乏起来。典型项目如ETH,现在正在从PoW切换至PoS机制。

PoS也称股权证明机制,其诞生的初衷是为知道决PoW带来的能耗问题。这种模式下持有币的数目越多、时间越长,记账成功率就越高,像利息规范。举例来讲,PoS算法中有一个名词叫币龄,每一个币天天产生1币龄,假如你持有100个币,总共持有了30天,那样此时你的币龄就为3000。这时假如你发现了一个PoS区块,你的币龄就会被清空为0。你每被清空365币龄,你将会从区块中获得0.05个币的奖励(等于年利率5%),在这个案例中,奖励=3000*5%/365=0.41个币,即持币有利息。

共识机制解决了区块链怎么样在分布式场景下达成一致性的问题,通过算法创造了信赖,从而很大地降低目前金融系统及其他社会系统中的信用本钱。小到菜市场的价格形成,大到一个国家的打造,这背后都意味着一种共识,所以共识本身就是价值,但价值大小要看其运用的场景。回过头来再看看市场上充斥着的价格混杂的各种数字虚拟货币,它们落地时的作用才真的决定着其价值,考虑了解了再入场不迟,当然纯投机的话可以完全不需要考虑。现阶段并没完美的共识机制,每种算法差异的背后都是对性能效率和去中心化不一样的取舍。伴随区块链应用场景的不断扩展,将来势必会不断出现新的共识算法,可能某一天会诞生出具备普适性的算法,给人类社会带来深层次的变革。

可以看出,DPoS事实上是对共识进行了分级,先通过投票选举达成见证人共识,然后见证人之间再达成买卖验证共识,如此大大提升了整个系统的共识效率。从某种角度来看,DPoS与议会规范或人民代表大会规范有相似之处。假如代表不可以履行他们的职责,比如未能按时出块,就会被互联网选出的新见证节点所取代。DPoS算法从性能和能耗的角度来讲完全可以满足商用,但也不可防止地带来了过于中心化的问题。譬如目前很热门的柚子币超级节点竞选就变成了鲸鱼们的合纵游戏,甚至被质疑是伪区块链项目。当然这种怎么看笔者并不同意,毕竟上期也讲到3类区块链,使用DPoS算法的项目应当算作网盟链,只是有的网盟比较开放有了很多散户,从经营模式上看更像公链。

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

PoW算法容易来讲就是算力越大,记账成功率越高。其达成了完全去中心化,节点可以自由进出且达成容易。同时其容错性方面得到了提高,允许全网50%的节点出错,破坏系统需要投入很大的本钱。它的缺点也非常明显,首当其冲便是浪费能源,第二是共识效率低下,并且存在算力集中的风险。现在非常难满足商业化应用的需要,典型项目如BTC。

PoS:权益证明机制

BTC的区块链互联网在设计时,针对PBFT中同时存在多个提案和最后一致性确认的问题进行了创造性的改进,提出并使用了PoW算法。通过消耗很多能源来计算一个满足条件的Hash值来获得记账权,某个节点成功找到满足条件的Hash值之后,会立刻对全网进行广播打包区块,互联网中的节点收到区块后,会立刻对其进行验证。假如验证通过,则表明已经有节点成功记账,自己就不再角逐目前的区块,而是选择同意这个区块,记录到我们的账本中,然后进行下一个区块的角逐记账。同时记账节点会得到代币奖励,进而吸引更多节点参与角逐。倘若节点有任何的作弊行为,都会致使验证不通过,并直接丢弃其打包的区块,作弊的节点不但得不到奖励,还损失了巨大挖矿本钱。如此全网节点一直维护着拥有最大工作量的链,从而保证整个账本的相对一致性。

DPoS是权益证明的一种改进版本,共识过程不再需要所有参与节点进行验证,而是委托部分代表来进行,非常大程度上提升了共识效率。BTS社区第一提出了DPoS机制,并引入了见证人的定义。见证人可以生成区块,每个持有BTS币的人都可以投票选举见证人。得票数前100名的候选者可以当选为见证人,见证人的候选名单每一个维护周期更新一次。见证人通过随机排列后,依次轮流生成区块,若见证人在2s内未能出块,则自动跳到下一个见证人。因为持股人可以随时通过投票更换见证人,因此见证人为了获得奖励和防止损失保证金,就需要提供稳定高效的出块能力。

1982年,Leslie Lamport等科学家提出了著名的拜占庭将军问题,其讨论的是允许存在少数节点作恶场景下的一致性达成问题。容易描述下:国土辽阔的拜占庭帝国,基于防御目的,将每支军队分别部署在全国各地。由于距离遥远,将军们只能靠信差传递消息。战争爆发时,拜占庭帝国军队的将军们需要全体一致的决定是不是攻击某一支敌军,以获得作战胜利。然而将军们没办法确定他们中是不是存在叛徒,叛徒可能擅自变更进攻意向或者进攻时间,以破坏进攻的一致性,导致作战失败。在这种状况下,拜占庭将军们该商定一种什么样的远程交流方法,以达到一致呢?

论文中指出,对于拜占庭问题来讲,倘若节点总数为N,叛变将军数为F,则当N≥3F+1时,问题才有解,由拜占庭容错算法BFT进行保证。容易说一下论证过程:假设节点总数为N,作恶节点总数为F,有效的善良节点数为L1,无效的善良节点数为L2;那样系统要安全的达成一致则需要满足2点:有效的善良节点超越作恶节点,同时也需要超越问题的善良节点。转化为数学公式则:L1≥F+1,L1≥L2+1,又L1=N-L2-F,即N-F-F≥F+1,得出N≥3F+1;因此当叛变者低于1/3时,存在有效的拜占庭容错算法。但BFT一直存在复杂度过高的问题,并没真的落地到实质场景中。

通常来讲依据处置的异常状况不同,可以把共识算法分为两类型型,一种是针对非拜占庭错误的,这种算法性能较高,但容错性较差,如Paxos、Raft等;另一种是针对拜占庭错误的,这种算法总是容错性较高,但性能相对较差,包括工作量证明、权益证明、委托权益证明、实用拜占庭容错算法等。处置拜占庭错误的算法有两种思路,一种是通过提升作恶本钱以减少作恶节点出现的概率,如工作量证明、权益证明等,其中工作量证明是通过算力,而权益证明则是通过持有权益。另外一种是在允许肯定的作恶节点存在的首要条件下,依旧使得各节点之间达成协议,如实用拜占庭容错算法等。下面大家就来讲讲现在存在的主流共识算法。

大家对共识机制的研究其实由来已久,从上世纪70年代就开始了有关研究,其目的是为知道决分布式系统中的一致性问题。Fischer,Lynch和Patterson在1985年发表的论文中提出了可以说是非常重要的分布式系统定理:FLP不可能定理;2000年,EricBrewer教授又进一步提出了CAP猜想:一致性、可用性和分区容错性三者没办法在分布式系统中被同时满足,并且最多只能满足其中两个;2002年,Lynch与别的人证明了Brewer的猜想,从而把CAP上升为一个定理。这段时间和之后,涌现了一些著名的分布式一致性算法,如LeslieLamport在1989年提出的Paxos算法,1999年Castro和Liskov提出的PBFT算法等。直到BTC使用POW进行记账后,共识算法才真的进入到了大家的视线里。

Miguel Castro和Barbara Liskov在1999年提出了实用拜占庭容错算法PBFT(Practical Byzantine Fault Tolerance),以解决原始拜占庭容错算法效率不高的问题,将算法复杂度大为减少,使得拜占庭容错算法在实质系统应用中变得可行。PBFT是针对状况机副本复制为主的分布式系统实行环境开发的算法,旨在让系统中大多数的诚实节点来覆盖恶意节点或无效节点的行为。其运作步骤为:(1)随机取一个副本作为主节点,其他的副本作为备份;(2)用户端向主节点发送用服务操作的请求;(3)主节点通过广播将请求发送给其他副本;(4)所有副本实行请求并将结果发回用户端;(5)用户端需要等待F+1个不同副本节点发回相同的结果,作为整个操作的最后结果。PBFT算法需要系统的失效节点数目不能超越全网节点的1/3,容错率相对较低。

Paxos和Raft是另外两种经典的共识算法,准确的说应该是分布性一致算法,它们都是为知道决非拜占庭问题下达成分布式系统数据一致性的问题。这个过程好似选举一样,参选者需要说服大部分选民(服务器)投票给他,一旦选定后就跟随其操作。Paxos和Raft有什么区别在于选举的具体过程不同,感兴趣的读者可以自行认识下。

:工作量证明机制

区块链的核心价值就是达成了去中心化的价值传输。那样区块链是怎么样做到这种价值传输的呢,非常显然起到了决定性用途,今天大家就来深入解说共识机制背后的原理及其进步。

拜占庭容错

DPoS:委托权益证明机制

其它共识机制

共识的价值

相关文章
推荐文章

热门标签

区块链知识_区块链入门_区块链接博客_极客网

Copyright © 2002-2021 极客网 (http://yxlhjx.net) 网站地图 TAG标签 备案号:

声明: 本站文章均来自互联网,不代表本站观点 如有异议 请与本站联系 本站为非赢利性网站