上一篇关于比特币的文章从分布式系统的角度讨论,其中谈到了比特币系统的 安全性 (safety)依赖于好的节点要掌握 > 50% 的 POW 算力。这里我们谈谈 51% 攻击。
51% 攻击的定义是 一个攻击者(或者协同的一群)在一段时间内掌握了比特币网络中超过 50% 的 POW 算力,从而能够比网络中好的节点更快地扩展他自己的区块链。根据 bitcoin Wiki 的说法,在 “这一段时间” 攻击者可以做的:
在区块链中去掉或是修改已经确认的以攻击者自己为支付方的交易记录。
阻止某些或是所有当前交易被确认。
阻止某些或是所有 "采矿节点” 生成新的 交易块(block)并附加到区块链。
但是需要指出的是:攻击者不能做到
去掉或是修改已经确认的他人为支付方的交易记录。
使用自己账户没有的比特币来支付。
也就是说,攻击者的获利是有限的 --- 他可以在收取到购买的商品/服务后,抹掉自己账号的支付记录。但并不能凭空造出新的比特币。他可以对系统 DOS 攻击 -- 阻止正常交易确认和其它节点采矿(生成 blocks)。但是攻击者的成本很高,需要短期掌握大量的 Hash 运算能力。
为什么 51% 攻击定义要强调是短期。因为,长期掌握大量运算能力的参与者在商业利益上和整个 Bitcoin 系统是一致的。任何攻击都会导致 比特币的价格暴跌,从而极大地影响到采矿的收益。
上图是 Verge 币 遭受攻击后价格暴跌 16%。
51% 攻击对于大的 基于PoW 的 区块链系统,如 比特币 和 以太币,是不现实的。因为需要太多的计算资源,而且理论上获益相对投入太低。但是对于小的系统 (参与的计算资源少),理论上投入可能很低。下面是有人理论上估算的某些 很小的 PoW 区块链 持续1小时 51% 攻击的获利和投入:
相对于51%攻击,可能寻找 各种区块链 系统代码实现中的漏洞来攻击 (比如最近 Verge 受到的攻击是基于它的底层网络协议的漏洞),会有更好的投入产出比。51% 攻击不但需要大量资源,而且动用大量资源本身会留下很多迹象线索给执法机构追踪。所以可能只能算是 鲁棒型的攻击 (brutal force)。
尽管骇客获利有限,但是51%攻击对整个系统造成的影响不可逆转,往往需要人工干预对区块链分叉来修复。
那么是什么原因使得 51% 攻击 **只能** 修改攻击者自己账户的支付记录和阻止其它交易确认,同时又需要很大的算力。我在下一篇文章 “区块链:密码技术” 中会解释。
领取专属 10元无门槛券
私享最新 技术干货