PoW和PoS项目有哪些中心化风险呢?

PoW和PoS项目有哪些中心化风险呢?

关于PoW和PoS之间的主要区别,就是在于如何确定区块链共识中的投票权。 在PoW中,系统中的投票权与节点的计算能力成正比。每秒可以计算哈希函数次数越多,节点就越有可能赢得区块链中下一个区块的出块权。而在PoS中,系统的投票权与持有的股权比例成正比。节点拥有资金越多,能为确定的下一个区块投的票数就越多。

因此POW和POS本质上都是消耗资源来保证安全性,存在的主要中心化风险在于:

只要有足够的资金都能买到足够的算力和票权。即在一个公有链中,一个攻击者如果拥有当下足够多的算力或股权,无疑是可以打破公有链安全性完成攻击的。

划重点:区别在于攻击的成本不同。POW的成本远高于POS。

**对于PoW共识机制来说,基本思想就是算力决定出块权。**如果你能解出一个 PoW 计算难题,你就可以出块。粗糙地概括下,可以理解为一个CPU一票,或者一个GPU、一台矿机一票。

POW机制的安全性主要来自:

**首先,投票本身的边际成本比较高,因为每次成功投票都需要完成大量计算,在此过程中要消耗很多电力;它的出块和安全性依赖于算力的分散。**对于使用反 ASIC 矿机的挖矿算法的公有链来说,任何人只要拥有显卡和网络就可以成为矿工,这有助于促进更多人参与挖矿,实现早期算力的分散。只要超过50%的算力来自于诚实的矿工,区块链中的交易就是安全不可逆转的。

**其次,所投的票和投票权是绑定的:**一旦投票成功以后,即使是投票者本人也修改不了投票的内容。按照POW的一般逻辑,投票的时候需要先打包出一个块,然后再对这个块做工作量证明,如果做出来证明就相当于投出去一票,但是这个时候打包的块已经没有办法修改了。例如一个矿机跑一天可以投出很多票,但是如果这个矿机想把之前一天的算力集中到新的一个块上是办不到的;另一方面,如过想要回滚掉自己出的块,也必须付出和回滚别人的块时候所需的同等的算力。

其中第二点对于安全性尤为重要,因为它保证了通过工作量证明作出的选择是无法撤销、无法修改的,即便是想要修改自己过去投出的票也不行——除非对别的竞争选项重新做出工作量证明,而这需要再次消耗大量时间和电力等资源,作为之前的投票者本人并不比攻击者享有任何优势。

PoW 共识机制的另一个优点在于结构简单,易于分析和实现。例如比特币所用的最长链机制就很容易从博弈论的角度分析普通矿工的行为,从而对其安全性有一个比较客观的判断;另外比特币判定最长链的逻辑也是相当简单的,实现起来不易出错。

**然而,对于PoS共识机制,本质要求确定投票权和行使投票权是相互分离的,**因此可以用同一份投票权产生两份不同内容的投票,且两份投票单独看上去都是合法的。

这直接导致了”无利害攻击”(Nothing-at-stake attack)和”长程攻击”(Long-range attack)两种在 PoW 共识中不曾有过的攻击方式。

“无利害攻击”指的是一个投票者可以同时给分叉的两个分支投票,从而在两个分支上都获得投票收益的问题;”长程攻击”指的是攻击者可以通过购买其他用户私钥的方式获得一段时间以前某次投票的投票权,如果对应于这份投票权的资产早已被转移,那么攻击者购买相应私钥的成本将远低于实际持有相同份额资产投票权的成本。

另外,因为 PoS 共识中总是先确定投票权后再决定如何投票,而且受限于通信量,每一轮投票只能选取一部分用户参加,所以攻击者也可以定向购买或者以 DDoS 等方式阻塞即将生效的投票权,从而在特定的轮次获得远高于其持有资产份额的投票权利,这就是所谓的贿赂攻击(Bribing attack)。

可以说,每一个 PoS 共识协议设计的过程都免不了同上面所说的几种攻击方式斗争的过程。为此,PoS 共识协议不得不设计出各种复杂的规则,来检测或抵抗这几种针对 PoS 机制的攻击方式,这直接导致 PoS 共识机制往往都比较复杂,分析和实现起来都比 PoW 共识难得多。即便如此,现有的 PoS 和 DPoS 共识(与 PoW共识相比)也都需要在安全性和/或去中心化上做出一些让步。

如果这些人合谋对区块链进行攻击,则完全可以成功的实现双花攻击(Double spending attack). 尽管开发者和投资人出于利益考虑不会进行这样的攻击来摧毁他们自己的公链,但PoS公链也无可避免的在主网上线后就被这些人垄断和支配。更糟的是,如果出块可以获得大量奖励和交易费用,这些垄断者就会将大量股权牢牢控制在自己的手里,使得PoS公链成为一个本质上由巨头控制的网络。

我们不要忘了,区块链的核心价值是什么?是去中心化的共识协议,保证了区块链系统中每笔交易的正确性、不可篡改性。如果共识协议无法保证参与者的分散,区块链就无法做到无需信任的安全性,那么区块链和传统的分布式系统相比就没有任何优势了,甚至传统的分布式系统能做得更经济更高效。因此,公链项目在早期使用PoW, 是避免共识中心化,保护区块链核心价值的明智选择。

PoS 特别是基于 BFT 类型的共识可以解决现有 PoW 公链性能不高的问题,同时也会制造很多 PoW 公链本来没有的问题。Conflux 有能力有信心在不放弃 PoW 的前提下大幅度提高各项性能参数,所以选择不放弃 PoW,根据测试网的最新数据,Conflux 可以做到 3k+ tps 和 20~30 秒的确认时间。

前两个月在Conflux testnet 测试了 replay 以太坊历史交易,结果如下:

1392 TPS (Historical Ethereum transactions with contracts and dependency)

3480 TPS (14% Ethereum transactions + 86% Random transactions)

所以我们认为在可以解决性能瓶颈的情况下,坚持 PoW 可以获得更好的安全性和更高程度的去中心化。

Conflux 有能力有信心在不放弃 PoW 的前提下大幅度提高各项性能参数,所以选择不放弃 PoW。

至于Conflux为何选择POW作为机制,POS有哪些攻击方式,我们的核心开发工程师做了详细论述,请戳以下链接:

Conflux核心开发工程师李辰星:在公链项目早期,为什么PoW是一个更好选择?

Conflux研究总监杨光:PoW和PoS的全面比较