通過破壞Infrua,基本上可以破壞所有Rollup。通過破壞Infrua,基本上可以破壞所有Rollup。
通過破壞Infrua,基本上可以破壞所有Rollup。以太坊已經確認了以Rollup為中心的2.0路線圖,這讓Rollup成為了炙手可熱的技術,也可以說已經成為了layer2擴容的主流技術。如果與零知識證明證明搭配起來,Rollup會是layer2技術裡解決方案的集大成者。二級標題
以下為關於虛擬Rollup攻擊的討論。經白計劃團隊整理,有所修改和批註。正文
Optimistic Rollup是通過在以太坊網絡上使用calldata存儲塊信息來進行。這各過程允許任何人操作以太坊節點並下載Rollup狀態。但實際上,有些人不會操作他們自己的以太坊節點,而是依靠託管解決方案(例如Infura)。如果要快速低成本地構建有效的Rollup鏈,需要做的是進行交易、構建狀態並將其存儲在以太坊網絡以外的其他位置。當Rollup協調員從以太坊節點接收狀態歷史記錄時,協調員可以通過重播狀態交易來確定數據是否有效。然而,協調員不能確定鏈上是否存在該狀態,最好的辦法是詢問以太坊節點。如果想像一個名為Untrust的以太坊節點服務。 Untrust為以太坊dapp提供了低成本的基礎架構。如果他們選擇不信任,則可以查看特定的Rollup並創建虛構的歷史記錄。他們甚至可以通過從某些真實交易中提取通信數據並將其與虛擬交易混合來創建半虛擬歷史。這樣,他們將創建一個完全不同的當前狀態哈希,但只有在使用Untrust的Rollup運算符去(向鏈上)提交一個塊的情況下,這才會被發現(這將是欺詐性的)。這種類型的攻擊並不是特別強大。攻擊者無法偽造簽名,不能直接竊取資金,但可以在Rollup中撒謊自己的活動。現在說Untrust找到一個使用MoneyMoverRollup付款的網站。該網站運行自己的MoneyMover協調員,該協調員連接Untrust以訪問以太坊網絡。二級標題
Untrust在其鏡像網絡上進行了一次虛構的交易,該網站運營的MoneyMover協調員將其檢測為有效付款。 Untrust現在無需付費即可訪問該網站。網站只會在他們提交交易或切換到其他以太坊供應商(即要與其他節點同步數據)時才發現這種虛構的付款。以上的攻擊是僅當協調員未運行其自己的以太坊節點時,此攻擊才有意義。有一些情況是有問題的:1.協調員數據的下游使用者無法知道他們接收的數據是否(在鏈上)存在,他們不能信任協調員正在使用的eth節點,因為使用者沒有自己運行該節點。2.欺詐證明者(去證明惡意交易的一方)尤其容易受到這種攻擊,因為它們僅在檢測到欺詐行為時才會提交交易。惡意的eth節點可能會從區塊鏈數據中剝離無效交易,並僅返回不同的狀態哈希。欺詐證明者將無法得知狀態哈希是虛構的,並且永遠不會提交欺詐聲明。3.eth節點操作員向Rollup協調員說謊,以誘使他們要么提交無效的狀態交易,要么提交無效的欺詐聲明。一旦發生這種情況,惡意的eth節點運營商就可以充當有效的交易對手並收集抵押的資金。在工作量證明鏈的背景下,協調員可以請求塊數據並檢查其是否足夠困難。檢查當前難度的至少一半應該可以使大多數攻擊因為財務問題無法實現。在權益證明鏈中,這個過程變得不可行,因為惡意的eth節點可能會從未投票的地址提供簽名。他們可以通過在查詢時質押抵押金額來做到這一點。一個不太優雅的解決方案是:對信譽良好的節點不斷簽名,並發布已存在於鏈上的Rollup狀態哈希的列表。該列表可以在IPFS之類的服務上發布。協調員節點可以包括一個已知的信譽良好的公共密鑰的預設列表(Rollup創建者,EF等)。如果出現以下情況,協調員會知道Rollup數據是真實的:2.所有狀態散列均由信譽良好的來源(節點)進行簽名。這將確保Rollup數據有效且非虛構,並且將允許Rollup節點使用任何以太坊節點來同步數據。以上是「jchancehud」討論的Rollup安全攻擊的可能性。主要是因為Rollup是鏈下狀態,容易在很多狀態裡出現信息同步不及時的情況,據「jchancehud」表示的,需要驗證鏈下狀態是否有效的一方需要同步其他以太坊全節點的數據才可以確認最終安全性,這意味著很多平台需要運行一個以太坊節點。而對於「jchancehud」的討論,最有趣的是開發者「adlerjohn」提出,這種虛擬的“攻擊”似乎不僅適用於optimistic Rollup,而且還適用於zkRollup,實際上也適用於任何智能合約。
圖片描述

圖片描述
此外,「adlerjohn」提出,Rollup的狀態根可以作為事件發出,甚至可以存儲在以太坊狀態中,也可以進行偽造交易的查詢(例如比特幣白皮書中第7節表示可通過驗證區塊頭進行確認) 。另外,「adlerjohn」還提到了關於optimistic Rollup 方案中,還可以包含名為“最小可行合併共識”的設計,該設計可以通過發布有序數據來實現數據可用性,可以讓多個側鏈、分片使用。但可以預見的是,使用「adlerjohn」提出的方式,是存在較大的設計難度的。