本文已参与「新人创作礼」活动, 一起开启掘金创作之路。
免责声明:本文仅从技术角度翻译、分析Solana,不构成任何的投资建议。 原创翻译,转载请注明出处。
5.9 辅助节点选举
可以提议和批准辅助的POH生成器。这个提案是在主⽣成器序列上⽣成。这个提案具有一个超时时间,如果该提案在超时时间内以绝大多数通过,就会选举成功,并将按计划接管职责。
主⽣成器可以通过在生成的序列中插入一条消息来表示进行POH生成器的切换,也可以插入一个无效的状态并迫使网络回滚到到辅助生成器的状态。
如果选举了⼀个辅助节点,并且主节点当主节点出现问题时,在选举期间会优先考虑是否回滚到辅助节点的状态。
5.10 可⽤性
在CAP分区中,必须在一致性和可用性中选择一个,我们最终选择了可用性。
5.11 恢复
在这个系统中,账户可以在任何的故障中完全恢复。这意味着,世界上任何人都可以在账本中选择任意一点,通过添加新生成的哈希值和交易创建一个的分叉,但这个分支需要得到绝大多数的投票才能认定有效。
5.12 Finality
PoH 允许⽹络中的验证者观察过去发⽣的事情,并在⼀定程度上确定这些事件的时间。当 PoH ⽣成器⽣成消息流的时候,所有验证者都必须在 500ms 以内提交它的状态签名(投票)。这个时间可以根据⽹络状况进⼀步减少。由于所有的验证都进⼊POH序列中,所以⽹络中的每个⼈都查看各个验证者是否在要求的时间内提交了他们的投票。
5.13 攻击
5.13.1 Tragedy of Commons 公地悲剧
PoS 验证者需要确认 PoH ⽣成器⽣成的状态哈希。有的验证节点就动了歪心思,想要躺平,比如他不做本地的任何计算和校验,直接批准所有⽣成的状态哈希。为了避免这种情况发生,PoH ⽣成器就会在某个时间随机注⼊⼀个⽆效的哈希值。所有给这个无效哈希投票的验证节点都会收到惩罚。当这个无效的哈希值生成后,就会把备用节点推选成新的 PoH ⽣成器。
每个验证者都需要在很短的时间内(比如500ms)做出响应 。超时时间应该设置得⾜够低,这种情况下,指望偷窥其他验证节点的投票去跟投的投机行为,就很难实施了。
5.13.2 与 PoH ⽣成器勾结
与 PoH ⽣成器勾结的验证者会提前知道何时会产⽣⽆效的哈希值,然后不投票。但这种情况,对于拥有超大质押股权的leader 没什么实质性的诱惑。leader任需要完成所有计算 ⼯作来⽣成状态哈希。