首先解释一下 Conflux 在相当长的一段时间内都必须考虑 51% 攻击风险的现实状况:由于以太坊的巨大挖矿收益和对显卡的虹吸效应,矿工们已然购置了非常多的显卡,形成了巨大的显卡算力池。Conflux 也是采用显卡挖矿,且维护 Conflux 安全性的显卡算力目前仍远远比不上以太坊,所以存在大量显卡在短时间内切到 Conflux 作恶,完成 51% 攻击后一走了之的风险。
类似的 51% 攻击风险不仅同样存在于其他显卡挖矿的 PoW 公链,也存在于 BCH 等采用与 BTC 相同的 ASIC 设备挖矿但算力显著较低的情况。为了解决 51% 攻击风险,BCH 甚至不惜采用限制回滚长度这样“不甚优雅”的解决方案。
理论上,采用 PoW 的公链永远无法彻底消除 51% 攻击风险。实践中,攻击者是否发起 51% 攻击主要还是取决于攻击的收益和成本。
在攻击者的收益方面:成功的 51% 攻击不会损失挖矿收益。攻击者的收益主要可能因为两个原因降低,一是攻击成功后 token 价值暴跌带来的损失;二是社区达成共识,通过硬分叉回滚状态,消除攻击者的收益。然而,由于链上支持多种资产和发达的跨链服务,如今已经很难通过简单的硬分叉消除双花攻击造成的影响,这与 ETH 和 ETC 分叉时的情况已经大不相同了。
在提高 51% 攻击者的成本方面,现在可供选择的应对方法有三种:
这样的三个选项,我们认为实际上只有最后一个选项才是可行的。
至于团队的技术路线,Conflux 的目标是实现一个“人人参与、人人用得起的去中心化公有链平台”,而非实现一个“采用特定 PoW 共识协议的公有链”。技术路线只是服务于目标的手段,而非目标本身。为此,在 Conflux 现有的 PoW 共识机制上增加 PoS finality 决策来提升确认速度并抵抗潜在的 51% 攻击,是符合 Conflux 的目标的。另外,为了减少增加 PoS finality 机制的复杂度和潜在风险,我们选择完全由 PoW 矿工负责选择和打包交易,区块的排序也依然遵循树图排序规则,PoS 仅对 PoW 矿工产生的区块的 finality 投票。
关于对 PoW 和 PoS 的认识,我们从来没有变过:PoW 安全性比较好但是确认慢,PoS 确认快但是安全性较差,PoW 和 PoS 结合有可能成为一个更理想的共识协议(就在你引用的文章最后一段)。