本文来自力场作者:静等花开
区块链项目涉及的技术细节很多,尤其是IOST这种优质项目的技术干货更多,本期分析IOST的共识机制--可信度证明(PoB,Proof-of-Believability)。
可信度证明(PoB)是一种开创性的拜占庭式共识协议,采用可信度优先的方法,保证系统的安全性和活跃性,同时通过均匀分片大大提高了交易吞吐量(引自IOST白皮书)。
现有常见的共识机制,大致可分为三个方向:一、工作量证明(PoW,Proof-of-Work);二、权益证明(PoS,Proof-of-Stack);三、委托权益证明(DPoS,Delegated Proof-of-Stake)。
一、工作量证明(PoW,Proof-of-Work)
PoW机制的典型为比特币。中本聪是第一个将比特币引入作为解决方案以在无信任的环境中建立共识的方法,任何节点都可以自由地加入和离开网络,而无需具有共识节点先验知识。基于比特币的网络,区块链通过向服务器提供经济激励来提升分布式系统的规模,而不需要人为参与,这些服务器在比特币环境中被称为矿工。比特币网络中的矿工通过计算具有特定难度级别的部分哈希碰撞来形成共识。具有最大累积难度的链将被其他节点认可为共识结果。其实质上是使网络中的所有节点贡献其计算能力赚取奖励,从而确定整个系统的交易顺序。PoW的好处是它有能力在无信任的情况下防御女巫攻击(Sybil Attack),女巫攻击是指利用社交网络中的少数节点控制多个虚假身份,从而利用这些身份控制或影响网络的大量正常节点的攻击方式。
尽管比特币在规模和安全方面有所进步,但比特币有一些主要缺点:(1)与其他现代加密货币不同,根据其构造确认一笔交易需要一个多小时; (2)在比特币网络上难以开发各种应用; (3)共识机制浪费太多能源,每天电费超过200万美元。更重要的是,研究表明,比特币风格的区块链必须有足够大的时间间隔来保证安全。
因此,比特币不会成为当前中心化系统的良好替代品,以支持日常应用程序和大额交易量。
二、权益证明(PoS,Proof-of-Stack)
PoS与PoW可以说是两个不同方向。PoS的概念初次在一个线上区块链论坛中提出,并被PPcoin,PeerCoins和Nxt等几个加密货币所采用。PoS本质上是每一单位的权益持有者有一票投票权,因此对于每个验证者而言,拥有更多权益将拥有更高的投票权。因此,验证人没有经济动机来损害整个区块链网络。对于攻击者来说,攻击的代价是巨大的,因为他们必须拥有大部分权益。在早期的开发中,研究者已经发现权益证明共识机制易受“无利害关系(Nothing-at-Stake)”攻击的影响。由于网络中的服务器/节点在投票验证区块时没有任何的激励/惩罚措施,因此为了获得利益最大化,节点将同时对多个区块进行投票,而没有动力去达成收敛的共识,导致区块链安全性遭到破坏。在后来的一些研究中,如ETH的casper里slasher算法解决了这个问题,它对违规节点实施了惩罚。尽管PoS实现了复制状态机协议的活跃性,但它仍然面临中心化和安全问题等挑战。例如,拥有更多代币的验证者将更有可能打包新区块并被奖励更多代币,从而导致代币越来越集中,带来潜在的中心化问题。此外,先前的研究结果表明,只有在代币交易不频繁的情况下,权益证明共识协议才能是一个可证实的安全的且配置强大的一致性协议,这可能意味着,为了安全性,权益证明共识协议会存在一个吞吐量上限。
三、委托权益证明(DPoS,Delegated Proof-of-Stake)
DPoS是PoS的升级版本。DPoS在BTS和近期热门的EOS中被采用,DPoS是由被社区选举的可信帐户来创建区块。为了成为正式受托人,参与选举的账户要去社区拉票,获得足够多用户的信任。用户根据自己持有的加密货币数量占总量的百分比来投票。DPoS机制类似于股份制公司,普通股民进不了董事会,要投票选举代表(受托人)代他们做决策。
受托人可以理解为矿池,而这些矿池彼此的权利是完全相等的。持有相应数字货币的用户可以随时通过投票更换这些代表,只要他们提供的算力不稳定,计算机宕机,或者试图利用手中的权力作恶,他们将会被持币用户踢出整个系统,而后备代表可以随时顶上去。相比于PoS,DPoS能耗更低。DPoS机制将节点数量进一步减少,在保证网络安全的前提下,整个网络的能耗进一步降低,网络运行成本最低。通过少数节点确认整个系统的交易,使得交易速度更高,网络承载量更大。但DPoS被人诟病是一种弱中心化的共识机制,偏离去中心化思想。节点之间相对容易串通形成团伙,也容易组成同盟侵害散户利益。而对于坏节点的处理存在诸多困难,社区选举不能及时有效的阻止一些破坏节点的出现,给网络造成安全隐患。问责更多在事后,而事后问责无法完全消除对网络造成的伤害。对于严格涉及安全的场景来说,会非常谨慎选择DPoS公链。
现阶段公链公认的矛盾三角是安全、扩容、去中心化。比特币(PoW)具有极高的安全性和去中心化,但在扩容方面处于劣势;EOS(DPoS)高扩容性,牺牲中心化。安全、可扩容性与去中心化这三者难以兼顾。IOST并未一味追求高扩容,而是希望通过其分片技术及可信度证明机制(PoB),在安全、扩容、去中心化获得平衡,使得公链在具有高承载量,可商用的同时,也保证极高的安全性和去中心化。
四、IOST的代币及Servi
在IOST系统中,IOST代币与其他区块链系统中的代币一样,用于所有交易的价值载体以及支付使用资源的佣金费用。同时,IOST代币也被用作计算用户的可信度分数的一个变量。所有IOST代币都将在创世块中生成。在IOST生态系统中,IOST代币可用于:
• 支付:支付商家或其他社区成员提供的服务和商品。
• 佣金:支付给节点作为运行智能合约,处理消息和交易,使用一般生态系统共享的资源(包括但不限于存储空间,计算能力等)的补偿。佣金可以激励验证者并防止恶意用户通过过度部署智能合约来损害社区的利益。
• 可信度:IOST代币将被用于计算用户的可信度。
此外,作为IOST生态系统的一员,每个用户都可以通过验证交易和贡献资源(例如运行智能合约,提供存储空间等)来获取IOST代币。
正如前面部分提到的,传统的权益证明和委托权益证明共识机制面临的一个主要挑战是集中化趋势。为了减轻这种风险,IOST引入了Servi作为用户对社区贡献的衡量标准,并鼓励成员为IOST区块链的持续发展做出贡献。
Servi的计算是纯量化的,Servi是线上程序计算的结果,其输入包括账户交易的次数和频率,拥有的tokens,贡献的资源情况(时限,存储空间等),Servi本身存储在区块链上,按照不同的时间戳有多个版本,并且以小时为基准更新,当前验证器中使用的是缓存(Cache)的值,所以Servi获取速度非常快。Servi计算的这些数据都是记录在区块链上的,线上计算程序可随时计算任一节点的Servi,并且这个值可以被任何人验证。
Servi具有以下属性:
•不可交易:由于Servi不作为交换媒介,Servi不能以任何方式进行交易或交换。
•自毁:区块验证后,系统会自动清除验证者所拥有的Servi余额,使可信度高的节点轮流验证区块,从而保证公平的区块生成过程。
•自行发放:在提供社区服务,评估另一方提供的服务或做出其他特殊贡献等一定的贡献后,Servi将自动生成并存入用户账户。
五、可信度证明(PoB,Proof-of-Believability)
根据不一样的分片大小,区块链系统会在安全性和吞吐量之间具有天生的折衷。一个拥有大量小分片(包含节点数量小)的系统可以提供更好的性能,但对恶意节点的防御较弱,反之亦然。为了同时保证安全性和提高吞吐量, IOST区块链提出了一个创新的可信度证明(PoB)共识协议。 PoB保证节点运行恶意行为的可能性微乎其微,同时通过大小均匀的分片显著提高交易吞吐量。
可信度证明共识协议使用分片间可信度优先(Believable-First)方法。该协议将所有验证者分为两组,一个高可信分组和一个普通分组。高可信验证人在第一阶段快速处理交易。之后,在第二阶段,普通验证人对这些交易进行抽样和验证,以提供最终结果并确保可验证性。节点被选入高可信分组的机会由可信度得分确定,可信度得分由多个因素计算得到,例如:代币余额(Token)、对社区的贡献度(Servi)、网络行为等。一个具有较高可信度分数的个体更有可能被选入高可信分组。可信验证人遵循程序来决定认证的交易及其顺序,并按顺序处理。可信的验证者也可以组成更小的组--每组一个验证者。交易将随机被分配到这些可信的验证者中。因此,它们以极低的延迟产生更小的区块。
但是,在此种情况下,由于只有一个节点正在执行验证,因此可能会有安全隐患。因此,一些恶意交易可能是由恶意的验证者犯下。为了解决这个安全问题,IOST指定一个抽样概率p,即正常验证者将对交易进行抽样并检测其不一致性。如果验证人被检测为不当行为,将会丢失系统中的所有代币和声誉,而受到欺诈的用户将获得赔偿。可信度优先方法使得处理交易非常快速,因为只有一个(可信的)验证者正在进行验证,并且在正确的参数设置下,不端行为发生的可能性非常低。
在IOST系统中,分片策略文件分别指定高可信和普通分组的大小以及采样概率p。每个时期开始时,所有的验证者都将通过分布式随机生成协议被分配到不同的分片。它们的状态将从相应分片的最后一个微状态块(MSB)中引导。根据可信度分数,验证者将被分配到高可信组(包含节点数较少)或分片内的正常组(包含节点数较多)。
在第一阶段,由高可信分组处理的交易产生被验证过的区块。这些区块作为同时运行的普通分组的抽样重新验证输入。普通分组也结合了来自多个处理组的输入。这可以最大化系统的吞吐量。如果交易成功进行验证,它们将被包含在已完成的块中,添加到分片的区块链中,并最终包含在MSB中。然而,当普通分组检测到任何不一致时,相应的验证交易将被排除在区块链之外,并且签名无效区块的验证者将被检测到并被追究责任。IOST将惩罚方案设计得非常苛刻,以便验证人在任何情况下都不会有任何行为不端的动机。如果验证者被检测为行为不当,该验证者将丢失系统中的所有代币和信誉,并且将重新检查之前验证过的所有交易。考虑到极小的恶意激励以及可以量化的验证系统安全性的信心,客户可以在随时实现实时处理。
普通分组的运行基于ByzCoin的拜占庭共识策略,因为它可以有效扩展到成千上万的共识团队成员。 ByzCoin使用集合签名(CoSi),一种使用多重签名的可扩展密码原语来制作传统的共识算法,如PBFT。 ByzCoin使用组播树来分发区块以提高性能,并回退到星型拓扑以实现容错。它可以确保在即使分片中有一些恶意节点的情况下,分片的所有诚实成员都能够达成特定的通用操作序列,同时保证了系统安全性和活跃性。
为了确保稳定性,IOST在可信度有限协议中使用备选方案。当一个分片没有足够的可信验证者来组建高可信分组时,不管是由于暂时停工或者处于生态系统的冷启动阶段,两部验证委员会会变成单步分组,即所有交易均由普通分组直接根据PBFT共识协议处理。
总结说来,PoB共识机制相当于在PoS机制中引入了信用机制,促使对社区贡献多的节点获取更多打包收益,而非拥有更多Token的节点。PoB共识机制中,获得交易打包权的是高可信节点,而节点的可信度要综合Token余额、Serv值和网络行为评分等得分较高者,节点对社区的持续贡献大才能获取高Servi值,Servi值会被消耗,因此引导专业节点积极为社区做贡献,优先获取交易打包权,从而引导整个网络和社区向更活跃、更优化的方向发展,而非富者愈富。IOST通过:(1)高可信分组打包,普通可信分组验证打包结果;(2)对恶意违规予以重罚;(3)PoB机制启动条件不满足时,使用PBFT共识协议做后备等多种措施,保证网络的安全性和稳定性。通过高效分布式分片和微状态块(MSB)等机制,保证网络的高容量和去中心化。
网友评论