跳至主要內容
高級

51% Attack

了解 51% 攻擊的原理、成本、歷史案例,以及比特幣的防護機制。

12 分鐘

51% 攻擊是指單一實體控制超過一半的網路算力,從而能夠操縱區塊鏈的攻擊。 雖然對比特幣而言成本極高,但這仍是 PoW 區塊鏈面臨的理論威脅。

攻擊原理

最長鏈規則:
- 比特幣節點遵循累積工作量最大的鏈
- 擁有 51% 算力意味著可以比其他人更快出塊
- 最終可以創建比誠實鏈更長的攻擊鏈

攻擊流程:
1. 攻擊者私下挖礦,不廣播區塊
2. 同時在公開鏈上進行交易
3. 等待交易確認後獲得商品/服務
4. 發布私有鏈,覆蓋原有交易
5. 實現雙重支付

時間線:
公開鏈: [A]-[B]-[C]-[D]-[E]     (包含攻擊者的付款)
私有鏈: [A]-[B']-[C']-[D']-[E']-[F']  (不包含付款)
                                ↑
                          攻擊者發布,成為主鏈

攻擊者能做什麼?

可以做到:

  • 雙重支付自己的交易
  • 阻止某些交易被確認
  • 阻止其他礦工獲得區塊獎勵
  • 撤銷已確認的交易(有限範圍)

無法做到:

  • 創建無效交易
  • 偷取他人的比特幣
  • 改變區塊獎勵數量
  • 無中生有創造比特幣
  • 改變共識規則

攻擊成本

比特幣 51% 攻擊成本估算 (2024):

硬體成本:
- 全網算力: ~600 EH/s
- 需要: 300+ EH/s
- ASIC 礦機: ~$3000/台 (100 TH/s)
- 所需礦機: ~300 萬台
- 硬體成本: ~$90 億美元

運營成本:
- 電力: ~100 MW 每 EH/s
- 總電力: ~30 GW
- 電費: ~$0.05/kWh
- 每小時成本: ~$150 萬

實際障礙:
1. 礦機供應有限
2. 電力基礎設施不足
3. 攻擊會導致比特幣價格崩潰
4. 攻擊者的礦機也會貶值

// 經濟激勵使攻擊不划算
// 有如此算力,誠實挖礦更有利可圖

確認數與安全性

雙重支付成功率 vs 確認數:

假設攻擊者算力 = 30%:
1 確認: 成功率 ~45%
2 確認: 成功率 ~25%
3 確認: 成功率 ~15%
6 確認: 成功率 ~2%
10 確認: 成功率 ~0.1%

假設攻擊者算力 = 10%:
1 確認: 成功率 ~20%
6 確認: 成功率 ~0.1%

// Satoshi 的原始計算
// 見白皮書第 11 節

推薦確認數:
小額交易: 1-2 確認
中額交易: 3-6 確認
大額交易: 6+ 確認
超大額交易: 60+ 確認 (交易所)

歷史案例

// 比特幣從未發生成功的 51% 攻擊
// 但其他 PoW 幣種有過案例

Ethereum Classic (ETC) - 2019:
- 多次 51% 攻擊
- 數百萬美元雙重支付
- 導致增加確認數要求

Bitcoin Gold (BTG) - 2018, 2020:
- 多次攻擊
- 交易所損失數百萬美元

Verge (XVG) - 2018:
- 利用時間戳漏洞
- 多次攻擊

共同點:
- 算力較低的幣種
- 可租用算力進行攻擊
- 主要針對交易所

算力租用攻擊

// 對小幣種的威脅

NiceHash 等算力市場:
- 可以按小時租用算力
- 不需要擁有硬體
- 降低攻擊門檻

攻擊經濟學:
成本 = 租用算力費用 × 攻擊時間
收益 = 雙重支付金額

如果 收益 > 成本,攻擊可能發生

比特幣的優勢:
- 全網算力太大
- 沒有足夠算力可租用
- 專用 ASIC 無法用於其他幣

風險較高的幣種:
- 算力低
- 使用通用算法 (GPU 可挖)
- 交易所確認數少

防護機制

比特幣現有防護

1. 難度調整
   - 每 2016 區塊調整
   - 使算力增長不能瞬間壓倒網路

2. 區塊獎勵
   - 誠實挖礦有穩定收入
   - 攻擊風險高且收益不確定

3. 網路監控
   - 異常區塊重組會被發現
   - 社區可以響應

4. 多確認要求
   - 高價值交易等待更多確認
   - 增加攻擊成本

5. 去中心化挖礦
   - 多個礦池分散算力
   - 沒有單一實體控制 51%

額外防護措施

// 一些幣種採用的額外措施

Checkpoints (檢查點):
- 硬編碼已知的區塊雜湊
- 防止深度重組
- 比特幣使用但較淺

延遲最終性:
- 要求更長的重組等待時間
- 給予社區響應時間

混合共識:
- PoW + PoS 結合
- 增加攻擊複雜度

算法抗 ASIC:
- 使專用硬體難以製造
- 但也降低了攻擊成本

// 比特幣的設計選擇是依賴經濟激勵

礦池中心化風險

// 礦池 vs 51% 攻擊

礦池算力分佈 (假設):
Foundry USA: 25%
AntPool: 20%
F2Pool: 15%
Binance: 10%
其他: 30%

風險分析:
- 單一礦池不超過 51%
- 但礦池運營商可以串謀
- 或被政府強制合作

實際情況:
- 礦池是協調者,不控制算力
- 礦工可以隨時切換礦池
- 礦池攻擊會失去礦工信任

歷史事件:
2014 年 GHash.io 接近 51%:
- 社區擔憂
- 礦工主動離開
- 礦池承諾不超過 40%

檢測與響應

// 識別可能的 51% 攻擊

監控指標:
1. 異常的區塊重組深度
   bitcoin-cli getchaintips
   # 查看分叉情況

2. 算力突然變化
   # 監控難度調整

3. 區塊時間異常
   # 區塊產生速度突然加快

4. 交易消失
   # 已確認交易從鏈上消失

響應措施:
1. 暫停交易確認
2. 增加確認數要求
3. 通知社區和交易所
4. 如果嚴重,考慮人工干預

// 人工干預是最後手段
// 可能需要社會共識來選擇鏈

國家級攻擊

// 理論上的國家級威脅

資源能力:
- 大國有足夠資金
- 可以徵用電力設施
- 可以沒收境內礦機

可能動機:
- 打擊比特幣採用
- 經濟戰爭
- 審查特定交易

實際障礙:
1. 全球分佈的算力
   - 沒有單一國家控制 51%
   - 中國禁礦後算力分散

2. 國際協調困難
   - 需要多國合作
   - 利益不一致

3. 攻擊效果有限
   - 無法摧毀網路
   - 只能暫時中斷
   - 社區會響應

4. 經濟代價
   - 持有比特幣的人損失
   - 可能包括本國公民

對用戶的建議

  • 等待確認:大額交易等待 6 個以上確認
  • 監控重組:注意區塊鏈瀏覽器的重組警告
  • 分散風險:不要在單一交易中轉移所有資金
  • 使用聲譽好的服務:選擇等待足夠確認的交易所
  • 關注網路狀態:了解當前的算力分佈

相關概念

  • Double Spend:雙重支付攻擊
  • Selfish Mining:自私挖礦策略
  • Consensus:共識機制
  • Mining:挖礦過程
  • Block Reorg:區塊重組
已複製連結
已複製到剪貼簿