2.1 核心攻擊原理
攻擊者將網路分割成(至少)兩個總挖礦算力大致平衡的子群組。透過選擇性地延遲這些子群組之間(而非群組內部)的訊息,攻擊者允許它們在各自獨立的鏈上挖礦。接著,攻擊者將其自身的挖礦算力集中在其中一個子群組(區塊子群組),同時在另一個子群組(交易子群組)發送其意圖撤銷的交易。
本文介紹並分析了平衡攻擊,這是一種針對工作量證明區塊鏈共識協議的新型安全攻擊手法,主要關注以太坊及其GHOST協議。與傳統需要壓倒性算力的51%攻擊不同,平衡攻擊利用節點子群組之間策略性的網路通訊延遲來創造暫時性的網路分割,從而能夠以顯著較低的挖礦算力實現雙重支付。本研究提供了理論機率模型,並使用模擬R3金融聯盟區塊鏈測試平台的設置進行了實驗驗證。
核心發現是,PoW區塊鏈,特別是那些使用類似GHOST的叔塊計入機制的區塊鏈,可能從根本上不適合聯盟鏈或私有鏈環境,因為在這些環境中,網路拓撲和延遲可能被操縱或具有可預測性。
該攻擊透過人為創造導致權重相近的競爭鏈的網路條件,來利用區塊鏈的分支解決策略。
攻擊者將網路分割成(至少)兩個總挖礦算力大致平衡的子群組。透過選擇性地延遲這些子群組之間(而非群組內部)的訊息,攻擊者允許它們在各自獨立的鏈上挖礦。接著,攻擊者將其自身的挖礦算力集中在其中一個子群組(區塊子群組),同時在另一個子群組(交易子群組)發送其意圖撤銷的交易。
本文建立了一個正式的機率模型,以確定攻擊成功的條件。
分析使用Chernoff界限將挖礦過程建模為泊松過程。關鍵變數是攻擊者必須維持的延遲時間($\Delta$)與攻擊者的挖礦算力比例($\alpha$)以及誠實網路的算力之間的關係。
推導出攻擊者在被隔離子群組中的分支變得比另一子群組的分支更重的機率。為了以高機率成功進行雙重支付,所需的延遲$\Delta$與攻擊者的挖礦算力成反比。該模型捕捉了權衡關係:攻擊者算力越低,所需的網路延遲時間越長。 攻擊者在時間$t$內,以算力$q$對抗誠實算力$p$所能獲得的預期領先優勢$L$的簡化表達式與泊松過程速率相關:$\lambda = \frac{p}{\tau}$,其中$\tau$是出塊時間。攻擊者的進展是一個由該過程建模的隨機變數。
理論模型在一個模擬R3聯盟的實際環境中進行了測試。
在一個模擬R3聯盟條件(約11家參與銀行)的分散式系統中部署了一個以太坊私有鏈。在節點子群組之間人為引入網路延遲以模擬攻擊。
攻擊持續時間: 單一機器能夠在約20分鐘內成功對模擬的R3聯盟執行平衡攻擊。
意涵: 這表明該攻擊不僅是理論上的,在聯盟鏈環境中,以適度的資源在實踐上也是可行的,因為與公共主網相比,聯盟鏈的總網路算力有限。
圖表描述(概念性): 一張折線圖將顯示雙重支付的成功機率(Y軸)隨著攻擊者控制的延遲時間(X軸)增加而急遽上升,即使對於攻擊者挖礦算力較低的值(以不同線條表示)也是如此。對於擁有20%算力的攻擊者,其曲線達到高機率的時間將遠快於擁有5%算力的攻擊者,但只要有足夠的延遲,兩者最終都會成功。
雖然兩者都容易受到網路層級的攻擊,但本文指出,以太坊的GHOST協議將叔塊納入權重計算,諷刺地可能創造了不同的攻擊面。平衡攻擊透過隔離創造平衡、競爭的子樹,專門操縱「最重子樹」規則。比特幣的最長鏈規則容易受到不同的延遲攻擊(例如自私挖礦),但平衡攻擊是圍繞GHOST的機制制定的。
本文最具破壞性的結論是,標準的PoW協議非常不適合聯盟區塊鏈。 聯盟鏈的參與者較少且已知,使得網路分割攻擊比在全球性的、充滿敵意的比特幣網路上更為可行。有限的總算力也降低了獲取有意義比例算力的成本。
核心洞見: Natoli和Gramoli揭露了區塊鏈安全中一個關鍵且常被忽視的公理:共識安全是密碼學證明和網路同步性的函數。 平衡攻擊並非破解SHA-256或Ethash;而是精準地破壞部分同步模型中的「網路」假設。這將威脅從計算層(算力)轉移到網路層(路由、ISP),這是許多聯盟鏈營運商尚未準備好防禦的前沿領域。它呼應了經典分散式系統(如FLP不可能性結果)的教訓,證明共識在非同步條件下是脆弱的。
邏輯流程: 論證的優雅之處在於其簡潔性。1) PoW安全性依賴於單一、增長最快的鏈。2) GHOST將其修改為「最重」鏈,納入叔塊以提高吞吐量。3) 透過創造具有平衡算力的隔離分割區,攻擊者迫使兩個權重相近的有效子樹產生。4) 重新連接時,GHOST的規則變成了攻擊媒介,而非防禦手段。它所利用的邏輯缺陷是,GHOST假設權重反映了誠實的工作量,但在分割的網路中,權重反映的是隔離的工作量,而這是可操縱的。
優點與缺陷: 本文的優點在於其在以太坊私有鏈上的實際演示,超越了理論範疇。使用Chernoff界限提供了數學上的嚴謹性。然而,該分析有一個學術安全論文中常見的缺陷:它假設了一個近乎完美、持續的網路分割。在具有多條物理和邏輯路徑的真實企業網路中,面對網路工程師的監控,維持如此乾淨的分割超過20分鐘並非易事。該攻擊還要求攻擊者識別並鎖定具有精確平衡算力的子群組,這在聯盟鏈中可能需要內部知識。
可行建議: 對於任何考慮採用基於PoW的聯盟鏈的企業,本文是一個必須注意的警訊。直接的結論是在聯盟鏈環境中放棄純粹的PoW。 替代方案如權威證明、實用拜占庭容錯或其衍生協議(如伊斯坦堡BFT)本質上更具抵抗力,因為它們的安全性源自身份和訊息傳遞,而非算力和網路運氣。對於像以太坊這樣的公共鏈,緩解措施在於強大、去中心化的網路基礎設施(如以太坊的Discv5)和快速的區塊傳播(如Graphene)。監控主要礦池之間異常延遲應成為標準的安全實踐。這項研究,連同早期關於日蝕攻擊和賄賂攻擊的研究,構成了一個證據體系,表明第一層共識的設計必須明確考慮敵對網路模型。
誠實節點和攻擊者的挖礦過程被建模為獨立的泊松過程,速率分別為$\lambda_h$和$\lambda_a$,其中$\lambda = \text{算力} / \text{出塊時間}$。令$Q(t)$和$H(t)$分別為攻擊者和誠實網路在時間$t$內挖出的區塊數量。它們的期望值為$\mathbb{E}[Q(t)] = \lambda_a t$和$\mathbb{E}[H(t)] = \lambda_h t$。
攻擊者在延遲期間$\Delta$內的目標是在一個分割區中建立領先優勢$z$。攻擊者在分割區B中的鏈至少領先誠實分割區A中的鏈$k$個區塊的機率,可以使用泊松分布的尾部分佈不等式來界定。當網路合併時,攻擊成功的條件涉及比較兩條競爭鏈的總權重(包括叔塊)。本文推導出一個連結$\Delta$、$\alpha$(攻擊者佔總算力的比例)和期望成功機率的條件。
情境: 一個用於貿易融資的聯盟區塊鏈,有10家銀行,每家銀行運行一個算力相等的挖礦節點。
攻擊框架應用:
這個非程式碼範例使用一個現實的商業情境說明了攻擊的步驟。