跳至主要內容
高級

Selfish Mining

了解自私挖礦攻擊策略,其對網路的影響,以及比特幣的防護機制。

12 分鐘

自私挖礦(Selfish Mining)是一種攻擊策略,攻擊者通過策略性地延遲區塊廣播 來獲得超過其算力佔比的區塊獎勵。這種攻擊在 2013 年由 Eyal 和 Sirer 首次描述。

攻擊原理

誠實挖礦策略:
1. 挖到區塊立即廣播
2. 收到新區塊立即切換到新鏈

自私挖礦策略:
1. 挖到區塊暫時保留(私有鏈)
2. 繼續在私有鏈上挖礦
3. 策略性地釋放區塊以浪費誠實礦工的算力

目標: 使誠實礦工在即將被廢棄的區塊上浪費算力

攻擊流程

狀態 0: 私有鏈 = 公開鏈
  攻擊者挖到區塊 → 進入狀態 1(領先 1 個區塊)

狀態 1: 私有鏈領先 1 個區塊
  情況 A: 誠實礦工挖到區塊
    → 攻擊者立即釋放私有區塊
    → 競爭傳播(gamma 決定誰贏)
    → 回到狀態 0

  情況 B: 攻擊者再挖到區塊
    → 進入狀態 2(領先 2 個區塊)

狀態 2: 私有鏈領先 2 個區塊
  誠實礦工挖到區塊時:
    → 攻擊者釋放全部私有鏈
    → 誠實礦工的區塊被孤立
    → 回到狀態 0(攻擊者獲得 2 個區塊獎勵)

狀態 n (n >= 2): 私有鏈領先 n 個區塊
  維持優勢,逐步釋放

關鍵參數

參數 含義
α (alpha) 攻擊者算力佔比
γ (gamma) 競爭時攻擊者區塊被接受的概率
1 - α 誠實礦工算力佔比

收益分析

// 自私挖礦收益公式(簡化)
攻擊者收益 = f(α, γ)

// 當 γ = 0(攻擊者網路劣勢)
// 攻擊者需要 α > 1/3 才能獲利

// 當 γ = 1(攻擊者網路優勢)
// 攻擊者只需要 α > 0 就能獲利(理論上)

// 當 γ = 0.5(中立網路)
// 攻擊者需要 α > 1/4 才能獲利

實際閾值(考慮網路延遲):
α_threshold ≈ (1 - γ) / (3 - 2γ)

γ = 0:   α_threshold = 1/3 ≈ 33.3%
γ = 0.5: α_threshold = 1/4 = 25%
γ = 1:   α_threshold = 0

為什麼現實中很少見?

  • 高算力門檻:需要至少 25-33% 算力
  • 機會成本:失敗時損失大量電力成本
  • 可檢測:異常的孤塊率會引起注意
  • 協議改進:更好的區塊傳播減少 γ 優勢
  • 聲譽風險:大礦池攻擊會損害比特幣價值

防護機制

1. 快速區塊傳播

// Compact Blocks (BIP-152)
減少區塊傳播時間:
- 傳統區塊: 數秒
- Compact Blocks: 毫秒級

效果: 降低 γ 值,使網路更「公平」

// FIBRE (Fast Internet Bitcoin Relay Engine)
專用中繼網路,進一步減少延遲

2. 分叉選擇規則

// 當前規則: 最長鏈(最多累積 PoW)
// 這使得自私挖礦仍然可能

// 提議的改進:

// Freshness Preferred
優先選擇「更新」的區塊(先收到的)
缺點: 增加網路分裂風險

// Unforgeable Timestamps
使用 VDF 等證明區塊創建時間
缺點: 複雜性高

// 目前: 沒有完美解決方案

變體攻擊

Stubborn Mining

// 更激進的自私挖礦變體

Lead Stubborn:
- 即使落後也不放棄私有鏈
- 希望能追上並超過公開鏈

Equal Fork Stubborn:
- 在競爭狀態時繼續挖私有鏈
- 而不是立即切換

Trail Stubborn:
- 落後時也繼續嘗試
- 高風險高回報

FAW Attack (Fork After Withholding)

// 結合礦池的攻擊

攻擊者加入誠實礦池:
1. 提交部分工作量證明給礦池
2. 找到完整區塊時保留
3. 等待其他礦工找到區塊
4. 發布自己的區塊造成分叉

效果:
- 從礦池獲得獎勵(基於提交的 shares)
- 同時破壞礦池的區塊

檢測指標

// 可能表明自私挖礦的跡象

1. 孤塊率異常
正常: ~0.1%
異常: > 1%

2. 區塊時間戳分布異常
正常: 大致符合泊松分布
異常: 集中或異常間隔

3. 區塊傳播模式
正常: 均勻來源
異常: 大量區塊來自同一來源

// 監控命令
bitcoin-cli getchaintips
# 查看分叉情況

對去中心化的影響

自私挖礦的存在意味著:

1. 大礦池有額外優勢
   - 網路位置優勢 (高 γ)
   - 更容易達到閾值算力

2. 可能導致算力集中
   - 小礦工加入大礦池更有利
   - 獨立挖礦相對不利

3. 博弈論影響
   - 如果大家都自私挖礦,網路效率下降
   - 納什均衡可能不是「全部誠實」

研究論文

已複製連結
已複製到剪貼簿