投票

提示

本文主要描述投票相关逻辑,并非详细的技术文档,详细技术文档会在技术黄皮书里提及。

相关词汇解释:

  • 投票:一种链上治理方式,根据投票用户持有的 vite 来计算权益,以此作为投票权重,选举超级节点。
  • 超级节点: 出快照块的节点。

什么是投票

Vite 使用一种基于协议的投票机制来进行链上治理。在投票机制上,分为全局投票和局部投票两种。全局投票是根据用户持有的 vite 来计算权益,以此作为投票权重,全局投票主要用于快照共识组代理节点的选举。而局部投票是针对某一个委托共识组,在创建委托共识组时,指定一种代币作为投票依据,可以用于选举委托共识组的代理节点。

快照共识组的代理节点除了负责交易的验证之外,还有权选择是否对 Vite 系统进行非兼容性升级。而委托共识组代理节点有权决定是否允许组内的合约进行升级,从而避免因合约升级带来的潜在风险。由代理节点来代表用户行使升级决策权,是为了提高决策的效率,避免因投票参与度不足而引发的决策失效。这些代理节点本身也受共识协议约束,只有多数代理节点都通过,升级才会生效。如果这些代理节点不按用户的预期履行决策权,用户也可以通过投票,取消他们的代理资格。

投票规则

对于每个共识组,一个用户可以投票给一个代理节点。投票时,只需要发起一笔投票交易(实际上是调用内置合约),指定一个共识组和这个共识组中的一个代理节点,当内置合约接收这笔交易,并被快照链打包确认后,投票正式生效。

投票生效后,就会影响共识选举下一轮出块节点。

生效中的投票可以随时撤销,撤销时同样需要发起一笔撤销投票交易,指定需要撤销投票的共识组。撤销投票成功后,共识选举下一轮出块节点时将不再计算这个用户的投票权益。

FAQ

  • 一个用户能否同时给快照共识组的多个代理节点投票?

不可以。一个用户只能给一个快照共识组的一个代理节点投票,但是可以同时给快照共识组和其他委托共识组的代理节点投票。

  • 如果投的代理节点取消质押了(代理节点注册成功 3 个月后可以取消质押,不再出块),那么投票是否有效?

如果代理节点取消质押了,那么共识将不再统计这个代理节点的选票,即给这个代理节点的投票都将成为废票,此时用户可以撤销投票或者投票给其他代理节点。

  • 如果用户持有的 vite 数量为 0,可以投票吗?

投票交易时需要消耗配额,不需要消耗 vite,因此即使即使账户中没有 vite 也可以投票。但是快照共识组在选举出块节点时会根据用户当前持有的 vite 数量来计票,如果用户持有的 vite 数量为 0,则记为废票。

  • 为什么不能给公共委托共识组的节点投票?

公共委托共识组和快照共识组共用共识结果,出块节点相同,所以不需要给公共委托共识组的节点投票,直接给快照共识组的节点投票即可。