針對區塊鏈網絡本身發起的攻擊,旨在破壞其安全性、一致性或可用性,通常利用區塊鏈的共識機制、網絡結構或協議漏洞。
區塊鏈領域最經典、最具破壞性的「鏈上攻擊」如下:
- 雙花攻擊(Double Spending)
- 51%攻擊(Majority Attack)
Double Spending Attack
惡意用戶試圖將同一筆加密貨幣花費兩次或多次。
攻擊方式:
- 攻擊者將加密貨幣發送給賣家購買商品。
- 同時,發起另一筆把這筆加密貨幣轉回自己錢包的交易。
- 如果賣家在交易「0確認」或確認次數很少的狀態下交付貨物,攻擊者可以透過以下方式讓「給自己的交易」被確認,而取消支付給賣家的交易。
- 雙花攻擊常見於:
- 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%攻擊的成本極高(估計數十億美元),至今未發生成功案例。
攻擊方式:
- 攻擊者掌握全網超過50%的算力。
- 攻擊者會從一個區塊高度開始,自己私下持續挖新區塊,不將這些區塊廣播出去,於是產生私鏈。
- 當攻擊者準備好後,將私鏈廣播至網路,由於私鏈長度較長,其他節點會認為這條鍊是「正統鏈」,自動接納。
- 這樣就能回滾之前已確認的交易記錄,達成雙花,或使交易記錄消失。
51%攻擊條件:
- 需要龐大算力或巨額資金(PoS情況下)。
- 隨著鏈規模越大,攻擊成本呈指數級上升。
- 小型鏈(山寨幣、小眾PoS鏈)最容易遭受51%攻擊。
雙花攻擊 vs 51%攻擊 對比
項目 | 雙花攻擊 | 51%攻擊 |
---|---|---|
本質 | 重複花費同一筆幣 | 控制鏈的出塊與確認權 |
需要掌控的資源 | 可藉由交易確認時差進行 | 必須擁有全網>50%算力/權益 |
攻擊難度 | 中 | 極高(特別是大型公鏈) |
可造成的影響 | 個別交易損失(較小規模) | 可全面回滾鏈上記錄、阻止交易上鏈 |
與雙花攻擊的關聯性 | 雙花攻擊可單獨進行 | 51%攻擊可以實現大規模雙花 |