基于DPOS委托权益证明的QOS公共链介绍
扫描二维码
随时随地手机看文章
委托权益证明(DPOS)因其可扩展性、节能性和较低的成本成为一种开创性的共识算法。
当我们谈到较低的成本时,我们指的是EOS,它的效率随着没有分散化的批评而提高,因为只有21家EOS矿商在进行验证。验证器的数量是DPOS区块链的一个重要参数。DPOS面临的一个重要问题是其经济模块的实现需要投入大量的资源。
QOS公共链基于Cosmos团队引入的著名DPOS框架tendermint。Cosmos已经在tendermint上建立了网络,QOS是不是在重复Cosmos的工作?作为Cosmos社区的积极成员,我们进行重构的动机是提高DPOS的性能,让区块链做它应该做的事情,即业务逻辑。
我们关心的是什么
在宇宙中的分布
几乎所有的加密货币项目都使用LevelDB, LevelDB最多支持几百个tps。任何报告tps数量超过几百个,并且没有自己的定制数据库的人都在撒谎。——Emin Gün Sirer
根据本文的讨论,在区块链的世界中,存储是tps的主要瓶颈。自从宇宙的测试网建立以来,我们一直在密切观察它的运行统计数据。为了实现验证-委托模块和分发,对数据库进行了大量的访问。在权益游戏中,基本上只有验证器和很少的委托器。验证器检查验证的收益,并每隔几个块执行取款委托技巧以最大化利润。虽然委派者不能有一个详细的损益表,但是数据库会不时地编写,以更新它的奖励金额,以便使用查询。
什么是可以妥协的?
在Cosmos中,委托程序需要几周的时间才能通过断开键收回它的代币。代表的报酬是否正确地按一定的高度分配也是不透明的。我们并没有听到很多抱怨。在现实世界中,从银行取出存款和收入从来都不是实时的。我们接受。当延迟退出的原因是为了保证整个系统的稳定性和性能时,妥协听起来是合理的。
QOS的分布解决方案
分发周期是什么样的(从委托方的角度)
分发周期
分布周期是一种链上周期性沉积,网络在此基础上以较小的代价获得较高的效率和稳定性。
创建委托之后,将启动一个分发周期,其长度由$ delegator_incom__height定义。分发请求,如奖励/增加/减少绑定代币,或在此循环中修改委托参数,直到下一个循环的第一个块才会生效。
相同配置的主要修改(例如,是否进行再投资)在同一周期内进行多次,将在此期间的最后一次修改的基础上应用于下一个周期。只有最后的修改才算数。
Unbonding
验证器将在非绑定操作之后添加另一个检查点,非绑定代币的数量将在$unbond_return_height期间之后返回到委托方的帐户。$unbond_return_height应该比$ delegator_incom__height长得多。在QOS的链上治理检查中参数变化的建议,并确保这种定量关系。
黏结立即生效,但回报将首先计算,分布式在下一个周期。委托关系解除的计算如下:
· 下一个分布:奖励x + y;
· 如果所有QOSs键合为unbonding: y = 0;
· 如果只有一部分的QOS保税黏结,x 》 y 》 0
再投资
委托程序可以指定并稍后修改是否重新投资(通过$ is_complex参数)。再投资意味着上一个周期产生的收入被自动绑定,并参与下一个周期的回报。否则,利润将自动转入委托方的账户。通过再投资,人们不再有动力不断地做一个回收委托的把戏,而是把网络资源留给了业务逻辑。
再投资可以持续、自动地扩大委托开采的投资规模,这是一个不错的选择,但需要注意的是,保税代币赎回需要通过参数$unbond_return_height定义的冻结期,才能返回到委托方的账户。盲目扩大委托债券的规模不利于流动性。
实施
QOS分布中的数据和逻辑流
对于QOS分发周期中的每个块,分发abci将获得一个委托方列表,这些委托方应该通过调用distributeearningbyvalidators方法获得相同高度的奖励。这个列表存储在数据库中。当$ delegator_incom__height较小时,委托列表的长度会更大。对于Cosmos,它可以被看作是一个循环分布的特殊情况,因为它的$ delegator_incom__height是1,等待获得奖励的委托列表是在验证器上设置的整个委托。
委托-验证器对的绑定代币存储在delegatorearningstartinfo中。当委托程序位于当前块的分发列表中时,它最多会被每个$ delegator_incom__height块所触及。
在QOS中,如果$ delegator_incom__height = 17280,因此 1 天的平均块时间为 5 秒,则同一分量器列表的分布计算大致将缩减为 Cosmos 中的 1/17280,但应执行一些额外的工作,如再投资,周期也减弱了代币持有者频繁委托退出的愿望。由于 QOS 在主网的最初几年中通货膨胀率相对较高,因此该周期有助于减少涉及分配的网络负载。
对于非绑定委托方,我们将其绑定块的奖励直接返回到他们的帐户,而非绑定代币必须在块的高度行中等待。
可以说,QOS中的分布计算被划分为 $delegator_income_period_height 。对于发行版的最终用户(即验证者和委托者),如果 $delegator income period height 长,则24小时,在最坏的情况下,他们可能错过23.9986(假设平均阻塞时间为5秒)/20天的奖励,这与真实世界中的T+1类似。然而,一个足够聪明的客户端程序可以通过简单地计算连接高度和 delegator_income_period_height来估算用户的兴趣。
结论
在传统互联网应用领域,我们工作的一大部分就是优化软件架构的各个层面,以实现更高的标准。我们相信,在区块链领域还有更多的优化。本文介绍了 QOS 通过为 DPOS 实施一个不断发展的经济模块而实现的改进。QOS分布周期通过粘合高度对委托方进行切分,在最佳情况下,将分布计算减少到1/$ delegator_incom__height。