变更日志

  • 2020 年 1 月 1 日:首个版本开始

背景

目前,所有治理提案的投票期都是相同的。然而,这并不理想,因为并非所有治理提案都需要相同的时长。对于争议较小的提案,可以通过更短的投票期更高效地处理;而争议较大或更复杂的提案,则可能需要更长的时间来进行扩展讨论和审议。

决策

我们希望设计一种机制,使治理提案的投票期能够根据投票者的需求动态变化。我们希望它基于治理参与者的整体意愿,而不仅仅是治理提案发起人的看法(因此,仅允许提案发起人选择投票期长度是不够的)。 不过,我们希望避免为了决定投票期长度而再引入一整套第二轮投票流程,因为那只会把问题转移为如何决定第一轮投票期的长度。 因此,我们提出如下机制:

参数

  • 当前的治理参数 VotingPeriod 将被 MinVotingPeriod 参数取代。这是所有治理提案投票期的默认初始值。
  • 新增一个治理参数,名为 MaxVotingPeriodExtension。

机制

新增一种 Msg 类型,名为 MsgExtendVotingPeriod,任何已质押账户都可以在提案投票期内发送该消息。它允许发送者按 MaxVotingPeriodExtension * 发送者所占投票权份额 单方面延长投票期时长。每个地址对每个提案只能调用一次 MsgExtendVotingPeriod。 例如,如果 MaxVotingPeriodExtension 被设置为 100 天,那么任何拥有 1% 投票权的人都可以将投票期延长 1 天。如果已有 33% 的投票权发送了该消息,则投票期将延长 33 天。因此,如果所有人都选择延长投票期,则投票期的绝对最大值将为 MinVotingPeriod + MaxVotingPeriodExtension。 该系统相当于一种分布式协调机制:单个质押者选择延长或不延长,使系统能够衡量提案的争议程度和复杂度。大量质押者在完全相同的时间选择延长的可能性极低,这也使质押者能够看到其他人截至当前已经延长了多久,从而决定是否需要进一步延长。

处理解绑定 / 重新委托

有一个问题需要处理:如何应对投票期内发生的重新委托或解绑定。如果一个拥有 5% 投票权的质押者调用了 MsgExtendVotingPeriod,随后又进行了解绑定,那么投票期是否还要再减少 5 天?这并不好,因为它会让人们对自己还有多少时间做决定产生错误预期。因此,我们希望将机制设计为:投票期长度只能延长,不能缩短。为此,当前的延长量基于任意时刻选择延长的最高投票权比例。下面通过示例说明:
  1. 假设有两个质押者,投票权分别为 4% 和 3%,并且都投票选择延长。投票期将延长 7 天。
  2. 现在,拥有 3% 投票权的质押者在投票期结束前决定解绑定。投票期延长时长仍然保持 7 天。
  3. 接着,另一个拥有 2% 投票权的质押者决定延长投票期。此时有 6% 的活跃投票权选择延长。投票期仍然保持延长 7 天。
  4. 如果此时第四个拥有 10% 投票权的质押者也选择延长,那么总共有 16% 的活跃投票权希望延长。投票期将被延长至 16 天。

委托人

与实际投票期内的投票类似,委托人会自动继承其验证人的延长选择。如果其验证人选择延长,则委托人的投票权会计入该验证人的延长额度。不过,委托人不能覆盖其验证人的选择并“取消延长”,因为这会违背上一节所述“投票期长度只能单向增加”的原则。但是,如果其验证人尚未选择延长,委托人可以使用自己的个人投票权选择延长。

状态

提议中

影响

正面

  • 更复杂或更具争议的治理提案将有更多时间被充分理解和审议

负面

  • 治理流程会变得更加复杂,需要更多理解才能有效参与
  • 将无法再预测治理提案何时结束,也不能假设治理提案结束的先后顺序

中性

  • 最短投票期可以设置得更短

参考资料


Changelog

  • 1 January 2020: Start of first version

Context

Currently the voting period for all governance proposals is the same. However, this is suboptimal as all governance proposals do not require the same time period. For more non-contentious proposals, they can be dealt with more efficiently with a faster period, while more contentious or complex proposals may need a longer period for extended discussion/consideration.

Decision

We would like to design a mechanism for making the voting period of a governance proposal variable based on the demand of voters. We would like it to be based on the view of the governance participants, rather than just the proposer of a governance proposal (thus, allowing the proposer to select the voting period length is not sufficient). However, we would like to avoid the creation of an entire second voting process to determine the length of the voting period, as it just pushed the problem to determining the length of that first voting period. Thus, we propose the following mechanism:

Params

  • The current gov param VotingPeriod is to be replaced by a MinVotingPeriod param. This is the default voting period that all governance proposal voting periods start with.
  • There is a new gov param called MaxVotingPeriodExtension.

Mechanism

There is a new Msg type called MsgExtendVotingPeriod, which can be sent by any staked account during a proposal’s voting period. It allows the sender to unilaterally extend the length of the voting period by MaxVotingPeriodExtension * sender's share of voting power. Every address can only call MsgExtendVotingPeriod once per proposal. So for example, if the MaxVotingPeriodExtension is set to 100 Days, then anyone with 1% of voting power can extend the voting power by 1 day. If 33% of voting power has sent the message, the voting period will be extended by 33 days. Thus, if absolutely everyone chooses to extend the voting period, the absolute maximum voting period will be MinVotingPeriod + MaxVotingPeriodExtension. This system acts as a sort of distributed coordination, where individual stakers choosing to extend or not, allows the system the guage the conentiousness/complexity of the proposal. It is extremely unlikely that many stakers will choose to extend at the exact same time, it allows stakers to view how long others have already extended thus far, to decide whether or not to extend further.

Dealing with Unbonding/Redelegation

There is one thing that needs to be addressed. How to deal with redelegation/unbonding during the voting period. If a staker of 5% calls MsgExtendVotingPeriod and then unbonds, does the voting period then decrease by 5 days again? This is not good as it can give people a false sense of how long they have to make their decision. For this reason, we want to design it such that the voting period length can only be extended, not shortened. To do this, the current extension amount is based on the highest percent that voted extension at any time. This is best explained by example:
  1. Let’s say 2 stakers of voting power 4% and 3% respectively vote to extend. The voting period will be extended by 7 days.
  2. Now the staker of 3% decides to unbond before the end of the voting period. The voting period extension remains 7 days.
  3. Now, let’s say another staker of 2% voting power decides to extend voting period. There is now 6% of active voting power choosing the extend. The voting power remains 7 days.
  4. If a fourth staker of 10% chooses to extend now, there is a total of 16% of active voting power wishing to extend. The voting period will be extended to 16 days.

Delegators

Just like votes in the actual voting period, delegators automatically inherit the extension of their validators. If their validator chooses to extend, their voting power will be used in the validator’s extension. However, the delegator is unable to override their validator and “unextend” as that would contradict the “voting power length can only be ratcheted up” principle described in the previous section. However, a delegator may choose the extend using their personal voting power, if their validator has not done so.

Status

Proposed

Consequences

Positive

  • More complex/contentious governance proposals will have more time to properly digest and deliberate

Negative

  • Governance process becomes more complex and requires more understanding to interact with effectively
  • Can no longer predict when a governance proposal will end. Can’t assume order in which governance proposals will end.

Neutral

  • The minimum voting period can be made shorter

References