目錄
1. 緒論
比特幣的安全模型核心在於防止雙重支付——即惡意地將同一枚數位貨幣花費兩次。本文基於攻擊者的算力,對雙重支付攻擊進行了量化的隨機過程分析。它釐清並擴展了中本聰原始白皮書中提出的基礎統計模型,從定性理解邁向精確的機率框架。
2. 區塊鏈與分支選擇
比特幣區塊鏈是一個由區塊組成的樹狀結構,每個區塊都引用其前一個區塊。網路共識選擇最長鏈(或累積工作量證明最多的鏈)作為有效的歷史記錄。暫時的分歧(分叉)會在一個新區塊延伸其中一條分支,使其變得更長時得到解決。這個機制正是雙重支付攻擊的戰場,攻擊者在此秘密構建一條替代鏈。
3. 追趕過程
本節模擬了核心攻擊情境:一個擁有全網算力比例q的攻擊者,在落後誠實鏈(算力為p = 1 - q)z個區塊後,試圖追上並超越。此過程被建模為一個二項隨機漫步。攻擊者從落後z個區塊的劣勢下最終追上的機率推導如下:
$P = \begin{cases} 1 & \text{if } q \ge p \\ (q/p)^z & \text{if } q < p \end{cases}$
這個優雅的結果顯示,對於算力低於50%(q < 0.5)的攻擊者,其成功機率會隨著確認數z的增加而呈指數級下降。
4. 等待交易確認
分析轉向商家的視角:在認為一筆交易安全之前,應該等待多少個確認(n)?本文計算了在商家看到n個確認後,攻擊者仍可能成功的機率。這涉及計算攻擊者在誠實網路找到n個區塊之前,找到n+1個區塊的機率,並考慮了持續進行的競賽。得出的機率為建議的確認深度提供了基礎。
5. 圖表與分析
本文提供了圖形分析,繪製了針對不同攻擊者算力(q),雙重支付成功機率相對於商家確認數(n)的變化圖。視覺化的關鍵洞見包括:
- 對於
q=0.1(10%算力),僅需5個確認後,成功機率便低於0.1%。 - 對於
q=0.3,則需要約24個確認才能達到相同的安全等級。 - 當
q接近0.5時,所需的確認數急遽上升,說明了「51%攻擊」的門檻。
這些圖表對於風險評估和制定實際的確認政策至關重要。
6. 雙重支付的經濟學
本文引入了一個經濟模型,將攻擊框架為一個賭注可變的賭徒破產問題。攻擊者的潛在回報是其試圖雙重支付的交易價值。分析考慮了攻擊對攻擊者的期望值,結論是除非被盜資產的價值相對於區塊獎勵極高,否則一個理性的、算力q < 0.5的攻擊者會發現誠實挖礦比嘗試雙重支付更有利可圖。這與賽局理論的安全原則相符。
7. 結論
本分析為理解雙重支付風險提供了嚴謹的數學基礎。它證實了只要收款方等待足夠數量的確認,比特幣協議對於算力低於全網50%的攻擊者的雙重支付行為具有高度韌性。這項工作量化了確認時間與風險承受度之間的安全權衡。
8. 核心洞見與分析師觀點
核心洞見: Rosenfeld的工作不僅是數學;它是比特幣結算層第一個嚴謹的風險定價模型。他將中本聰直觀的「最長鏈規則」轉化為可量化的安全SLA(服務等級協議),其中確認深度n是為獲得特定最終性機率1-P所支付的「保費」。這是所有現代加密貨幣交易所安全政策的基石。
邏輯脈絡: 其天才之處在於將攻擊框架為一個二項隨機漫步——一個經典的隨機過程。透過將區塊發現建模為泊松過程,Rosenfeld將混亂、並行的挖礦競賽簡化為一個可解的一維賭徒破產問題。從第3節(追趕機率)到第4節(商家等待時間)的飛躍至關重要;它連接了攻擊者的能力與防禦者的政策。
優勢與缺陷:
優勢: 模型的簡潔性是其優勢。封閉解 $P = (q/p)^z$ 強大且易於解釋。第6節的經濟分析具有前瞻性,預示了當今在ACM金融科技進展會議 (AFT)等場合所見的嚴謹區塊鏈賽局理論研究。
關鍵缺陷: 該模型假設了一個擁有固定q的靜態對手。它未能考慮策略性、波動的算力——例如攻擊者在短期、有針對性的爆發中租用大量雲端挖礦能力(一種「Goldfinger攻擊」),這是後來如Eyal和Sirer的「礦池」論文中所強調的威脅。它也忽略了網路延遲和自私挖礦策略,這些都可能有效提高攻擊者的有效q值。
可行建議:
1. 對於交易所: 不要使用一刀切的確認數。動態地使用Rosenfeld的公式。對於100美元的存款,3個確認可能就足夠。對於1000萬美元的提款,你需要數十個確認,或者更好的是,轉移到具有最終性小工具增強功能的鏈上。
2. 對於協議設計者: 本文是支持權益證明 (PoS)的經典論據。工作量證明中的指數級安全成本((q/p)^z)在經濟上是殘酷的。如以太坊Casper(其研究規格中所述)等PoS系統,旨在以可加密懲罰的最終性取代這種機率性最終性,從根本上改變了攻擊的計算方式。
3. 對於商家: 真正的啟示是,對於小額、即時支付(如咖啡),等待任何確認都是不切實際的。這個經濟現實直接推動了鏈下支付通道(閃電網路)的發展,它透過將交易移出基礎層,完全繞過了Rosenfeld所描述的問題。
9. 技術細節與數學框架
核心模型將區塊發現視為獨立試驗。令p為誠實鏈找到下一個區塊的機率,攻擊者則為q = 1-p。系統狀態是攻擊者的落後區塊數z。攻擊者從落後z個區塊的狀態最終達到持平的機率p_z,滿足從賭徒破產問題推導出的遞迴關係:
$p_z = q \cdot p_{z-1} + p \cdot p_{z+1}$
邊界條件為p_0 = 1(持平即成功)和p_\infty = 0。解此式可得封閉解 $p_z = (q/p)^z$(當q < p時)。
對於商家等待n個確認的情境,攻擊者成功的機率是他從落後n個區塊開始,能夠構建出一條比誠實鏈更長的鏈的機率。這需要對商家廣播交易時所有可能的領先情境進行求和計算。
10. 分析框架:範例情境
情境: 一家加密貨幣交易所收到一筆大額存款。它必須決定在將款項記入用戶帳戶前,需要多少個確認。
- 定義參數:
- 攻擊者估計算力份額:
q = 0.2(20%)。這可基於公開的礦池數據。 - 風險價值(存款金額): V = $500,000。
- 交易所的風險承受度: 可接受的雙重支付機率:$\epsilon = 0.001$ (0.1%)。
- 攻擊者估計算力份額:
- 應用Rosenfeld模型: 我們需要找到最小的
n,使得攻擊機率 $P(n, q) \le \epsilon$。使用公式 $P \approx \sum_{k=0}^{\infty} \frac{\lambda^k e^{-\lambda}}{k!} \cdot (q/p)^{n+1-k}$(其中 $\lambda = n(q/p)$,且 $k \le n+1$),或查閱預先計算的圖表/表格。 - 計算/結果: 對於
q=0.2和\epsilon=0.001,所需的確認數n約為9。 - 政策決定: 交易所將此資產的確認要求設定為9個區塊。對於10分鐘的區塊時間,這意味著存款有90分鐘的持有期,在安全性和用戶體驗之間取得平衡。
11. 未來應用與研究方向
- 動態確認政策: 整合即時算力數據和記憶體池價值,以動態調整
n,創建一個「風險敏感」的確認引擎。 - 跨鏈安全: 應用該模型評估區塊鏈橋接器和跨鏈交易的安全性,其中面臨風險的經濟價值可能橫跨多個具有不同
q值的鏈。 - 後量子考量: 研究量子計算的出現如何影響執行51%攻擊的成本(透過破解挖礦演算法),並重新校準安全模型中的
q參數。 - 與MEV(最大可提取價值)整合: 現代的雙重支付攻擊通常是更複雜的MEV策略的一部分。未來的模型必須考慮攻擊者除了雙重支付金額外,還能從重新排序或審查區塊中提取的額外利潤。
12. 參考文獻
- Nakamoto, S. (2008). Bitcoin: A Peer-to-Peer Electronic Cash System.
- Rosenfeld, M. (2014). Analysis of Hashrate-Based Double-Spending. arXiv:1402.2009.
- Eyal, I., & Sirer, E. G. (2014). Majority is not Enough: Bitcoin Mining is Vulnerable. International Conference on Financial Cryptography and Data Security.
- Buterin, V., & Griffith, V. (2017). Casper the Friendly Finality Gadget. arXiv:1710.09437.
- Gervais, A., Karame, G. O., Wüst, K., Glykantzis, V., Ritzdorf, H., & Capkun, S. (2016). On the Security and Performance of Proof of Work Blockchains. ACM SIGSAC Conference on Computer and Communications Security.