跳转到正文
buybitcoinsmart

术语表 /隐私与安全

51%攻击

又称51%攻击、多数攻击。

51%攻击是什么?
51%攻击是指通过控制比特币网络的大部分挖矿算力,试图改写比特币近期的历史记录,使攻击者能够撤销自己近期发出的付款。

挖矿是一场竞赛,运行硬件最多的一方赢得的次数也最多。掌握超过一半算力的群体可以构建一条更长的私有链并将其发布,从而抹去其他人已视为最终确认的区块。它无法伪造您的签名,因此已存放在您所控制钱包中的币不会被这种攻击夺走。

运作方式

比特币节点遵循累计工作量证明最多的链,而不是碰巧最先看到的链。攻击者利用这一规则进行秘密挖矿。从某个近期区块起,攻击者在不公开的情况下构建自己的分支,而网络其余部分继续延长公开分支。如果秘密分支最终变得更长,将其发布会使所有节点切换到该分支,输掉竞赛的区块连同仅存在于这些区块中的付款一并被丢弃。

白皮书精确衡量了这有多困难。第11节计算了将追赶成功的概率压低到0.1%以下所需的确认数:面对掌握10%算力的攻击者需要5个区块,25%时需要15个区块,30%时需要24个区块,45%时需要340个区块。这条曲线先是陡峭上升,随后断裂。超过50%之后,最终追上的概率为1,再多的确认数也无法解决。这种在一半算力处出现的断点,正是这一名称的由来。

掌握多数算力并不等于拥有最高权限。矿工若挖出无效区块,例如在区块补贴为3.125时给自己支付10个币,或花费自己没有密钥的输出,该区块会被所有全节点拒绝,包括在一台笔记本电脑上运行的低成本节点。攻击者的能力狭窄而具体:将交易排除在区块之外、使诚实矿工找到的区块成为孤块,以及撤销自己在最近几个区块内发出的付款。它无法在发行计划之外铸造币,无法取消2,100万的上限,也无法从自己无法签名的地址转移资金。

这种攻击也是租来的,而不是自己建起来的。难度每2,016个区块才重新计算一次,因此攻击者无需持续两周。对于算法在挖矿市场上有闲置算力的链,租用几个小时的算力就足够了,这也是受害者全都是小型链而不是比特币的原因。

购买比特币时为何重要

比特币主链上从未发生过成功的多数算力攻击。最接近的一次发生在2014年7月,矿池 GHash.io 的算力一度超过全网的一半,并在公众压力下公开承诺不会超过39.99%;该矿池于2016年10月关闭。算力集中仍是现实的隐忧。Foundry USA 和 AntPool 这两个矿池合计产出大约一半的区块,不过它们所指挥的算力归数千名独立矿工所有,这些矿工可以在几分钟内将矿机重新指向其他矿池。

对买家而言,实际风险敞口很窄。存放在您自己钱包中的币不会因区块重组而消失,因为重组无法改变谁持有密钥。处于风险范围内的是流转中的价值:交易所已记账但仍在确认中的充币,以及与比特币在同一平台上市的任何小型工作量证明山寨币。在本站评测的24家交易所中,造成客户资金损失的,都是因托管失误和欺诈,而不是链上重组。在这种资产的整个历史上,这一比例始终如此。

确认等待是这种防御机制的可见成本。当交易所要求您等待数个区块后充币才能交易时,它是在为自己争取白皮书所描述的安全余量。如果您在不同平台之间转移币,请预留这段延迟,不要把它当作故障。

两次遭受攻击的 Bitcoin Gold

Bitcoin Gold 是最清晰的实例,因为它是2017年对比特币代码的分叉,继承了除算力以外的一切。2018年5月,一名攻击者将 BTG 存入交易所,兑换成其他资产后提走,然后重组区块链,使这些存款从未发生。据报道,双花金额约为1,800万美元。Bittrex 是受损的交易所之一,在该项目拒绝承担损失后,于2018年9月下架了 BTG。

2020年1月23日,这种情况再次发生,两次深度重组回滚了约1,900和5,267个 BTG,攻击使用的是在公开市场上租用的算力。这一教训具有普遍性:攻击一条链的成本取决于其算力,而不是其市值或品牌。一种币可能价值数亿美元,却仍可能只需租用几个小时的矿机就被重组。

51%攻击 vs 双花

51%攻击是一种手段,双花通常是其目的。比特币历史上几乎所有真实的双花尝试都没有涉及挖矿,只是在内存池中替换了一笔未确认交易,攻击者只需付出更高的手续费。要撤销一笔已被埋入区块的付款,则需要掌握多数算力,那完全是另一种量级的预算。

51%攻击 vs 自私挖矿

自私挖矿是一种盈利策略,而不是改写历史。Eyal 和 Sirer 在2013年证明,矿工若扣留已找到的区块并策略性地择机释放,便可以在远低于一半算力的情况下获得超过其应得份额的奖励,在某些网络条件下,算力约占三分之一即可。自私矿工仍然遵守共识规则,也从不撤销已确认的付款;它窃取的是其他矿工的收益,而不是用户的币。

请勿混淆

常见问题

比特币是否曾遭受过51%攻击?

比特币主链从未遭受过成功的多数攻击。最接近的一次发生在2014年7月,当时 GHash.io 矿池的算力超过全网算力的一半,随后该矿池公开将自身算力上限设为39.99%。规模较小的工作量证明区块链,包括 Bitcoin Gold,曾多次遭到攻击。

掌握51%算力的攻击者能否拿走我钱包里的比特币?

不能。转移比特币需要控制这些币的私钥,而挖矿算力无法生成签名。任何没有有效签名却花费比特币的区块,都会被每一个全节点拒绝,无论由谁挖出。

多少次确认才能防范区块链重组?

通常默认为6次确认,在正常情况下已绰绰有余。白皮书自带的表格要求,面对掌握四分之一算力的攻击者,需要15次确认;而一旦算力超过一半,无论多少次确认都不足以保证安全。

接着阅读

相关术语

隐私与安全中的更多术语

阅读本页英文版