目錄
- 筆記
- 后續的研究方向
- 摘要
- 引言
- 貢獻
- 攻擊的簡要概述
Uncle Maker: (Time)Stamping Out The Competition in Ethereum
CCS 2023
筆記
本文對以太坊 1 的共識機制進行了攻擊,該機制允許礦工獲得比誠實同行更高的挖礦獎勵。這種名為“Uncle Maker”的攻擊操縱區塊時間戳和難度調整算法,使礦工在區塊競賽中占據優勢。作者描述了攻擊的幾種變體,包括一種對礦工來說沒有風險的變體。他們分析了來自以太坊區塊鏈的數據,并提供了證據,證明一些礦工多年來一直在積極運行這種攻擊的變體而沒有被發現,這使其成為礦工操縱主要共識機制的第一個證據。作者還提出了具體的修復建議,并提供了一個實現,作為以太坊 1 最受歡迎的客戶端 geth 的補丁。
大意:
- 這種名為 Uncle Maker 的攻擊操縱了以太坊 1 共識機制中的區塊時間戳和難度調整算法。
- 與誠實的同行相比,該攻擊允許礦工獲得更高的采礦獎勵。
- 描述了攻擊的幾種變體,包括無風險的攻擊。
- 來自以太坊區塊鏈的數據提供了證據,表明一些礦工多年來一直在積極運行這種攻擊的變體,而沒有被發現。
- 建議對以太坊 1 最受歡迎的客戶端 geth 進行具體修復和補丁,以減輕攻擊。
后續的研究方向
-
對其他礦池的進一步分析:調查其他礦池是否也在執行類似的攻擊,或者不同礦池是否存在 Uncle Maker 攻擊的變體。
-
研究攻擊對整個網絡的影響:分析 Uncle Maker 攻擊對以太坊網絡的影響,例如其對交易確認時間、網絡擁塞和整體安全性的影響。
-
制定更強大的緩解策略:探索其他緩解技術來應對 Uncle Maker 攻擊和其他類似攻擊。這可能涉及對共識機制進行更改、改進分叉選擇規則或實施可靠的時間戳機制。
-
調查其他攻擊媒介:探索針對共識機制的其他潛在攻擊媒介,例如時間戳操縱,并分析它們對不同加密貨幣的影響。
-
評估建議的 geth 補丁的有效性:評估以更自然的方式實施攻擊的 geth 補丁的有效性。確定此實現是否降低了攻擊的可檢測性,以及它是否會產生任何意外后果。
-
探索時間戳操縱的影響:調查時間戳操縱在共識機制中的更廣泛影響,包括它們在其他類型的攻擊中的潛在用途以及它們對區塊鏈系統的安全性和可信度的影響。
-
研究礦工的經濟動機:分析礦工執行 Uncle Maker 攻擊背后的經濟動機以及它如何影響他們的盈利能力。考慮此類攻擊對采礦生態系統的長期影響。
-
檢查過渡到權益證明 (PoS) 的影響:評估過渡到 PoS 在緩解 Uncle Maker 攻擊和其他與工作量證明相關的攻擊方面的有效性。分析 PoS 共識機制對安全性和性能的影響。
-
研究時間戳操作在其他環境中的使用:探索時間戳操作在區塊鏈以外的其他領域的潛在用途,例如分布式系統、共識協議或其他加密應用程序。
-
開發檢測和預防機制:設計和實施工具和算法,以實時檢測和防止時間戳操縱和其他類似攻擊。這可能涉及使用機器學習、異常檢測或加密技術。
摘要
我們提出并分析了對以太坊1共識機制的攻擊,該機制允許礦工與誠實的同行相比獲得更高的挖礦獎勵。這種攻擊是新穎的,因為它依賴于操縱塊時間戳和難度調整算法(DAA),以便在發生塊競爭時給礦工帶來優勢。我們稱我們的攻擊為制造叔叔,因為它會導致更高的叔叔攔截率。我們描述了攻擊的幾種變體。其中一個對礦工來說是無風險的。
我們的攻擊不同于過去的攻擊,如自私的采礦[30],這些攻擊已被證明是有利可圖的,但從未在實踐中觀察到:我們分析了以太坊區塊鏈的數據,并表明以太坊的一些礦工多年來一直在積極運行這種攻擊的變體,但沒有被檢測到,這是礦工操縱主要共識機制的第一個證據。我們提供了我們的證據,以及對攻擊者以犧牲誠實礦工為代價獲得的利潤的估計。
由于幾個區塊鏈仍在運行以太坊1的協議,我們建議進行具體的修復,并將其作為geth的補丁來實現。
引言
比特幣[56]和以太坊[11]等加密貨幣依靠精心設計的激勵計劃來鼓勵挖礦,這在面對對手時保持了系統的完整性。因此,加密貨幣的激勵機制是其安全性所固有的。的確在比特幣之后出現的無數加密貨幣中,以及隨后的學術文獻中,提出并實施了對區塊鏈獎勵機制的許多更改。做出這些改變是為了確保礦工沒有動機利用系統牟利[43,49,58]。
2022年9月15日,以太坊過渡到一種新的權益證明(PoS)機制,而不是工作證明(PoW)。我們提出了對后一種機制的激勵驅動攻擊,也稱為以太坊1。當以太坊1仍然活躍時,該攻擊被披露給了以太坊基金會(EF)。我們注意到以太坊1仍被加密貨幣使用,如以太坊經典[14]、以太坊PoW[60]和以太坊博覽會[27]。這些顯然在礦工中很受歡迎:截至2023年3月1日,他們的綜合哈希率是整個以太坊1生態系統峰值哈希率的12.5%[55]。
在我們的攻擊中,礦工更改自己區塊的時間戳,以略微增加這些區塊的挖掘難度。雖然這種難度的增加似乎適得其反,但事實上,如果區塊鏈出現分叉,這些區塊更有可能被選中。由于以太坊1中的共識機制有利于難度較高的區塊鏈,因此以這種方式創建的區塊在與難度較低的區塊的區塊競賽中占主導地位。礦工可以利用這一事實創建區塊,以贏得競爭對手同時創建的尚未看到的區塊,或者更積極地替換競爭對手已經知道的區塊。
這種攻擊是新穎的,因為它依賴于時間戳操作和難度調整機制之間新的、未經探索的交互。它對礦工特別有吸引力,因為它總是比遵循協議設計者制定的“誠實”規則更有利可圖,這意味著我們的攻擊策略主導了誠實策略。
眾所周知,以太坊共識(以及其他區塊鏈機制)中存在激勵漏洞,但在實踐中尚未觀察到。以太坊中的大多數經濟操縱和攻擊都集中在以太坊的應用層,例如利用智能合約中的漏洞、提前運行和利用套利機會[72,78]。
目前已知的其他時間戳攻擊要么是高度理論化的,成功概率很低[5],要么是快速修復的有針對性的漏洞[74]。
通過對以太坊區塊鏈數據的檢查,我們提供了強有力的證據,證明我們討論的一種攻擊變體已經由礦工實施了大約兩年的時間。在我們的研究結果早期公布后,以太坊當時第二大礦池F2Pool的聯合創始人之一承認以這種方式操縱區塊時間戳(見第5節)。據我們所知,這是首次在實踐中觀察到礦工對共識協議的這種操縱。
貢獻
我們在PoW以太坊1上提出了一個攻擊向量,它依賴于時間戳操作,而不是傳統的操作,如阻止[30,62]。
我們描述了這種攻擊的幾種變體,包括一種風險較小的變體。與根據誠實協議進行采礦相比,這種變體保證至少能獲得相同的絕對和相對利潤,同時減少競爭對手的利潤。
通過調查以太坊區塊鏈,我們表明該攻擊是在野外執行的,從而首次提供了主要加密貨幣中存在共識篡改的證據。
為了證明攻擊向量的可行性,我們提供了一種攻擊變體的實現,作為以太坊1最受歡迎的客戶端Go Ethereum(geth)的補丁。
最后,我們提出了幾種緩解技術,包括針對geth的補丁,它可以防止一種形式的攻擊。
我們的貢獻摘要見表1。
攻擊的簡要概述
如果區塊開采過快,以太坊1的DAA會導致開采難度略有增加,如果區塊開采太慢,則會導致開采困難略有下降。這是通過基于與其父塊的時間戳的差異來改變當前正在挖掘的塊的難度來實現的。難度以9秒的離散倍數變化(見等式(1))。
由于節點之間的時鐘并不完全同步,時間戳本質上是“廉價的談話”。它們可以由礦工根據需要設置,但仍然需要單調增長,而且不能太遠。這允許區塊創建者稍微改變區塊的難度。這樣的小變化并不會使挖掘變得更加困難,但會影響在挖掘相同高度的兩個沖突塊的情況下,哪些塊節點選擇擴展。選擇難度較高的區塊作為主鏈,如圖1所示。
我們后來展示了F2Pool本質上是在操縱塊時間戳,而不是挖掘時間戳是其父塊之后9秒的倍數的塊。這種形式的操作不是最優的,可以從區塊鏈數據中發現,但每當F2Pool挖掘出沖突的區塊時,它就占據了上風。這反過來又為他們提供了更高的區塊獎勵,并允許他們從沖突的區塊中“搶奪”高費用交易。
在無風險制造者(RUM)攻擊中,我們利用以太坊DAA中的這個漏洞來主動替換另一個礦工已經挖掘并發布的區塊。只有當替換一個區塊就像在上面誠實挖掘一樣容易時,我們才會有選擇地進行攻擊。我們在第3節中對攻擊進行了詳細解釋。