今年5月,我们发布了Harmony基于竞标的抵押机制的初步设计。从那时起,我们收到了来自不同方面的反馈和建议,包括抵押即服务(staking-as-a-service )公司、个人验证者、以及以太坊的创始人V神。我们认真地对待这些反馈意见,其中包括频繁竞标所带来的操作负担、以及需要连续验证7个epoch(7天)的过高硬性要求。此外,对于这个设计,还有一些没有解决的问题,例如如何支持(代币)委托以及如何在基于分片的区块链中实现出块奖励的复利(block reward compounding)。通过本文,我们讨论一下PoS系统的设计思想,并隆重推出Harmony的最新抵押机制-有效抵押证明(Effective Proof-of-Stake: EPoS)。EPoS旨在解决所有这些问题,同时仍然保持区块链的去中心化。
如何选择验证者
目前大多数的PoS区块链都有所谓”委员会“的概念,委员会是一组拥有权利产生和验证区块的验证者(根据具体区块链,也叫出块者、超级节点等等)。通常,委员会的席位数量是有限的(例如EOS为21,Cosmos为100)。所谓验证者选举的问题基本上就是以什么机制来决定谁在委员会中获得席位。理论上讲,这和如何在现实世界中分配有限资源的经济问题是类似的。在经济学中,分配有限资源的方式可以是(但不限于):
1)通过定价或竞标,这意味着价高者得之;
2)按照社会标准,比如社会地位和声誉;
3)按照时间消耗多少,比如排队挂号,按工龄分配福利等;
4)通过随机选择,比如彩票,摇号购车等;
事实上,委员会中选择验证者的方法正是通过类似的手段来解决的。让我们来看看现有PoS中的一些常见方法:
第一种:根据抵押代币的数量(Cosmos,Polkadot):在这个模型中,抵押金额最高的若干个验证者获得有限数量的席位。这与现实世界中的竞标非常相似。我们最初的基于竞标的设计也属于这一类。
第二种:在所有抵押者之间随机选择(以太坊2.0,Tezos):该模型对潜在的验证者的抵押数量有特定的最小要求。例如,以太坊2.0需要至少32个以太币,Tezos需要8,000XTZ,才有资格被随机选择进入委员会。该模型基本上是定价和随机选择的组合。
第三种:通过社会声誉和投票(EOS,Tron):在EOS中,有限的21个区块生产者由验证者从代币持有者获得的投票数量决定,这种类似社会声誉的尺度是存在于链下的标准。
其实,PoS中选择验证者的方法不仅限于上述三种标准,时间因素也是一种,比如Peercoin就是利用持币时间(以及持币数量和一定随机性)来决定谁拥有出块权。
一般而言,我们认为第一种依据链上代币抵押来选择验证者的机制是最有效、经济上最安全的方式,因为代币抵押将验证者的利益与区块链本身的安全紧密绑定在一起,大量抵押代币后,验证者是不会有动机去攻击自己代币所在的链的。对于EPoS的设计,我们决定采用第一种而不是第二种方法,原因在于其简单性和有效性。第二种方法虽然为更多的抵押者提供了公平的机会,但问题是资源利用效率不高,事实上,在很长一段时间内,潜在的验证者只是闲置在那里,等待被选中,这会大大增加验证者的机会成本。
如何分发区块奖励
通常,对于每个成功确认的区块,PoS系统会为验证者分发区块奖励,以激励他们参与共识。在大多数现有的PoS区块链中,验证者将按照他们抵押的数量的比例获得等比例的区块奖励。这种设计存在“富人越来越富”的问题,最终导致抵押代币过于集中。例如,在撰写本文时,Cosmos的100位验证者中,排名前10的验证者持有超过50%的抵押代币。
可以缓解这个问题的另一个选择是,无论验证者的抵押数量是多少,给所有人同等数量的区块奖励 - 这也是我们在最初的基于竞标的抵押设计中所提出的想法(类似的想法也是Polkadot的抵押模型NPoS的基础)。给予同等奖励可以鼓励验证者均匀地分配抵押的代币,因为和小投入的抵押者相比,投入多的抵押者的回报率会更低。尽管如此,持币大户仍然可以通过拆分他们的抵押代币以多个抵押者的身份去参与PoS。因此,“富人越来越富裕”的问题并未得到彻底解决,而只是在某种意义上得到了缓解。
除了上面讨论的设计因素之外,其他更现实的因素对于创建一个对验证者友好的抵押经济也是至关重要的。获取区块奖励的复利是验证者最大化其回报的重要方法。在这方面,提供相同奖励的设计是没法支持复利的,因为如果验证者把新的区块奖励再次加入抵押中,不会产生更多回报。此外,对代币委托(delegation)的支持一直是PoS区块链的标准要求,因为它允许普通代币持有者在不需要运行验证者节点的情况下进行抵押并获得回报。我们之前基于竞标的初步抵押机制设计并不适合代币委托,因为竞标是一种不确定的行为,委托人的代币在用于竞标的过程中难免出现使用不当或不充分的问题。
而对于Harmony的分片系统设计来说,其中有一个特定的设计约束:对于每个分片,它的抵押量只有整个系统的N分之一(N是分片数量),它需要包含大量的具有同等权利(抵押数量)的验证者,以分散大户在分片中的力量(有关更多详细信息,请参阅我们的技术白皮书)。否则,拥有大量抵押代币的验证者可以轻易攻击单个分片(即1%攻击)。
综上所述,我们的设计目标如下:
● 验证者之间的抵押代币量需要均匀分布(避免抵押中心化)
● 支持简单明细的委托机制
● 支持区块奖励的复利
EPOS机制防止抵押中心化
Harmony的抵押证明机制EPoS(Effective Proof-of-Stake),这是一种高效的抵押机制,可以避免抵押代币出现中心化,同时仍然支持抵押复利和代币委托,适合需要大量同等权利的验证者的分片系统。
验证者选取
在EPoS中,我们将基于抵押者代币数量的排名来选取验证者。具体而言,对于每个epoch(约1天),前1600名抵押者将获得有限的1600个验证者席位(4个分片* 400个席位)。当epoch发生演进,新的抵押排名将决定谁是下一个epoch的验证者。
基于有效抵押的区块奖励
正如前文提过,无论是按抵押比例的区块奖励机制还是一视同仁的区块奖励机制都不能完全满足我们的设计目标(包括抵押的均匀分配以及抵押复利的问题)。在EPoS中,验证者的区块奖励不是按照它的实际抵押量来分配,而是按照其”有效抵押量“的比例来分配,有效抵押量的共识定义如下。 我们使用median_stake来表示前1600名抵押者的中位数抵押量,而actual_stake是每个验证者持有的实际抵押数量。
这里,c是协议参数(例如,c = 0.15)。 验证者的有效抵押量本质上是它的实际抵押量被上限阈值(1 + c)* median_stake和下限阈值(1-c)* median_stake限制之后的数量。
除了区块奖励之外,每个验证者在共识中的投票权也由验证者的有效抵押按比例确定。
前1600位验证者的实际抵押量曲线和有效抵押量
随着有效抵押的引入,排名较高的验证者实际上会因为抵押了太多代币而受到一定的经济惩罚,而排名较低的验证者则可以享受额外的奖励。有效抵押充当均衡器,推动验证者之间更均匀地分配抵押代币,避免集中。
为了实现复利,蓝色和绿色区域中的验证者可以通过在同一验证者节点中反复抵押区块奖励来直接获得复利,而黄色区域中的验证者只能通过启动新验证者节点的方式来获得更多区块奖励。对于持有大量代币的矿池而言,这种设计迫使其自身去中心化,从而避免单点故障。
此外,EPoS可以支持直观有效的代币委托,代币持有者可以根据验证者的佣金率、正常运行时间和其在排名中的位置,将代币委托给一个或多个验证者。在扣除验证者设定的佣金费用后,块奖励将按委托代币的比例分配给委托者。对于委托者来说,委托给绿色领域的验证者在经济上会获得更高回报,这也可以有效避免大量代币被委托给头部验证者,避免抵押中心化。
EPoS的这些设计,完全实现了避免抵押去中心化,同时支持委托和抵押复利的设计目标。
抵押削减机制
对于双重签名
● 至少削减2%的抵押代币。同时削减的数量将随着同时间被消减的验证者的数量呈线性增加(例如,如果有三分之一的验证者双重签名,则每个人的削减比例上升到33%)
● 值得一提的是,这个削减规则和之前有效抵押机制对大户自身的去中心化效果相得益彰,如果大户的多个抵押者节点同时发起攻击,他们的抵押代币也将会受到更严重的削减。
对于节点不在线
● 每三个小时的不在线,验证者的投票权将被泄露25%,泄露是指部分代币被强制移出抵押,而并不损失所有权,这点和消减有区别。
● 在连续12小时不在线后,验证者将丧失所有投票权并进入停滞状态。停滞的验证者将接受0.1%代币消减的惩罚。如果验证者再次上线,其投票权将重新恢复。
● 对于那些处在停滞状态的验证者,在下次验证者选举中,他们不会被考虑在内。他们可以通过发送“请求加入”交易,来重新参与之后的验证者选举。
最后
抵押机制和激励模型是PoS区块链的核心组成部分。在某种程度上,它们与区块链协议一样重要。关于当前PoS区块链的抵押机制和激励模型的信息分散在许多地方,很难清楚地了解这些系统的区别和具体内容。在这方面,我们对于几个主流的PoS项目的抵押和激励机制总结了一份对比图表,其中也包括了有关Harmony’s抵押工作流程的更多详细信息。
最后,对于想要在主网之前尝试EPoS机制的抵押验证者们,欢迎加入我们的Pangaea游戏,这是一个在Harmony测试网络上的带有激励模型的游戏。 大家在Pangaea中提出的反馈意见将有助于进一步优化EPoS的设计,为登陆主网做好准备。