鏈上攻擊

針對區塊鏈網絡本身發起的攻擊,旨在破壞其安全性、一致性或可用性,通常利用區塊鏈的共識機制、網絡結構或協議漏洞。

區塊鏈領域最經典、最具破壞性的「鏈上攻擊」如下:

  • 雙花攻擊(Double Spending)
  • 51%攻擊(Majority Attack)


Double Spending Attack

惡意用戶試圖將同一筆加密貨幣花費兩次或多次。

攻擊方式:

  1. 攻擊者將加密貨幣發送給賣家購買商品。
  2. 同時,發起另一筆把這筆加密貨幣轉回自己錢包的交易。
  3. 如果賣家在交易「0確認」或確認次數很少的狀態下交付貨物,攻擊者可以透過以下方式讓「給自己的交易」被確認,而取消支付給賣家的交易。
  4. 雙花攻擊常見於:
    • Race Attack:兩筆交易幾乎同時廣播,拚傳播速度,只在0確認有效,在menpool時下手
    • Finney Attack:預挖區塊雙花,確認次數越少成功率越高
    • 透過51%攻擊來掌握鏈控制權,即可重組鏈雙花。

雙花攻擊條件:

  • 在交易「0確認」或確認次數很少的狀態
  • 網路傳播速度越慢,每個節點狀態會暫時不一致,攻擊成功率越高
  • 通常需要礦工行為預測。例如,礦工通常優先選擇手續費高的交易,所以可以提供高手續費增加衝突交易(給自己)被打包的機率

確認次數很少的情境

這與效率、商業場景、成本/風險考量有關:

交易確認需要等待10分鐘以上

  • 平均每10分鐘才會產生一個比特幣區塊。
  • 若賣家要求等到1次區塊確認後才交貨,顧客可能需要在店裡等10分鐘~1小時(若多次確認)。
  • 對於日常生活中的小額支付(如買咖啡),這樣的體驗是不可接受的。

絕大多數交易不會雙花

  • 雙花攻擊需要技術與資源,攻擊者付出的代價遠超過小額交易的收益。
  • 所以對於小額交易,商戶會「賭」對方不是攻擊者,快速完成交易體驗。
對象行為模式
小額商家(咖啡店、販賣機)願意冒小風險,讓交易快速完成。
大型交易平台、交易所不接受0確認,會要求1~6次確認。
高價值交易(房地產、汽車)一定會等到多次確認才完成交割。

Majority Attack

當某一方控制超過50%的網路算力(PoW)或權益(PoS)時,可主導區塊鏈記錄。

核心原理:

區塊鏈的共識機制(如PoW的「最長鏈規則」或PoS的權益選擇)依賴多數節點的誠實行為。如果攻擊者控制多數資源,就能主導共識,破壞網絡的誠信性。

目標

  • 雙花:將同一筆數字資產(如比特幣)花費多次,欺騙收款方。
  • 阻止交易:拒絕確認某些交易,實施「交易審查」。
  • 篡改歷史:替換主鏈實現歷史重寫。

例子

  • 2018年,比特幣金(Bitcoin Gold,一個比特幣分叉幣)遭受51%攻擊。攻擊者控制多數算力,重寫區塊鏈,執行雙花,竊取約1800萬美元的代幣。
  • 比特幣主網因算力規模極大(全網算力約600 EH/s,2025年估計更高),執行51%攻擊的成本極高(估計數十億美元),至今未發生成功案例。

攻擊方式:

  1. 攻擊者掌握全網超過50%的算力。
  2. 攻擊者會從一個區塊高度開始,自己私下持續挖新區塊,不將這些區塊廣播出去,於是產生私鏈。
  3. 當攻擊者準備好後,將私鏈廣播至網路,由於私鏈長度較長,其他節點會認為這條鍊是「正統鏈」,自動接納。
  4. 這樣就能回滾之前已確認的交易記錄,達成雙花,或使交易記錄消失。

51%攻擊條件:

  • 需要龐大算力或巨額資金(PoS情況下)。
  • 隨著鏈規模越大,攻擊成本呈指數級上升。
  • 小型鏈(山寨幣、小眾PoS鏈)最容易遭受51%攻擊。

雙花攻擊 vs 51%攻擊 對比

項目雙花攻擊51%攻擊
本質重複花費同一筆幣控制鏈的出塊與確認權
需要掌控的資源可藉由交易確認時差進行必須擁有全網>50%算力/權益
攻擊難度極高(特別是大型公鏈)
可造成的影響個別交易損失(較小規模)可全面回滾鏈上記錄、阻止交易上鏈
與雙花攻擊的關聯性雙花攻擊可單獨進行51%攻擊可以實現大規模雙花