CIP-43(Conflux改进提案)详细介绍

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

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

简介

CIP-43 提议将交易最终性 (finality) 引入 Conflux 网络。最终性由 CFX 持有人通过质押投票产生。这一 CIP 将避免 PoW 潜在的 51% 算力攻击,并提高 Conflux 网络上的高价值交易确认安全性。

摘要

CIP-43 提议引入一条独立的 PoS 链,用于监控 PoW 链(树图结构)的过程,对根据 PoW 确认规则已确认的主链区块达成共识。一旦 PoS 链认为一个主链区块已被确认,所有 PoW 链的矿工应该跟随其后产生新的区块。此举将有效保护 Conflux 链免受来自 PoW 机制的51%远程攻击。
CFX 持有人可以将持有的 CFX 存入特定的合约,以此来成为一个 PoS 节点。PoS 节点通过一个可验证随机函数(VRF)来产生参与 PoS 链共识的委员会。委员身份是临时的,将以六小时为周期进行轮转。委员会的选举类似美国参议院,其成员的任期是交错的,每小时将选举大约六分之一的委员会席位(此项CIP的设计比较复杂,后续可能会有参数的调整)。

只有对 PoS 链的抵押才能产生利息,更多关于经济模型的细节仍在讨论中。

动机

在一条公链生态发展早期,算力总量相对不足。这导致可以低成本发起 51% 攻击并通过双花(double-spending)来窃取链上资产。以太经典,grin 和 verge 在去年相继遭到51%攻击。为了减轻来自攻击者的威胁,Conflux 引入 PoS finality,通过质押 CFX 产生一个委员会来推荐已确认的主链区块,所有 PoW 链节点应跟随此区块来打包产生新的区块。

注意事项

众所周知,在攻击者控制的算力小于50%的时候,采用PoW共识协议的链是安全的。对于激活CIP-43之后可能发生的情况,我们考虑了如下场景。

  • 51%攻击:在攻击者拥有超过51%算力的情况下,只要PoS链运行良好,那么在攻击发生前已经由PoS决定的主链区块就依然是安全的(由攻击者分叉产生的链将不被承认)。然而,由于PoS节点无法再确认新的PoW区块,PoW可能因此失去活性。如果攻击者消失了,共识协议将恢复正常运行。
  • 17%质押攻击:若攻击者控制了超过17%的委员会成员,PoS将失去活性,但PoW链将继续运行,就像没有CIP-43一样。如果攻击者消失了,共识协议将恢复正常运行。
  • 84%质押攻击:若攻击者控制了超过84%的委员会成员,则可以产生冲突的PoS区块。PoW链将从此离散,即使攻击者停止作恶也无法恢复。
  • 远程攻击(long-range attack):与84%质押攻击不同,在远程攻击中,造成一个PoS节点变得恶意的原因并非是其有意破坏共识,而是因为丢失了私钥。所以我们假设攻击者只能在非常早期的阶段控制委员会的大多数席位,若此时攻击者控制了超过51%的算力,就能够回滚PoW链并造成双花攻击。除此以外的情况下共识协议都将照常运行。

如果POW被攻击,POS已确认,如何解决?毕竟数字是以光速运行的,这个安全时间间隔,怎么确定呢?

不要影响到现有的随时可存取的4.08%年化内置合约,因为有不少合约已经在用这个特性了。

可以提供一些具体的依赖 4.08% 特性的合约地址或项目吗?

Poolgo(已上线使用),神笔马良(近期将上线的玩法),炼丹西游(测试中马上上线),NFTBox(准备上线的新玩法)。都有玩这个4.08% (用来作为项目token的底层客观价值支撑之一)