CIP-99(增强 PoS 强制退休机制的容错性)详细介绍

本文是整理好的CIP-99中文介绍,供大家交流讨论。

CIP-99详情链接:https://github.com/Conflux-Chain/CIPs/blob/master/CIPs/cip-99.md

内容

在强制节点退休之前允许其更多的不投票任期,并缩短退休节点的解锁周期,以允许节点更快地重新加入 PoS 投票。

摘要

当前的参数使得节点运营容易导致强制退休,从而造成利息损失。该 CIP 建议使参数更具容错性,即增加所需的不投票任期的数量并减少解锁期限。

动机

如果委员会中的一个节点在一个任期内(大约一个小时)没有投票,则当前的 PoS 机制会使其强制退休。但是,一个节点的正常重启过程一般是 30-50 分钟左右,所以如果节点运营者重启或升级某个在委员会中的节点时出现任何问题,该节点很可能会被强制退休。而如果主机遇到一些随机故障(比如断电),节点运营者几乎无法在这1小时的窗口期内及时响应。

现在,由于强制退休有时是不可避免的,7天的解锁期用于惩罚主机错误也似乎时间过长,因为在此期间节点没有收益。并且这使得调试相关问题更加困难,因为我们需要等待 7 天才能重试。

规格说明

在硬分叉之后,强制退休节点所需的不投票任期数变为 3 个连续任期。注意,如果一个节点在当选的最后两个任期没有投票,并且在下一轮选举中没有被选为委员会成员,该节点不应该被强制退休。
在硬分叉后,解锁期变为 1 天(适用于正常退休和强制退休),锁定期时间变为13天。

理论依据

正常退休的解锁周期不应长于强制退休,因此没有节点会主动触发强制退休。
由于每个节点为委员会服务 6 个任期,因此无论节点的投票权如何,检查 3 个连续任期都会有所帮助。
一个节点锁定和解锁的总时间仍然至少为 14 天,因此该提案不会引入更多的攻击机会。

后向兼容性

此改动将改变原有系统规范。

测试用例

待补充。

实现

待补充。

安全性考虑

允许节点有更多的不投票任期使得崩溃故障影响系统的时间更长。但是,如果这个不投票节点的投票权不妨碍系统的正常运行,即使让它在委员会中再多保留两个任期,整个系统中仍然有足够的诚实投票权。

另一个问题是,在硬分叉高度之前质押并在高度之后退出的账户将能够在不到 14 天后解锁退出。但是由于这只发生在硬分叉期间而不是之后,所以应该没有问题。

版权

此提案遵守CC0 协议,所有版权及相关权利不设限。

2 Likes