以太坊價格 以太坊價格
Ctrl+D 以太坊價格
ads

ZERO:L2BEAT 用一個實驗“破解”了 LayerZero:為什么“獨立安全”不安全?

Author:

Time:1900/1/1 0:00:00

原文標題:《CircumventingLayerZero:WhyIsolatedSecurityisNoSecurity》

作者:KrzysztofUrbański,L2BEAT團隊成員

編譯:Babywhale,ForesightNews

L2BEAT從成立以來就投入了大量精力來分析和理解與Layer2協議相關的風險。我們始終以用戶和生態系統的最大利益為出發點,盡最大的努力成為一個公正、獨立的監督者,不會讓我們對項目或相關團隊的個人偏好影響事實。這就是為什么即使我們尊重項目團隊投入項目的時間和努力,但也會對某些協議存在的潛在風險「拉響警報」或指出我們的擔憂。盡早進行與安全相關的討論可以讓整個生態系統更好地為潛在風險做好準備,并對任何可疑行為更早地做出反應。

今天我們想就跨鏈應用的共享安全模型展開討論。目前有兩種安全模型:共享安全與獨立應用安全。共享安全性就例如所有的Rollup。獨立應用安全性主要由「omnichain」項目使用,這類項目的主要使用的是LayerZero。

共享安全與獨立安全

共享安全性是指在給定基礎架構上運行的特定代幣或應用,而不是自由選擇安全模型,他們必須遵守基礎設施強加的任何安全要求。例如,OptimisticRollups通常會施加一個7天的最終窗口期——在此類Rollups上運行的應用不能簡單地忽略或縮短這個期限。這雖然看起來像是一個障礙,但它是有原因的。這個期限為用戶提供了安全保證,無論應用的內部安全策略是什么,都必須遵守這套安全政策,應用可能只會加強Rollups的安全性,而不會削弱它。

獨立安全是指每個應用都負責定義其安全性,不受基礎設施以任何方式進行的限制。這乍看之下似乎是個好主意,畢竟應用的開發人員最清楚應用可能需要哪些安全措施。但與此同時,它將評估與每個應用安全策略風險相關的責任轉移給了終端用戶。此外,如果應用開發者可以自由選擇他們的安全策略,他們也可以隨時更改。因此,對每個應用評估一次風險是不夠的,每次應用的政策發生變化時都應該對其進行評估。

以太坊L2網絡總鎖倉量跌至51億美元:金色財經報道,L2BEAT數據顯示,截至目前,以太坊Layer2上總鎖倉量為51億美元。近7日跌幅3.18%,其中鎖倉量最高的為擴容方案Arbitrum,約26.7億美元,占比52.35%。其次是Optimism,鎖倉量14.4億美元,占比28.28%。dYdX占據第三,鎖倉量4.68億美元,占比9.18%。[2022/9/15 6:57:17]

存在的問題

我們認為每個應用都可以自由定義其安全策略的獨立安全模型會帶來嚴重的安全問題。首先,它增加了終端用戶的風險,因為他們必須驗證他們打算使用的每個應用的風險。

獨立安全還增加了使用這種模型的應用的風險,例如增加了有關安全策略更改的額外風險——如果攻擊者要更改應用的安全模型,還不如簡單地禁用它,從而耗盡資金或以任何其他方式進行攻擊。應用之上沒有額外的安全層來防止被攻擊。

此外,由于安全策略能夠隨時且即時更改,因此幾乎不可能實時監控應用并告知用戶風險。

我們發現它類似于智能合約的可升級性,我們已經在L2BEAT上發出了警告。我們告知用戶在其智能合約中具有可升級性機制的Rollup和跨鏈橋,以及在每種情況下管理可升級性的確切機制。這已經相當復雜了,加之使用獨立的安全模型更會使得數目成倍增加,幾乎不可能有效跟蹤。

這就是為什么我們認為獨立的安全模型本身就是一種安全風險,并且我們假設默認情況下將使用這種模型的每個應用都應被視為有風險,除非證明并非如此。

證明安全漏洞存在

我們決定在主網上測試我們的假設。選擇LayerZero框架進行實驗是因為它是最流行的以獨立安全為核心的解決方案之一。我們部署了一個安全的omnichain代幣,之后更新安全配置,允許惡意提取代幣。代幣的代碼基于LayerZero提供的示例,與實際部署的許多其他omnichain代幣和應用程序非常相似或相同。

以太坊L2網絡總鎖倉量為40.2億美元:金色財經消息,據L2BEAT數據顯示,截至目前,以太坊Layer2上總鎖倉量為40.2億美元,近7日上漲4.71%。其中鎖倉量最高的為擴容方案Arbitrum,約20.9億美元,占比51.05%。其次是Optimism,鎖倉量8.07億美元,占比19.68%。dYdX占據第三,鎖倉量6.85億美元,占比16.7%。[2022/6/27 1:33:59]

但在我們深入細節之前,讓我們簡要了解一下LayerZero安全模型是什么樣的。

正如LayerZero在白皮書上指出的,其「無需信任的鏈間通信」依賴于兩個獨立的參與者共同行動以確保協議的安全。

LayerZero在其網站上表示,其核心概念是「運行ULN(UltraLightNode)、可配置鏈上終端的用戶應用」。LayerZero的鏈上組件依賴于兩個外部鏈下組件在鏈之間中繼消息——預言機和中繼器。

每當任何消息M從A鏈發送到B鏈時,都會發生以下兩個操作:

首先,預言機等到在A鏈上發送消息M的交易完成,然后在B鏈上寫入相關信息,例如A鏈包含消息M的區塊頭的哈希值。

然后中繼器向B鏈發送一個「證明」,證明存儲的區塊頭包含消息M。

LayerZero假設中繼器和預言機是獨立、誠實的參與者。但LayerZero也在白皮書中表示,如果不滿足該假設,例如中繼器和預言機串通,導致「預言機提供的區塊頭和中繼器提供的交易證明均無效,但仍然匹配」。

LayerZero聲稱「LayerZero的設計消除了合謀的可能性」。但事實上,這種說法是不正確的,因為每個用戶應用程序都可以定義自己的中繼器和預言機。LayerZero不通過設計保證這些組件是獨立的并且無法串通,而是由用戶應用提供這些保證。如果應用選擇破壞它們,LayerZero沒有任何機制可以阻止。

此外,默認情況下,所有用戶應用都可以隨時更改中繼器和預言機,從而完全重新定義安全假設。因此,僅檢查一次給定應用的安全性是不夠的,因為它可能在檢查后隨時更改,正如我們將在實驗中展示的那樣。

以太坊L2網絡總鎖倉量為64.6億美元:金色財經消息,L2BEAT數據顯示,截至4月17日,以太坊Layer2總鎖倉量為64.6億美元,7天減少2.21%。其中鎖倉量最高的為Arbitrum,約36.6億美元,占比56.73%;其次是dYdX,鎖倉量為9.91億美元,占比15.35%;第三為Optimism,鎖倉量為5.97億美元,占比9.25%。[2022/4/17 14:29:45]

實驗設計

在我們的實驗中,我們決定創建一個簡單的omnichain代幣CarpetMoon,同時在以太坊和Optimism上運行,并使用LayerZero在兩個鏈之間進行通信。

我們的代幣最初使用LayerZero提供的默認安全模型,使其與大當前部署的LayerZero應用完全相同。因此,它通常與使用LayerZero的任何其他代幣一樣安全。

首先,我們在以太坊和Optimism上部署我們的代幣合約:

https://ethtx.info/mainnet/0xf4d1cdabb6927c363bb30e7e65febad8b9c0f6f76f1984cd74c7f364e3ab7ca9/

https://optimistic.etherscan.io/tx/0xf41389d71fa3942de5225efb067072728c6c6de56c241574187781db7c73d221

然后我們設置了路由,以便LayerZero知道兩條鏈上哪個合約對應哪個合約。

https://ethtx.info/mainnet/0x19d78abb03179969d6404a7bd503148b4ac14d711f503752495339c96a7776e9/

https://optimistic.etherscan.io/tx/0x037b1bad33faa5607bb5835460a1d5caaf3a147dc3a09762ac7703befcdb3c3c

代幣已部署完成,它看起來與使用LayerZero的所有其他omnichain代幣完全一樣,使用默認配置,沒有任何可疑之處。

以太坊L2網絡總鎖倉量為67億美元:金色財經報道,L2BEAT數據顯示,截至4月8日,以太坊Layer2上總鎖倉量為67億美元。其中鎖倉量最高的為擴容方案Arbitrum,約37.3億美元,占比55.62%;其次是dYdX,鎖倉量為9.83億美元,占比14.67%;第三為Optimism,鎖倉量為5.92億美元,占比8.83%。[2022/4/7 14:10:23]

我們向我們的「測試用戶」Alice提供了10億枚以太坊上的CarpetMoon代幣。

https://ethtx.info/mainnet/0x7e2faa8426dacae92830efbf356ca2da760833eca28e652ff9261fc03042b313/

現在Alice使用LayerZero將這些代幣跨鏈至Optimism。

我們將代幣鎖定在以太坊上的托管合約中:

https://ethtx.info/mainnet/0xe4dc3757b86bfda8e7baddc088fb1a599e083ed77034c29e5dd8bd11f1e17771/。

包含著交易的消息正在通過LayerZero傳遞給Optimism:

https://layerzeroscan.com/101/address/0xc6005ccc1de4b300d538903b74848bff881d5dc5/message/111/address/0x201fe0d843b546f2e24d4c8444318d1c71b7nonced10d/。

以太坊L2網絡總鎖倉量達到56.68億美元:金色財經報道,L2BEAT數據顯示,截至1月3日,以太坊Layer2上總鎖倉量已達到56.68億美元。其中鎖倉量最高的為擴容方案Arbitrum,約25.3億美元,占比44.54%。其次是dYdX,鎖倉量為9.79億美元,占比17.22%。[2022/1/3 8:20:44]

跨鏈的代幣正在Optimism上鑄造,Alice現在在Optimism上擁有10億枚MoonCarpet代幣:

https://optimistic.etherscan.io/tx/0x5388ced88cf562acafff82d6798f791b0b38b90ee106df9bf91c0d86306ec302。

一切都按預期進行,Alice將代幣跨鏈,并看到以太坊上的托管合約中有10億枚MoonCarpet代幣,她在Optimism的賬戶上有10億枚MoonCarpet代幣。但為了確保一切正常,她將一半的代幣轉回以太坊。

我們從Optimism上銷毀5億代幣的交易開始:

https://optimistic.etherscan.io/tx/0x118a57106488ad0bae1f3b920b1fd98b187752ad966f3a901fc53cff47f2097f。

有關該交易的信息被傳遞到以太坊:

https://layerzeroscan.com/111/address/0x201fe0d843b546f2e24d4c8444318d1c71b7d10d/message/101/address/0xc6005ccc1de4b300d538903b74848bff881d5dc5/nonce/1。

正如預期的那樣,5億枚MoonCarpet代幣從托管合約返回到Alice的地址:

https://etherscan.io/tx/0x27702e07a65a9c6a7d1917222799ddb13bb3d05159d33bbeff2ca1ed414f6a18。

到目前為止,一切正常,也與假設的完全一致。Alice已經檢查過她可以將代幣從以太坊跨鏈到Optimism并再次跨鏈回來,她沒有理由擔心她的MoonCarpet代幣。

但是假設本身存在問題——例如,我們的代幣背后的團隊遇到問題,壞人Bob獲得了對我們應用的LayerZero配置的訪問權限。

如此,Bob可以將預言機和中繼器從默認的組件更改為由他控制的組件。

需要注意的是,這是為每個使用LayerZero的應用提供的機制,根植于LayerZero的架構中,它不是任何類型的后門,而是一種標準機制。

所以Bob將預言機更改為他控制下的EOA:

https://ethtx.info/mainnet/0x4dc84726da6ca7d750eef3d33710b5f63bf73cbe03746f88dd8375c3f4672f2f/。

中繼器也同樣被更改:

https://ethtx.info/mainnet/0xc1d7ba5032af2817e95ee943018393622bf54eb87e6ff414136f5f7c48c6d19a/。

現在奇怪的事情發生了。由于預言機和中繼器現在在Bob的完全控制之下,他能夠盜取Alice的代幣。即使在Optimism上沒有采取任何行動,Bob也能夠說服以太坊上的MoonCarpet智能合約他在其他鏈上銷毀了代幣并且他能夠提取在以太坊上的MoonCarpet代幣。

首先,他使用由他控制的預言機更新以太坊的區塊哈希:

https://ethtx.info/0xde2edee2cc7f070120e96c9df90d86696970befcfc221e18c6ac4168bb5b1d92/。

現在他可以從托管合約中提取剩余的代幣:

https://ethtx.info/0xda695f374b375d5372efeca37aae4c5a17f114d5a76db1e86edebb0924bcdcc7/。

實驗結果

Alice甚至不知道為什么以及什么時候發生了錯誤。突然之間,她在Optimism上的MoonCarpet代幣不再得到以太坊上代幣的支持。

智能合約不可升級,并且按預期運行。唯一可疑的活動是預言機和中繼器的變化,但這是LayerZero內置的常規機制,因此Alice甚至不知道這種變化是否有意為之。即使Alice知道了這個變化,也已經太晚了——攻擊者可以在她做出反應之前耗盡資金。

LayerZero也無能為力——這些都是他們機制的有效執行,他們無法進行控制。理論上,應用本身可以阻止自己更改預言機和中繼器,但據我們所知,已經部署的應用都沒有這樣做。

我們做了這個實驗來測試是否有人注意到它,但正如我們所料,沒有人注意到。有效地監控所有使用LayerZero構建的應用來檢查它們的安全策略是否發生改變,并在發生這種情況時警告用戶是幾乎不可能的。

即使有人能夠及時發現預言機和中繼器已經發生變化并帶來了安全風險,但為時已晚。由于新的預言機和中繼器現在可以自由選擇傳遞的消息或簡單地禁用鏈間通信,用戶通常對此無能為力。我們的實驗清楚地表明,即使Alice注意到應用配置的變化,她也不能用她的跨鏈代幣做太多事情——新的預言機和中繼器已不再在原始的通信鏈條上接受消息,所以不會將消息返回以太坊。

結論

正如我們所看到的,即使我們的代幣是使用LayerZero構建并按預期使用其機制,我們還是能夠從代幣的托管中竊取資金。當然,這是應用的錯誤,而不是LayerZero本身的錯誤,但這證明LayerZero本身不提供任何安全保證。

當LayerZero描述他們關于預言機和中繼器的安全模型時,他們假設應用所有者不會做任何不合理的事情。但在對抗性的環境中,這種假設是不正確的。此外,它要求用戶將應用開發者作為可信賴的第三方來信任。

因此在實踐中,人們不能對使用LayerZero構建的應用的安全性做出任何假設——每個應用都應該被認為是有風險的,直到證明不是這樣。

實際上,整個故事是從我們計劃在L2BEAT網站上包含所有omnichain代幣的PR開始的——我們很難弄清楚如何評估它們的風險。在分析風險時,我們提出了實驗的想法。

如果在L2BEAT上線,后果是我們必須在使用LayerZero構建的每個應用之上放置警報,警告可能存在的安全風險。但我們想就安全模型展開更廣泛的討論,因為我們認為獨立的安全是一種應該避免的模式,尤其是在我們的領域。

我們相信,隨著LayerZero等獨立安全模型越來越流行,將會有越來越多的項目濫用它們,造成大量破壞并增加整個行業的不確定性。

Tags:LAYERZERZEROEROLAYERX價格NZERO幣ZEROPAYZero Collateral Dai

比特幣行情
BLO:Web3 基礎設施公司 Blocknative 完成 1500 萬美元 A1 輪融資,分布式資本等領投

Web3基礎設施公司Blocknative宣布完成1500萬美元A1輪融資,BlockchainCapital、FoundryGroup、Rho、IOSGVentures、RobotVentur.

1900/1/1 0:00:00
binance:趙長鵬公開信全文:《2022,韌性為王》

作者:趙長鵬,幣安 從數據來看,加密行業的2022是跌宕起伏的一年。對于Binance和整個加密行業來說,在Celsius、Voyager、FTX等項目接連破產之后,我們更應該學會反思.

1900/1/1 0:00:00
ANKR:Ankr:2022 年度回顧及展望

作者:Ankr 2022年對區塊鏈來說是關鍵的一年,在很多方面對Ankr來說也是如此。在過去的一年里,Ankr專注于構建、發布和迭代產品,這些產品大幅度提升開發人員成功構建Web3的能力.

1900/1/1 0:00:00
RUM:晚報 | BlockFi 已申請破產重組;火必與多米尼克聯合推出國家代幣 DMC

整理:餅干,鏈捕手 “過去24小時都發生了哪些重要事件”?1、外媒:BlockFi已申請破產重組,目前仍持有2.569億美元現金據BussinessWire報道.

1900/1/1 0:00:00
NER:速覽 Linera 白皮書:微鏈、彈性驗證器和多鏈編程

來源:Linera 編譯:flowie,ChainCatcher相比于?Aptos、Sui,同樣是被?a16z押注的Diem?繼承者Linera?節奏一直相對緩慢.

1900/1/1 0:00:00
ERG:消息人士:Tiger Global 違背為其他風投公司提供資金的承諾

據TheInformation援引消息人士報道,對沖基金TigerGlobalManagement的領導層曾于去年年初承諾以個人出資形式,向數十家風投基金投資10億美元.

1900/1/1 0:00:00
ads