作者:扎克-赫斯, Zack Hess https://github.com/zack-bitcoin/amoveo-docs/blob/master/other_blockchains/the_defence_of_pow.md
最近,很多人都在论证PoW容易受到某些类型的攻击。本文的目的是解释各种攻击,并尝试了解它们会或不会成功的条件。
感谢Elliot Olds帮助我解释目前在以太坊社区讨论的针对PoW的各种攻击。Elliot可以清晰简洁地解释复杂的话题,他保持自己对加密货币的最新研究,你可以在Twitter上关注他https://twitter.com/elliot_olds。
感谢Fernando Nietom解释了PoW的现代安全模型。https://twitter.com/fnietom
双重花钱攻击。 #
如果大量的历史被重写,每个人都可以看到一个长长的分叉的孤儿存在。我们可以冻结所有的钱包和交易所,直到我们意识到哪一方是正确的。每个人都有动力去站在正确的一边。因此,在本文的剩余部分,我将专注于审查制度类型的攻击。
可信的攻击承诺。Credible commitment to attack. #
可信的攻击承诺(CCA)的想法是,如果一个有权势的人或机构能够满足这些条件。
- 他们有一个可信的策略,花费资源来摧毁一个PoW区块链。
- 他们有足够的资源来负担这种攻击。
- 他们可以令人信服地承诺使用他们的资源来进行攻击。
在这种情况下,PoW货币的用户都想在攻击发生之前把钱取出来。因此,该PoW货币的价格会下降,区块奖励的价格会下降,挖矿设备的价格会下降,因此,实施攻击变得非常便宜。
在分析包括CCA在内的论点时,要对循环推理保持谨慎。许多人试图解释为什么PoW会失败,他们从PoW可以被攻击的假设开始,然后用CCA的推理来说明攻击是可以承受的,并循环使用这种可承受性来说PoW可以被攻击。
一个正确的论证,即PoW可以被攻击,它需要首先证明(1)、(2)和(3),只有这样,才有可能使用CCA来证明攻击是廉价的。
PoW的安全性 #
如果一个攻击者的卡特尔开始审查某些种类的区块,用户可以安排一个硬分叉,将攻击者的一个区块列入黑名单,并建立一个不审查区块的低净值分叉。
即使不审查的一方拥有较低的hashhpower,但对于那些喜欢不审查的用户来说,它仍然更有价值。
因此,攻击者有两种方法来应对这些硬分叉。他们可以从硬分叉高度之前建立一个新的攻击,或者从硬分叉之后。
如果他们从之前恢复攻击 #
每次攻击者恢复攻击,他们必须重建一个更长的区块链来追赶防御者。攻击的成本增加了2^(防御者硬分叉的次数)。维持攻击的成本呈指数级增长,使其不可持续。
如果他们重新开始攻击,从后 #
在这种情况下,防御者设法得到一些非审查的区块。所以攻击只是减少了txs的数量,并没有成功审查。