[TOC]

AIP-50 - 更改委托池(delegation pools)中的佣金比例

一、概述

当前,佣金比例由委托池所有者在池的启动时设定,并在之后固定不变。我们提议允许委托池所有者在创建委托池后更改佣金比例。

存在风险,即委托池所有者可以在委托人不知情的情况下更改佣金比例。为了减轻这一风险,每个锁定周期内的最大佣金比例变更受到限制,且必须在锁定周期结束前至少7天执行。变更直到下一个锁定周期才生效,因此委托人可以在变更生效前撤销委托。钱包和质押界面应监听更新佣金事件以构建通知以提醒委托人。

存在一个风险,即委托池运营者( the pool owner)可能会在质押者(staker)不知情的情况下调整佣金比率。为了降低这种风险,我们设定了每个锁定期佣金比率变动的上限,并规定该变动必须在锁定期结束前至少7天执行。这一变更将在下一锁定期开始时才会生效,质押者因此可以在新的比率实施前取消质押。钱包和质押界面应该监控佣金比率更新事件,并据此推送通知,以便及时提醒质押者。

1. 目标

此功能将增加委托池所有者对网络/佣金比例(network/commission rates)的灵活性。委托池所有者可以根据市场状况和经营策略适当调整运营者(operator)佣金比例。因此,这将促使质押池参与市场动态。例如在必要时降低佣金以吸引更多质押者,或在条件允许时提高佣金以增加收益。如果运营者本人也是委托池所有者,他们可以直接使用这个功能;若不是,他们则需与委托池所有者协作以实施调整。

2. 不在范围内

运营者将无法更改佣金比例。在我们现有的设计设置中,操作员由委托池所有者指定。

3. 影响

  • 委托池所有者 具有更改运营商佣金比例的权限。
  • 运营者 受佣金比例变化的影响,这将影响他们的奖励。
  • 质押者 需要密切关注佣金率的变化,防止因不知情而被多收费。他们可能本以为佣金率是不会变动的。

二、替代方案

目前委托池模块不允许更改操作员佣金比例,因此没有替代方案。

此外,在我们现有的设计设置中,允许操作员更改佣金比例是没有意义的。目前,运营者由委托池所有者指定,因此最终委托池所有者控制一切。

三、规范

  • 更改佣金比例的函数签名如下:
    public entry fun update_commission_percentage(
        owner: &signer,
        new_commission_percentage: u64
    )
  • 只有委托池所有者可以更改运营者佣金比例。
  • 最大佣金比例为100%。最小佣金比例为0%。
  • 每个锁定周期内的最大绝对增加率为10%,相对于当前佣金比例而言。例如,如果当前佣金比例为9%,则下一个锁定周期中的新佣金比例不能高于19%。这是为了保护委托人免受佣金比例的突然变化。
  • 没有最大降低率。
  • 最短剩余锁定时间为7天。换句话说,只有在当前锁定周期剩余7天或更多时才可以请求更改佣金比例。
  • 新的佣金比例不会在下一个锁定周期之前生效。可以多次调用更改佣金比例的功能,但只有在锁定周期结束前的最后一次调用才会生效。
  • 更改佣金比例时会发出事件。
  • 即将更改的佣金比例清晰显示在 Aptos Explorer 和 Petra Mobile 的质押前端 UI 中。

四、参考实现

请参考 https://github.com/aptos-labs/aptos-core/pull/10226。

五、测试

测试计划是什么?

在发布到主网之前,进行自动化单元测试和在开发网络/测试网络上的测试。

六、风险和缺点

委托池所有者可能也是池的运营者。委托池所有者可以将运营者佣金比例更改为更高的值,并获得更大的奖励份额。为了减轻这一风险,

  1. 我们将每个锁定周期内的最大佣金增加限制为10%。
  2. 我们将最小剩余锁定时间限制为7天。
  3. 当调用更新佣金比例的函数时,我们会发出一个事件。这可以与前端警报绑定。

七、时间表

1. 建议的部署时间表

此更改将作为 v1.8 发行版的一部分发布。

2. 安全注意事项

只有在 delegation_pool.move 中的框架变更经过审计并确认无误后,才算完全完成。