本章節主要介紹以太坊合并使用 PoS 共識機制以后,可能面臨的共識層面的攻擊。
*以下僅為安全技術研究,不構成投資建議,本文部分內容翻譯自 jmcook.eth 發表在 mirror上的文章,詳細內容可自行查閱。
今天是“以太坊大合并”系列的最后一篇,在前兩篇,我們介紹了以太坊為什么會升級,以及以太坊會面臨哪些監管問題和應用層問題。
本章節主要介紹以太坊合并使用 PoS 共識機制以后,可能面臨的共識層面的攻擊。
短程重組(Short range re-orgs)
這是一種針對信標鏈的攻擊,該攻擊通常由攻擊者向其他驗證者隱藏部分信息,然后在某個特定時刻發布,從而實現雙花或通過 front-running 大額交易來提取MEV。這種攻擊還可以擴展到多個區塊,但成功的可能性會隨著重組長度的增加而降低。
這種攻擊本質上是一種區塊重組,區塊重組分為事前重組(ex ante reorg)和事后重組(ex post reorg)兩種。其中,事前重組指的是在區塊尚未被創建時,攻擊者從主鏈中將其替換;事后重組則指的是攻擊者刪除主鏈中已經驗證的區塊。在PoS以太坊中,如果要進行事后重組必須擁有其超過2/3 的權益。同時有研究表明,即使攻擊者擁有了以太坊65%的權益,攻擊成功的機率也小于0.05%。
短程重組攻擊是通過事前重組實現的,攻擊者不需要控制以太坊中大多數質押的 ETH 就可以實現,且成功的機會會隨著控制質押比例的增加而增加。
彈跳攻擊和平衡攻擊(Bouncing and Balancing)
平衡攻擊(Bouncing and Balancing)攻擊指的是攻擊者采取特定手段,將誠實的驗證者集合拆分為對區塊持不同意見的離散小組。
具體地說,攻擊者等待機會提出一個區塊,當它到達時,他們會在同一個 slot 中提出兩個區塊。他們將一個區塊發送給誠實驗證者集的一半,將另一個區塊發送給另一半。分叉選擇算法將檢測到這種沖突的情況,并且區塊提議者會被罰沒并從網絡中彈出。但上述兩個區塊仍然存在,并且將有大約一半的驗證者集證明其中的每一個分叉。
在花費單個驗證者罰沒成本的情況下,攻擊者成功地將區塊鏈一分為二。與此同時,其余的惡意驗證者扣留了他們的證明。然后,在執行分叉選擇算法時有選擇地將有利于一個或另一個分叉的證明發布給足夠的驗證者,這使得他們能夠生成任何一個具有最多累積證明的分叉。這可以無限期地繼續下去,攻擊者在兩個分叉上保持驗證者的平均分配。由于兩個分叉都無法吸引 2/3 的絕對多數,所以信標鏈無法最終達成共識并出塊。
榮寶齋國畫NFT通過IRISnet從BSN文昌鏈轉移到以太坊區塊鏈:12月1日消息,文化工作室榮寶齋以中國國畫為特色的NFT已成功從區塊鏈服務網絡(BSN)文昌鏈轉移到以太坊區塊鏈上的OpenSea市場。根據IRISnet在Cosmos上發布的博客文章,這筆交易于11月16日在四個區塊鏈之間進行:文昌鏈和IRITA Hub(均在BSN獲得許可),以及公鏈IRIS Hub(IRISnet)和以太坊。IRISnet博客文章稱,跨鏈轉移說明了如何利用鏈間技術支持涉及不同司法管轄區要求的全球商務。(Forkast)[2021/12/1 12:43:53]
這種攻擊方式中,攻擊驗證者控制的質押權益比例越大,在任何給定 epoch 時間段進行攻擊的可能性就越大,因為他們越有可能選擇驗證者在每個 slot 中提議一個區塊。即使只控制 1% 的質押權益,發動平衡攻擊的機會平均每 100 個 epoch 時期就會出現一次,這并不需要等待太久。
一種名為彈跳攻擊(bouncing attack)的類似攻擊方式,也只需要控制一小部分質押權益。在這種情況下,攻擊者的驗證者將拒絕投票。該方式中,攻擊者沒有發布投票來保持兩個分叉之間的平均分配,而是在適當的時候使用他們的投票來證明在分叉 A 和分叉 B 之間交替的檢查點的合理性。兩個分叉之間的這種翻轉,可停止最終確定性。
雪崩攻擊(avalanche attacks)
2022 年 3 月的一篇論文?描述了另一種稱為雪崩攻擊(avalanche attacks)?的攻擊類型。這篇論文的作者認為,提議者權重提升(proposer-weight boosting)方案無法防止雪崩攻擊的某些變體。然而,論文作者也只展示了對以太坊分叉選擇算法的高度理想化版本的攻擊(他們使用了沒有 LMD 的 GHOST)。其中,GHOST分叉選擇算法會將第一個分叉區塊和其對應的所有子孫區塊所得票數累加,并選擇其中得票數最多的分叉作為主鏈。
假設要發動一次雪崩攻擊,前提條件是攻擊者能夠控制多個連續區塊的提議者。當提議者針對 slot提議時,攻擊者將扣留并收集他們的區塊,直到扣留區塊達到和主鏈區塊相等的累加權重。然后,攻擊者將釋放被扣留的全部區塊,此時由于主鏈和子鏈擁有相同的權重,使得區塊鏈產生分叉,造成后續區塊順序混亂。例如,攻擊者 扣留6個區塊,第一個誠實區塊n與第一個敵對區塊n同時競爭,此時在系統中產生了一個分叉。然后攻擊者將剩余的 5 個敵對區塊全部都并行連接在第一個敵對區塊后的 n+1 處。
具體如下圖所示,由于GHOST分叉選擇算法的特性,此時敵對區塊n和其后的所有5個分叉和原鏈中6個區塊累加的權重相等,這意味著系統中第7個區塊有一定概率會選擇連接在攻擊者制造的分叉后。在這種情況下,攻擊者可以對剩余的扣留區塊重復此操作,阻止誠實的驗證者繼續跟隨在證實主鏈后,直至攻擊者用盡所有預留區塊。如果攻擊者在攻擊過程中有更多機會提出區塊,他們可以使用這些區塊來擴展攻擊,這樣,越多的驗證者參與共謀攻擊,攻擊持續的時間就越長,并且可以將更多誠實的區塊從主鏈中移出。
以太坊未確認交易為204,274筆:金色財經消息,據OKLink數據顯示,以太坊未確認交易204,274筆,當前全網算力為704.12TH/s,全網難度為9.57P,當前持幣地址為65,216,619個,同比增加126,709個,24h鏈上交易量為2,195,411ETH,當前平均出塊時間為13s。[2021/10/16 20:34:30]
圖源自《Two Attacks On Proof-of-Stake GHOST/Ethereum》
而 LMD-GHOST 分叉選擇算法的 LMD 部分減輕了雪崩攻擊,LMD, 即“最后一條消息驅動”,指的是每個驗證者保存的一個表格,其中包含從其他驗證者收到的最新消息。只有當新消息來自比特定驗證者表中已存在的 slot 更晚的 slot 時,該字段才會更新。在實踐中,這意味著在每個 slot 中,接收到的第一條消息就是它接受的消息,其他消息將會忽略。換句話說,共識客戶端使用來自每個驗證者最先到達的消息,并且相互矛盾的消息會被簡單地丟棄,以防止雪崩攻擊。
長程攻擊(long range attacks)
長程攻擊也是一種權益證明(PoS)共識機制下特定的攻擊方式,主要包含以下兩種情況:
第一種情況是,攻擊者作為參與創始區塊的驗證者,在原本的區塊鏈旁維護一個單獨的區塊鏈分叉,并最終說服誠實的驗證者在很久以后的某個時間點切換過去。但是該攻擊在信標鏈上無法實現,因為“finality gadget”可確保所有驗證者定期就誠實鏈的狀態(“檢查點”)達成一致,此后檢查點之后的區塊將無法再進行重組。
第二種情況是,當新節點加入網絡時,將從離其最近的節點處獲取信息(稱為弱主觀性檢查點)作為偽創始區塊構建區塊鏈。這將為加入網絡的新節點創建一個“信任網關”,然后其才能開始自己驗證區塊。然而,從區塊瀏覽器等客戶端收集構建檢查點所需的可信區塊信息,并不能增加客戶端本身的可信度,因此主觀性是“弱的”。因為根據定義,檢查點由網絡上的所有節點共享,所以不誠實的檢查點是共識失敗的狀態。
33%
質押的ETH數量為33% 是攻擊者的一個基準,如果其 超過了這個數量,他們就有能力阻止信標鏈最終確定,而無需精細控制其他驗證者的操作。這是因為要最終確定信標鏈,必須有 2/3 的質押 ETH 來證明檢查點對(pairs of checkpoints)。
數據:持有超0.1枚ETH的以太坊地址數量創歷史新高:Glassnode數據顯示,持有超過1枚ETH的以太坊地址數量創歷史新高,達3,184,177個。[2020/8/2]
如果 1/3 或更多的質押 ETH 被惡意證明或未能證明,那么 2/3 的絕對多數就不可能存在。對此的防御措施是信標鏈的消極懲罰(inactivity leak)機制,這是一種緊急安全措施,它會在信標鏈 4 個 epoch 后仍未能 finalize 時被觸發。消極懲罰標識了那些未能證明或證明與大多數人相反的驗證者。這些非證明驗證者擁有的質押 ETH 會逐漸流失,直到最終它們占總數的比例不到 1/3,這樣區塊鏈才能再次finalize。
50%和51%
理論上,在一個惡意驗證者控制的質押 ETH 比例達到 50% 的情況下,他可以將以太坊區塊鏈分裂成兩個大小相等的分叉。與前面描述的平衡攻擊類似,攻擊者可通過為同一個 slot 提出兩個區塊,然后只需使用其全部 50% 的質押權益與誠實的驗證者集進行相反的投票,從而維持兩個分叉并防止最終確定性。
在四個 epoch 之后,兩個分叉上的消減懲罰(inactivity leak)機制將激活,因為每個分叉都會看到其一半的驗證者無法證明。每個分叉都會消減驗證者集的另一半質押權益,最終導致兩條鏈都無法達到 2/3 的絕大多數驗證者驗證。在這一點上,唯一的選擇就是依靠社區恢復。
而當攻擊者控制的質押權益占到 51% 以上,則可以控制分叉選擇算法。在這種情況下,攻擊者將能夠以多數投票作證,讓他們有足夠的控制權來進行短期重組,而無需欺騙誠實的客戶端。控制 51% 的質押權益不允許攻擊者改變歷史,但他們有能力通過將多數投票應用于對其有利的分叉,或將區塊重組來影響未來。
誠實的驗證者會效仿,因為它們的分叉選擇算法也會將攻擊者選擇的鏈視為最重鏈,因此該攻擊鏈可以最終確定。這使攻擊者能夠審查某些交易,進行短程重組,并通過重新排序對其有利的區塊來提取最大 MEV。針對該問題的防御手段就是多數質押權益的巨大成本,這會讓攻擊者會面臨巨大的風險,因為社交層可能會介入,并采用誠實的少數派分叉,從而使攻擊者的質押權益大幅消減。
66%
控制 66% 或更多比例質押 ETH 的攻擊者可以確定其首選鏈,而無需控制其他誠實的驗證者。攻擊者可以對他們想要選擇的分叉進行簡單的投票,然后最終確定它。作為絕對多數的質押者,攻擊者將始終控制最終區塊的內容,其擁有花費、回滾和再次花費的權力,他還能審查某些交易并隨意重組區塊鏈,此時攻擊者實際上擁有了事后重組和最終性反轉的能力(即改變過去并控制未來)。而唯一的防御措施,就是通過社交層介入來協調采用替代分叉。
動態 | 以太坊未確認交易36608筆:據Etherscan.io數據顯示,以太坊未確認交易36608筆。以太坊全網算力為160.63 TH/s,當前挖礦難度2055.89 TH,交易處理能力8.3 TPS。[2019/6/4]
總的來說,盡管存在這些潛在的攻擊向量,但信標鏈的風險很低,甚至要低于工作量證明的等效鏈。這是因為攻擊者為了用投票權壓倒誠實的驗證者,需要將質押 ETH 的巨大成本置于風險之中。內置的“胡蘿卜加大棒”激勵層可以防止大多數的惡意行為,尤其是對于低質押的攻擊者。更微妙的彈跳攻擊和平衡攻擊也不太可能成功,因為真實的網絡條件使得很難實現對特定驗證者子集的消息傳遞進行精細控制,并且客戶端團隊已經用簡單的補丁快速修復了已知的彈跳攻擊、平衡攻擊以及雪崩攻擊問題。
但34%、51% 或 66% 攻擊可能需要社區進行投票解決,所以社區的有效治理對攻擊者來說是一個強大的抑制因素。對于攻擊者來說,一次技術上成功實現的攻擊仍然存在被社區阻止的風險,這降低了攻擊者獲利的可能性,足以起到有效的威懾作用。這也是維持一個價值觀一致的有效社區對于投資而言如此重要的原因。
自以太坊成立以來,礦工一直在以太坊中扮演著重要角色,但以太坊的合并將打破這一局面。據 Bitpro 估計,GPU 礦工要想在合并后的加密生態系統中保持盈利,需要關閉大約95%的GPU 。但是如此多的GPU不太可能在合并后立即關閉,所以礦工可能在合并后試圖進行PoW 分叉。事實上,目前確實已有一些礦工明確表示了對 ETHPoW 分叉的支持。而如果同時再有部分交易所也支持分叉,那么分叉的壽命將會比預期的更長。
此外,目前以太坊分叉項目 Ethereum Pow 官網已成立,且已開始有所動作:
2022 年 8月 15 日,以太坊分叉項目 Ethereum Pow 發推文稱,ETHW Core 的初始版本已在 GitHub 上發布,主要特點是:1、禁用難度炸彈;2、EIP-1559變更,基礎費用改為礦工和社區共同管理的多簽錢包;3、調整了ETHW的起始挖礦難度。
2022 年 8 月 26 日,以太坊分叉項目 EthereumPoW 發推稱,ETHW第一個測試網“冰山”發布。隨之而來的是區塊鏈瀏覽器和RPC服務器。我們歡迎社區中所有潛在的合作伙伴(交易所、資金池、錢包供應商、橋梁、建設者等)加入我們,共同構建一個真正的PoW驅動的以太坊生態系統。
那么,在以太坊合并升級后,出現的硬分叉 ETHPoW 可能會面臨哪些安全問題呢,我們下面來詳細分析。
動態 | 以太坊代幣的漏洞可能導致交易所錢包被掏空:據cryptoglobe消息,基于以太坊的GasToken上發現了一個漏洞,可能會被具有惡意人利用它來掏空加密貨幣交易所的錢包,甚至制造新的代幣來盈利。該漏洞主要影響那些沒有對提款設置gas使用限制的交易所。[2018/11/23]
51% 算力攻擊是針對區塊鏈網絡的潛在攻擊,當系統中惡意的單個實體或組織能夠控制大部分,即全網超過51%的算力時,由于PoW算法中的共識由算力決定,這使得攻擊者可以利用算力篡改賬本,導致系統遭受惡意攻擊。而在以太坊合并之后,無法再通過挖礦獲取收益的礦工會關閉礦機,這導致基于 PoW 的 ETH 分叉可能會丟失部分算力,比如目前最大的礦池 Ethermine 已發布公告,將停止支持 ETH PoW 挖礦。
圖源自ethermine.org
而一旦支持 ETHPoW 的算力下降,就會降低攻擊者發動算力攻擊的成本。則攻擊者可以通過租用大量礦池算力,使得其算力達到51%以上,此時可以利用算力優勢更快地生成區塊,當生成的區塊成為系統中最長的鏈時,就可以回滾區塊交易,實現數據篡改,造成巨大危害,比如:雙花、控制任意地址的交易等。下面將分別進行介紹:
雙花
雙花攻擊是指攻擊者企圖重復花費自己賬戶所擁有的同一筆數字代幣的攻擊行為。舉個例子:
假設A擁有51%的算力,在區塊高度1000時,A轉給B一個ETH,該轉賬交易被礦工打包。
待交易被確認后,A依靠51%的算力優勢在區塊高度999后重新生成了一條“更長的鏈”,并在區塊高度1000處重新將該ETH轉給C且該交易記錄被打包,即該鏈包含了A將一個ETH轉給C的記錄。
根據“最長鏈共識”,包含給C轉賬記錄的鏈成為主鏈,則A轉給B的一個ETH則為“無效支付“。
控制任意地址的交易
如果擁有了51%的算力,則攻擊者可以任意打包或者不打包某個地址的交易,也可以阻止區塊確認任意交易,甚至阻止部分礦工獲得有效的記賬權,從而達到控制任意地址交易的目的。
但是,擁有51%的算力也不是萬能的,比如無法修改其他人的交易記錄,也不能阻止交易的發出,更不能憑空產生ETH。
傳統計算機術語中,重放攻擊(Replay Attacks)又稱重播攻擊、回放攻擊,是指攻擊者發送一個目標主機已接收過的數據包,來達到欺騙系統的目的。而在區塊鏈領域,重放攻擊通常出現在區塊鏈硬分叉的時候,指的是“一條鏈上的交易在另一條鏈上也往往是合法的”。
2016 年 7 月 20 日晚,以太坊在第192萬個區塊高度發生了硬分叉,產生了兩條鏈,分別稱為ETH chain和ETH Classic chain,對應的代幣分別為ETH和ETC。
由于這兩條鏈上的地址和私鑰相同,交易格式也完全相同,因此其中一條鏈上的交易在另一條鏈上也是完全合法的。所以你在其中一條鏈上發起的交易,將其放到另一條鏈上去重放,可能也會得到確認。由于事先沒有做好預案,很多人利用這個漏洞,不斷在交易所進行ETH充提操作,獲取額外的ETC。至此, “重放攻擊”得以在區塊鏈世界被重新定義。
本次以太坊合并升級,大概率出現的硬分叉ETHPoW,理論上也可能存在上述的問題。
針對重放攻擊,應該如何防范呢?其實對于以升級為目的的分叉而言很容易就能達到,因為硬分叉升級將采用不同的客戶端版本,交易的前綴中通常包含有發起交易客戶端的版本信息。分叉后礦工為了避免打包舊客戶端的“非法交易”(并非惡意交易,僅僅只是版本號過低不被其他節點所承認),通常會拒絕一定版本號以前的交易,保證惡意攻擊者很難在硬分叉升級時通過重放攻擊竊取資金。
而在 2022 年 8 月 23 日,以太坊分叉項目 EthereumPoW 官方發文稱,ETHW Core 發布第二次代碼更新,強制執行 EIP-155。此次更新后,所有交易都必須使用鏈 ID 進行簽名。這將保護 ETHW 用戶免受來自 ETHPoS 和其他分叉 Token 的重放攻擊。
這里簡單介紹下 EIP-155 :
該提案名為“簡單的重放攻擊保護”。提案中規定:如果block.number >= FORK_BLKNUM并且CHAIN_ID是可用的,那么在計算交易的哈希以進行簽名時,不是僅對之前的六個 rlp 編碼元素(nonce, gasprice, startgas, to, value, data)進行哈希處理,而是應該對九個 rlp 編碼元素(nonce, gasprice, startgas, to, value, data, chainid, 0, 0)進行哈希處理。此時,簽名中的v 值不再是 recid , 而是 recid+ chainID*2+ 35。
因此,簡單來說,在交易簽名時,需要提供一個簽名器(Signer)和私鑰(PrivateKey)。需要Singer是因為在 EIP-155 修復簡單重復攻擊漏洞后,需要保持舊區塊鏈的簽名方式不變,但又需要提供新版本的簽名方式。因此通過接口實現新舊簽名方式,根據區塊高度創建不同的簽名器。而 EIP-155 中實現的新哈希算法,主要目的是獲取交易用于簽名的哈希值 TxSignHash。和舊方式相比,哈希計算中混入了鏈ID和兩個空值。注意這個哈希值 TxSignHash 在EIP155中并不等同于交易哈希值。
圖源自《區塊鏈技術與實現》
如此一來,一筆已簽名的交易就只可能屬于某唯一確定的區塊鏈。
此外,為了保證項目安全,建議項目方在合約中進行離線簽名校驗時,簽名數據中應包含Chain ID,避免因跨鏈簽名重用導致資產損失。
事實上,常規性的分叉是需要用算力做選擇,選擇的主角是礦工,而這次以太坊升級如果真的有兩條以太坊鏈同時出現,需要作出選擇的,是以太坊的整體生態,是其中的項目方,是用戶,是投資者。
如今的以太坊與2016年硬分叉時相比早已今非昔比了,DeFi 項目已經占了以太坊生態的半壁江山,但 DeFi 項目的基礎是鏈上的資產,所以項目方主要是跟著資產方走的。所謂資產方,是如 USDT、USDC 這種鏈上穩定資產,DeFi 的抵押借貸生態基本都是基于資產方的。
對于這些穩定資產(這里主要指穩定幣)的發行方而言,如果以太坊網絡分叉,他們就會突然面臨一個危險的問題:出現兩個版本的穩定幣。作為穩定幣的發行者,每發行一個穩定幣,就會突然有兩個債務義務。
雖然大多數人認為,穩定幣發行方會把新的PoS鏈視為“真正的”以太坊網絡,但如果他們想要支持PoW鏈呢?畢竟他們有足夠的經濟動機去做。
例如,他們可以做空 PoS 以太坊代幣,在 PoW 網絡上宣布贖回,然后大撈數十億美元。這可能會破壞新的以太坊網絡,導致貸款被清算,協議、交易所以及相關的額DeFi項目等被關閉。這將造成一場巨大的混亂,并可能大范圍地摧毀加密貨幣市場。
同樣,以太坊分叉項目 EthereumPow 8 月 17 日發推文稱,ETHW Core將引入流動性池凍結技術保護用戶資產,即在以太坊PoW硬分叉之后,特別是最初的幾個區塊,用戶存放在流動性池中的ETHW代幣,如Uniswap、Susiswap、Aave、Compound,將被黑客和科學家使用棄用的或沒有價值的方式交換或借出USDT、USDC、WBTC ,這將對整個網絡和社區造成巨大的混亂。因此,ETHW Core暫時凍結某些LP合約以保護用戶的ETHW代幣,直到協議的控制器或社區找到更好的歸還用戶資產的方法。凍結將不適用于僅涉及單一資產的質押合約(例如ETH2.0存款合約和Wrapped Ether)。ETHW Core建議每個人在硬分叉之前從LP(例如DEX和借貸協議)中提取他們的ETH。
參考文獻:
《Ethereum PoS Attack and Defense》
https://mirror.xyz/jmcook.eth/YqHargbVWVNRQqQpVpzrqEQ8IqwNUJDIpwRP7SS5FXs
《什么是區塊鏈上的重放攻擊》
https://zhuanlan.zhihu.com/p/163121813
《區塊鏈技術與實現》
https://learnblockchain.cn/books/geth/part3/sign-and-valid.html
Beosin
企業專欄
閱讀更多
金色早8點
財經法學
成都鏈安
Bress
鏈捕手
PANews
Odaily星球日報
Tags:ETH以太坊區塊鏈POWethereal最美翻譯比特幣以太坊最新消息分析區塊鏈是什么概念Ulgen Hash Power
TIPS 在 Merge - Shanghai Upgrade 的約 9 個月的小周期內,流通狀態的 ETH 在持續單調遞減;從長遠來看.
1900/1/1 0:00:00過去一年,整個去中心化金融 (DeFi) 生態系統被盜超過 30 億美元,其中超過 ? 的被盜案件源自跨鏈橋。為了使 DeFi 發展成為一個可信且安全的生態系統,需要減輕該領域內的漏洞.
1900/1/1 0:00:00“聚焦第十屆中國創業者大會暨 Web3.0 青年創業者峰會,Web3.0 將迎來超級投資熱”2022 年 9 月下旬,由北京創業科創科技中心主辦的第十屆中國創業者大會,將在鄭州舉行.
1900/1/1 0:00:00在你最喜歡的 dApp 上質押以賺取 RealYield 和在 DEX 上開多/開空獲利之間,你是否很難做出選擇?但現在出現了一種協議——Fluidity money.
1900/1/1 0:00:00近日,《中國信息界》雜志在8月刊上發布了波場TRON創始人孫宇晨的觀點文章《國際視野下元宇宙的發展方向》,文章表示,在各種新技術的加持下,未來元宇宙將會實現身份和財富共同上網.
1900/1/1 0:00:00作者:0xivecott$ETHW 得到了大部分礦池的支持,它似乎是 "真正的分叉"。而 $ETF 已經有 1300 萬 $ETF 的預挖,而且大部分都是由發起分叉的團隊控制.
1900/1/1 0:00:00