2019-10-11 14:20:57 来源: 区块网
PoS (Proof of Stake) 区块链系统广遭诟病的缺陷之一便是马太效应,即富者愈富贫者愈贫。目前,已有诸多项目通过新颖的设计来缓解和改善该问题:Polkadot 的 NPoS (Nominated Proof-of-Stake) 使得每个 validator 获得的系统奖励相同,与票数无关;
Decred 的选票机制由于票价不固定,且浮动的投票时间是导致短期收益不确定,加之 PoS 只获得区块奖励的 30%, 因此大节点无法仅通过持有现有权益而维持其在 DCR 流通中的相对份额;CPChain 则引入了荣誉度评估算法,除节点持仓量外,还将节点交易量、数据贡献、区块链维护、代理荣誉等纳入了考核指标。
本文介绍一种创新的 Staking 机制——著名分片项目 Harmony 设计的有效抵押证明机制 EPoS (Effective Proof-of-Stake) ,基于有效抵押的区块奖励来缓解马太效应。
1. 马太效应
马太效应典出《新约圣经·马太福音》:“凡是少的,就连他所有的也要夺过来。凡是多的,还要给他,叫他多多益善。”反映的社会现象是两极分化,即富者愈富,贫者愈贫。
在某些 PoS 项目的设计中,验证者按照他们接受抵押的数量占比获得等比例的区块奖励,这极易导致抵押代币的过度集中。
2. Harmony共识机制
Harmony 的整体架构与以太坊 2.0 类似,由信标链和分片链组成。分片作为一种区块链的拓展方案,首先在 Zilliqa 上实现;但 Zilliqa 仅实现了网络分片和交易分片。Zilliqa 将其网络分为多个分片,每个分片有数百个节点(网络分片),允许不同的交易由不同的分片同时处理(交易分片)。
但为了能够处理交易,分片中的每个节点都必须存储整个区块链状态信息,这使得网络对节点的要求较高,阻止了硬件资源一般的节点加入网络,不利于网络的去中心化。Harmony 进一步实现了状态分片,并将其分片技术命名为深度分片 (Deep Sharding),不仅对交易层面进行分片,还对共识发生的层面进行分片,从而提升网络吞吐量。此外,由于所有节点都无需存储整个区块链状态,因此一般的个人计算机也可以作为节点加入网络,进一步推动网络去中心化。
Harmony 采用 PoS+FBFT 共识机制,即首先通过 PoS 选出参与区块签名的节点,再通过 FBFT 达成共识。成为 Harmony 的验证者需要质押一定数量的 ONE 通证,抵押的通证数量代表验证者的投票份额,每个投票份额对应 FBFT 共识的一票。
为防止单个分片中出现单个/多个节点投票份额过大等问题, Harmony 采用了自适应阀值 PoS,根据分布式随机生成协议把节点的投票份额随机分配到不同的分片当中,而非单个验证者连同其所有选票随机分配到一个分片(如上图所示)。这样一来,即使某恶意节点持有大量的选票份额,也无法影响单个分片的选票结果。
每个周期(epoch)伊始,Harmony 网络会通过分布式随机生成协议产生随机数,基于随机数来确定分片结构。周期是预定的时间间隔,在此期间,分片结构是固定的,每个分片持续与同一组验证者运行共识。
为防止分片保持结构固定可能会出现的静态循环攻击、慢适应攻击或完全适应攻击等,Harmony 还采用基于 Cuckoo 规则的重新分片机制对分片的选票进行重新洗牌。此外,Harmony 还设置了使验证者快速进行状态同步与验证的机制。
简单来说,每个周期的首个区块都包含上一个周期首个区块的哈希链接。当验证者新加入一个分片时,它们需要检索状态,并确保状态有效。新加入的验证者只需下载当前状态即可获得从当前状态到创始区块的路径,新验证者可通过灰色区块快速验证当前状态(如上图所示)。
3. Harmony EPoS 设计
Harmony 的抵押证明机制 EPoS(Effective Proof-of-Stake)是一种高效的抵押机制,可避免抵押代币中心化,同时支持抵押复利和代币委托,适合需要大量同等权利验证者的分片系统。
EPoS 系统基于抵押者代币数量的排名选取验证者,对于每个 epoch(约为1天),前 1600 名抵押者将获得有限的 1600 个验证者席位(4个分片* 400个席位)。epoch 更新后,新的抵押排名将决定谁是下一个 epoch 的验证者。在 EPoS 中,验证者的区块奖励按照其“有效抵押量”的比例进行分配,而非实际抵押量。有效抵押量的共识定义如下:
其中,c 是链上设定的参数,median stake 表示前1600名抵押者的中位数抵押量,actual stake 则是每个验证者持有的实际抵押数量。验证者的有效抵押量本质上为其实际抵押量介于上限阈值(1 + c)* median stake 和下限阈值(1-c)* median stake 之间的数量。除区块奖励外,每个验证者在共识中的投票权也根据验证者的有效抵押按比例确定。
上图为当 c = 0.15 时前 1600 位验证者的实际抵押量和有效抵押量曲线。
随着有效抵押的引入,排名较高的验证者会因为抵押代币数量过高而获得较低回报,间接蒙受一定经济损失;而排名较低的验证者则可享受额外奖励。有效抵押在此充当均衡器,推动验证者之间更均匀地分配抵押代币,避免集中。
为实现复利,蓝色和绿色区域中的验证者可通过在同一验证者节点中反复抵押区块奖励来直接获得复利,黄色区域中的验证者则只能通过启动新验证者节点来获得更多区块奖励。对于持有大量代币的矿池而言,这种设计迫使其自身加强去中心化,从而避免单点故障。
此外,EPoS 支持直观有效的代币委托:代币持有者可根据验证者的佣金率、正常运行时间和其在排名中的位置,自行选择将代币委托给一个或多个验证者。扣除验证者设定的佣金费用后,块奖励将按委托代币的比例分配给委托者。对委托者而言,委托给绿色区域的验证者会获得更高回报,这也避免大量代币被委托给头部验证者,从而降低抵押中心化风险。
在节点惩罚机制设计中,节点若触发 slash ,将削减至少 2% 的抵押代币,且削减数量将随着同时间被削减的验证者的数量呈线性增加。举例来说,若三分之一验证者触发双重签名,则每位验证者的削减比例上升为 33%。这一规则与有效抵押机制相得益彰。若大户的多个抵押者节点同时发起攻击,他们的抵押代币也会受到更为严重的削减。
通过上述设计,Harmony 网络得以有效避免抵押中心化,从而进一步缓解马太效应。(张良慧)