Lido 对 Polkadot 的流动质押升级至无上限的第二阶段

  • mixbytes
  • 发布于 2022-08-25 17:52
  • 阅读 20

本文详细介绍了Lido在Polkadot上的第二阶段发展,包括无上限的质押和验证节点、动态提名模型、去中心化奖励预言机及多重签名控制等重要参数。此外,文章深入探讨了APR最大化机制、验证人选择算法及减小惩罚风险的策略,附有多个案例研究以展示算法的应用效果。

作者:MixBytes团队

Lido在Polkadot第一阶段于2022年5月31日上线,并表现出色。我们很高兴地分享我们准备进入第二阶段。

第二阶段参数

  1. 无上限的质押和验证者节点的数量

  2. 动态提名模型,以进一步提高年化奖励率或年百分比率(APR)

  3. 去中心化奖励预言机的推出

  4. 多签控制合约更新

我们的成就

质押奖励表现

Polkadot 委托

14.14%* APR;

Polkadot 网络;

stakingrewards.com/earn/polkadot

Lido DOT 质押

16.76%* APY;

Moonbeam 网络;

polkadot.lido.fi

Acala

16.55%* APY;

Acala 网络;

apps.acala.network/ldot

\* — 截至2022年7月12日

Lido在Polkadot中的架构

去中心化努力

我们通过建立去中心化的预言机和多签,提高了抵御单一方恶意行为的安全性。

我们的预言机有什么作用?

去中心化奖励预言机以3/4的一致性发布奖励和惩罚金额。如果预言机报告的奖励或惩罚金额相比于上一个结果变化超过5%,则将被忽略,团队将收到报告。预言机由Lido、Moonbeam和MixBytes独立运行。

多签控制合约更新(MixBytes + Lido)

我们将智能合约更新决策的去中心化交给多个方。Moonbeam中为每个相关角色提供的Gnosis Safe多签分叉。

在实施多签时,移除了单一超级用户角色,从而不再有机会在没有所有相关方参与的情况下操控合约。

动态提名模型

Lido的一个目标是达到可能的最高APR。这里的主要问题是验证者的选择。我们有一个基于验证者表现的无审查公共数据的策略。

一般原则

透明性

验证者选择算法不仅要透明,而且还要基于每个时代的公开和可验证数据。时代是一个 特定活动验证者集合存在的时间段

以下是我们针对每个验证者和时代收集和计算的数据:

  • 时代点
  • APR
  • 质押金额
  • 提名者列表
  • 惩罚
  • 支付率

收集的数据被汇总并用于构建不同时间周期的多个指标:

  • 操作指标:最后区块
  • 短期指标:约1周
  • 中期指标:约1个月
  • 长期指标:约6个月

然后,评分模型考量验证者表现的动态变化,例如:

  • 操作数据使我们能够检测超额认购、费用增加和惩罚。

  • 短期数据可以告诉我们是否有某些在长期表现良好的验证者在下降或开始缺乏表现。

  • 中期和长期数据将保护我们免于选择在短期表现良好但在长期可能不稳定的验证者。

APR 最大化

APR 最大化的机制基于上述验证者得分。Lido将根据短期参数的变化对验证者进行重新提名,以便我们每周都能更新新的得分。

根据我们短期和长期的模拟,以及根据Phragmén算法的规则,我们从每个账本中提名3个验证者。

提名少于3个验证者会带来提名未当选活动集的验证者的风险。处于活动集中意味着该验证者已被选中在此时代生成区块:https://wiki.polkadot.network/docs/learn-nominator

而不生成区块意味着你在该时代不会获得任何奖励:https://wiki.polkadot.network/docs/learn-staking-faq#nominated-validators-not-in-the-active-set

拥有超过三个验证者会降低可用验证者列表的平均APR。

在选择每个验证者的提名数量时,我们考虑时代点的随机性。根据我们的模拟结果,如果我们每7天提名一次验证者,则每个账本上提名的验证者越少,APR 越高。

选择验证者的算法

1. 过滤出只接受提名的验证者。

2. 如果验证者受到惩罚、增加佣金、不在活动集中、验证者发出踢出请求、或验证者被踢出,则立即更改账本的提名。我们还会针对每个提名情况进行团队通知,以便在必要时进行手动审核。

3. 针对每个时代计算每个验证者在一周、一个月、一年的APR,使用以下公式:

其中 eraRange - 特定时代范围(例如,对于一周,eraRange = 28);

era[i].commission - 第 i 个时代的验证者佣金;

era[i].rewards - 第 i 个时代的验证者奖励;

era[i].otherStake - 第 i 个时代的验证者提名质押;

erasPerYear - 每年时代数量。

4. 计算验证者活动比例(例如,如果验证者在过去16个时代中有8个时代在活动集中,则其活动比例为50%)。

5. 计算每个验证者在每个时代范围的平均时代点。

6. 为每个验证者计算汇总指标:

_metric = (aprWeek + 3 ∗ aprMonth + aprYear) ∗_
_(2 ∗ activityWeek + activityMonth + activityYear) / 100 - 10¹⁸ ∗ sumSlashing,_

其中 apr = 指在(1)中提到的周、月、年的度量

activity = 指在(2)中提到的周、月、年的度量

sumSlashing = 验证者所受到的所有时间的累计惩罚

7. 根据汇总指标确定最佳验证者;

8. 选择前 N * 3 个验证者进行提名,其中 N - 账本数量;

9. 对于 ledger[i],提名验证者[i],验证者[i + N],验证者[i + 2 * N];

10. 在多签中创建重新提名提案。

惩罚对冲

Polkadot中继链的验证者可能会因各种原因受到惩罚,如不可用性或双重签名。尽管惩罚很少发生,Lido 应该最小化这种风险。

我们的对冲策略基于质押多样化。这意味着我们将集中质押分配给多个提名者或质押账本。我们不会选择曾经受到惩罚的验证者。

质押账本数量与集中质押成比例变化。当前在Polkadot网络中的总质押金额约为625 MDOT,活动验证者集由297个验证者组成 → 最大账本质押约2 MDOT。这意味着如果账本的质押超过2 MDOT,那么它开始表现不佳。考虑到惩罚应至少对冲50%,如果整体质押少于2 MDOT,该数量可能过高。我们现在在一个账本上使用动态最佳总质押。

这种方法使我们能够最小化惩罚风险,例如,假设我们在几个具有相同质押的账本上,并且提名的验证者之间没有交集,因此如果其中一个账本被惩罚,则其他账本的奖励会减小惩罚损失。

例如,在一个时代,我们有5个活动账本,活动质押为500,000 DOT,其中一个账本提名给在当前时代被惩罚的验证者。根据我们当前的APR = 16%,我们将获得的奖励是500,000 * 4 * 0.16 / 365 ~ 877 DOT。假设一个账本提名的验证者下线,导致其提名者有1%的无响应惩罚,那么500,000 * 0.01 = 5,000 DOT将被惩罚。在这种情况下,时代损失为5,000 - 877 ~ 4,123 DOT。如果我们仅使用一个账本,则损失将为500,000 * 5 * 0.01 = 25,000 DOT。

案例研究

  1. 验证者在过去一周表现非常好,但只工作了2周,因此我们的算法不会选择该验证者,因为它还没有一个月和一年的历史。

  2. 验证者在上周表现一般,但在过去3个月中有非常好的APR,因此我们的算法将选择该验证者。

  3. 验证者在上个月产生了非常高的APR,但之前曾受到惩罚。在这种情况下,算法将不会选择该验证者,因为惩罚风险。

  4. 验证者表现优异,但每周只被选为活动集一次。算法将不会选择该验证者,因为其活动水平非常低,这意味着长期APR较低。

立即质押你的 DOT

  • 谁是 MixBytes?

MixBytes 是一个专家区块链审计师和安全研究团队,专注于为兼容EVM和基于Substrate的项目提供全面的智能合约审计和技术咨询服务。加入我们在X上,保持与最新行业趋势和见解的同步。

  • 原文链接: mixbytes.io/blog/lido-on...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
mixbytes
mixbytes
Empowering Web3 businesses to build hack-resistant projects.