关于 SUI 质押,那些你或许不知道的硬核知识
作者:Sui Network
SUI 主要用途
- PoS:用于参与委托权益证明机制
- Gas 机制:用于支付网络交易和存储费用
- 流动性:在 Sui 经济中提供链上原生流动性
- 社区治理:有可能影响 Sui 未来的治理
质押流程
Q1:什么是质押者?
拥有 Sui 地址的任何人都可以通过将 SUI 质押到他们选择的一个或多个验证节点来进行质押,质押者包括质押 SUI 的验证节点或第三方 SUI 持有者。
Q2:质押的 SUI 去哪了?
请放心,它们被安全地锁定在您的地址里!与其他网络中现有的流动性质押解决方案不同,在那些方案中,质押者需要将其质押的 token 控制权移交给第三方的流动性质押智能合约。而 Sui 允许 SUI 持有者直接将其 SUI 质押到选择的验证节点,同时保留其质押 token 的完全控制权。质押 token 受到 Sui 协议层的保护,不受第三方智能合约的漏洞影响。
Q3:什么是质押池?
每个 Sui 验证节点都会维护自己的质押池,以跟踪质押的数量并累积质押奖励。验证节点池与每个 epoch 边界计算的兑换率时间序列一起运作。这些兑换率决定了过去的每个 SUI 质押者在将来可以提取的 SUI 数量。重要的是,随着更多奖励存入质押池,兑换率会上升,而且 SUI 存入质押池的时间越长,累积的奖励越多。
每个验证节点都有一个与其特定质押池相对应的兑换率时间序列,在质押池对象内部链上存储。从 SUI 质押者的角度来看,可以通过以下共识跟踪其质押的价值。
E’时的 SUI = (E 时存入的 SUI) * (E’时的兑换率 / E 时的兑换率 )
在概念上,质押池的运作方式与流动性池完全相同。当 SUI 在 epoch E 存入质押池时,根据 epoch E 的兑换率,将其转化为流动性 token。随着质押池获得奖励,兑换率会上升。在 epoch E’,这些流动性 token 的价值更高,可以转化为更多的 SUI。
Sui 质押池与典型的流动性池之间唯一的区别在于,在 Sui 中,流动性 token 不存在。相反,全局兑换率表用于跟踪计算。这种设计的一个优点是,由于质押池中的所有 SUI 都是相同的,无论它们最初是作为新的质押还是作为质押奖励存入,所有 SUI 都立即视为质押,因此奖励立即进行复利计算。
质押池是一个系统级智能合约(staking_pool.move),也是 Sui 框架的一部分。
Q4:SUI 质押的发展经历了哪些阶段?
质押 v1:[原始设计,已弃用]
这个设计在测试网第二阶段使用,但现在已经被弃用,移除了两个主要的实现:
- 此前,质押流程分为两个阶段。首先,质押者存入 SUI 后,立即获得一个包含锁定 SUI 的 StakedSUI 对象。其次,在 epoch 结束时,一旦质押池的兑换率更新,用户获得一个包含用户池 token 的 Delegation 对象。Delegation 对象必须等到 epoch 关闭,因为在 epoch 内无法预先知道结束时期的兑换率,它取决于整个 epoch 内收集的 Gas 费的数量。这种方法在 epoch 边界时需要重新配置非常多的交易,因此在质押 v2 中已经移除了 Delegation 对象(见下文)。
- 此前,当执行质押取回时,取回的质押进入待定质押状态,并且在 epoch 边界关闭后进行处理。这样做的原因是,由于当前 epoch 的质押奖励是在整个 epoch 内确定的,因此在 epoch 仍然活跃时无法完全预测到结束 epoch 时的兑换率。因此,此设计在处理具有更新兑换率的取回之前需要等待 epoch 关闭。这种情况已不再存在,取回将立即以前一个 epoch 的兑换率进行处理。
质押 v2:[当前主网设计]
两个主要变化是:
- 质押池的核算已经简化。与之前一样,当用户质押 SUI 时,这些对象被包装成 StakedSUI 对象。但是,质押池不再通过 Delegation 对象来实现每个用户对质押池的相对所有权。相反,核算是直接通过 StakedSUI 对象的时间戳(确定存款发生的时间点)和存款 epoch 与取回 epoch 之间的兑换率变化来进行的。每个质押池的数据结构包含一个该池的兑换率时间序列。这些兑换率可以用于确定该池中任何质押者的取款情况。
- 质押取回将立即根据上一个 epoch 的兑换率进行处理,无需等待当前 epoch 关闭。取回包括用户存入的原始质押和累积到上一个 epoch 的所有质押奖励。这种方法的缺点是,在取回的 epoch 内,质押者不会获得其质押奖励。直到 epoch 关闭,由于无法预先知道在当前 epoch 内将累积多少质押奖励,因此无法将其包含在取回中。因此,任何用户都可以立即取回他们的质押并获得:
E’时取回的 SUI = (E 时存入的 SUI ) * (E’-1 时的兑换率 /E 时的兑换率 )
质押 v3:[未来更新]
这是最终将推向主网的长期解决方案。
质押 v2 设计的主要挑战是无法处理解除绑定(或冷却)期的问题,这对于网络安全至关重要。通过修改 Sui 如何处理取回请求,将其分为两个步骤来实现这一点:
- 在第一笔交易中,质押者将提交取回请求并获得一个 WithdrawalReceipt。在此时,质押者不会收到任何 SUI。
- 在第二笔交易中,一旦预定的解除绑定期过去,质押者可以提交 WithdrawalReceipt 并获得他们的 SUI 本金和累积奖励。
重要的是,除了启用解除绑定期,此设计还可以让用户在取回 WithdrawalReceipt 之后获得他们应得的全部奖励,因为必须在提交取回请求的 epoch 结束时进行取回。这种设计不会遇到质押 v1 中引起非常大的重新配置交易的挑战,因为 WithdrawalReceipt 对象可以在任何时候兑换(一旦解除绑定期结束),并且不依赖于 epoch 边界。
Q5:我的质押存入请求何时生效?
一旦质押存入请求提交,它立即进入质押池中的待定状态。Sui 钱包将反映用户账户的任何待定质押存入请求。然而,待定质押存入请求要到请求所在的 epoch 结束时才会生效。
Q6:我的解除质押请求何时生效?
解除质押或取回请求一旦收到,将立即进行处理。质押者将获得最初存入的 SUI 以及累积到上一个 epoch 边界的所有质押奖励。换句话说,它们不包括当前 epoch 的质押奖励。有关此实现的更多详细信息,请参阅质押 v2。请注意,在未来,一旦实施了质押 v3,解除质押请求将不会立即处理。
Q7:如何计算每个验证者池的兑换率?
每个验证节点池的兑换率在每个 epoch 边界处按以下方式计算:
E+1 时兑换率 = (1 + (E 时质押奖励 / E 时质押金额))*(E 时兑换率)
重要的是,epoch E 期间质押者获得的质押奖励是该 epoch 内验证节点池获得的总质押奖励的一个子集。换句话说,验证节点池获得的总质押奖励可以分为三个独立的部分,取决于它们是由谁获得的:
质押奖励 = 质押者奖励 + 验证节点佣金 + 存储基金奖励
普通的 SUI 质押者只获得质押者奖励。与此同时,验证节点获得对这些奖励收取的佣金(验证节点佣金)以及归属于存储基金的奖励。
验证节点池的兑换率仅通过质押者奖励的金额进行更新,以便完全追踪 SUI 质押者获得的奖励。然而,这种计算方法还使 Sui 能够通过更新的兑换率,以额外的 StakedSUI 对象的形式向验证节点提供验证节点佣金和存储基金奖励,从而跟踪验证节点获得的奖励
Q8:相对于第三方 SUI 持有者,验证节点的质押过程有何不同?
过程是相同的。将 SUI 一起质押的验证节点将遵循,与该验证节点一起质押的任何第三方 SUI 持有者相同的过程。
Q9:相对于 SUI 质押者,验证节点的质押奖励计算有何不同?
在给定的验证节点质押池中,所有质押者通过池子的兑换率升值获得相同比例的奖励。此外,由于验证节点在管理质押上赚取佣金和存储基金奖励,验证节点在每个 epoch 结束时会按照这些金额的比例获得额外的 StakedSUI 对象。
质押奖励
Q1:质押奖励从哪里来?
质押奖励来自于当前 epoch 内获得的交易 gas 费以及在 epoch 结束时释放的质押津贴。
质押奖励 = 质押津贴 + gas 费
质押津贴旨在在网络的早期阶段进行补贴,资金来源是 10%的 SUI。一旦这个分配用尽,质押奖励的整体将由通过常规网络操作收集到的 gas 费组成。
Q2:质押奖励会自动复利吗?
是的!请参阅上面「Q3:什么是质押池」的回答。
Q3:主网上会有多少质押奖励?
质押奖励由 gas 费和质押津贴组成。每个时 epoch 分布的总金额如下确定:
- 质押津贴:每个 epoch 分布的金额在 epoch 开始之前根据预定的时间表确定。
- gas 费:每个 epoch 的金额取决于整个 epoch 内获得的总 gas 费。每个 Sui 交易根据两个变量支付 gas 费,即执行的 gas 单位和 gas 价格:
gas 费 = gas 价格 * gas 单位
所收集的 gas 费总额对应于在 epoch 内处理的所有交易的 gas 费总和。在常规市场条件下,我们预计绝大多数交易的 gas 价格将等于参考 gas 价格。将来,Sui 将引入拥堵定价机制,以便在网络拥堵时,gas 价格将高于参考 gas 价格,因为用户实际上会向验证节点付小费以换取优先权。
质押限制
Q1:我可以从活跃的验证节点质押中解除一部分吗质押?
不支持这个。每个 StakedSUI 对象的解除质押要么全部解除,要么不解除。
然而,用户可以将任意数量的 SUI 对象质押给任何验证节点。因此,如果他们从一个验证节点解除了一部分 SUI 对象的质押,实际上可以从验证节点部分解除质押。由于 StakedSUI 对象可以分成多个对象,如果质押者首先将一个 StakedSUI 对象分成几个对象,然后解除一些对象的质押,那么质押者始终可以有效地解除一部分质押。
Q2:单个验证节点的最小质押金额是多少?
最小的质押金额是 1 个 SUI。
Q3:验证节点的质押与共识中的投票权有什么关系?
按照惯例,无论质押的数量如何,总投票权始终为 10,000,因此法定门槛为 6,667(2/3 的比例)。每个验证节点的共识投票权与其质押成比例,但有一个例外:单个验证节点的投票权上限为 1,000(总投票权的 10%)。
Q4:单个验证节点的最大质押金额是多少?
没有限制。然而,在共识中,单个验证节点的投票权被设定上限为 10%。如果一个验证节点积累了超过总质押的 10%,那么该验证节点的投票权将保持在 10%,其余的投票权将分散到其余的验证节点集。
类似地,验证节点的质押奖励份额也将使用相同的 10% 上限来计算管理质押的金额(请参阅质押奖励计算)。换句话说,一旦一个验证节点积累了超过总质押的 10%,每个质押的 SUI 奖励将开始下降,因为质押池不再增加其获得的质押奖励的数量。
质押奖励计算
温馨提示:公式太多,感兴趣的建议认真阅读。
验证节点
Q1:什么是参考 gas 价格,验证节点需要什么时候参与?
Sui 的设计使得终端用户可以在常规网络操作期间 gas 价格保持稳定和可预测。这是通过在每个 epoch 开始时由验证节点设置网络的参考 gas 价格来实现的。
在操作上,这是通过「gas 价格调查」来实现的,步骤如下:
- 在每个 epoch E 期间,每个验证节点都会提交他们认为下一个 epoch E+1 的最佳参考 gas 价格。
- 在 epoch 边界,当 Sui 从 epoch E 过渡到 epoch E+1 时,网络会观察验证节点集合中的气价 gas 价格,并将按照 2/3 处的投票加权作为下一个 epoch 的参考 gas 价格。因此,每个 epoch 的参考 gas 价格在整个 epoch 内都是恒定的,在 epoch 更改时才会更新。
提交 gas 价格调查的报价过程非常简单。每个验证节点都拥有一个包含他们参考 gas 价格的对象。如果验证节点希望更改他们的报价,那么他们只需更新该对象中的值。验证节点可以通过转让他们的操作能力对象来将设置 gas 价格报价的能力委托给其他账户。
Q2:统计规则是什么样子,验证节点需要什么时候参与?
Sui 的设计旨在鼓励和强制执行验证节点集合的社区监控。这是通过统计规则实现的,每个验证节点都会监控和评分其他每个验证节点,以确保每个人都高效运作,考虑到网络的最佳利益。那些不合规的验证节点会被罚款,其质押奖励会被削减。
协议规定仅在 epoch 边界计算全局统计规则分数,因此依赖于验证节点的积极监控,在检测到其他验证节点行为变化时更改其分数。一般来说,统计规则的默认选项应始终为所有验证节点的得分为 1,并且只有在确定操作不当时才更改为 0。实际上,统计规则由一组每个验证节点拥有的对象组成,这些对象的默认分数为 1,因此验证节点通常会被动地只在需要时更新与其他验证节点的分数相对应的对象。与提交 gas 价格报价类似,验证节点也可以通过转让他们的操作能力对象将其参与统计规则的权力委托给其他账户。
Q3:验证节点在统计规则中分配 0 分是根据什么标准?
统计规则应该通过社会均衡来实施。验证节点集合应积极监控自己,如果一个验证节点显然表现不佳,那么其他验证节点应该给该验证节点打 0 分并削减其奖励。未来,随着 Sui 网络的成熟,我们预计社区将启动公共仪表板来跟踪验证节点的性能,并可用作进一步了解验证节点运营的信号。
Q4:是否可以将多个验证节点打 0 分?
可以。通过统计规则,每个验证节点都会为其他每个验证节点评分,没有关于每个验证节点可以提交多少个 0 分或 1 分的限制。