header-langage
简体中文
繁體中文
English
Tiếng Việt
한국어
日本語
ภาษาไทย
Türkçe
掃碼下載APP
Partnered With:

Polygon工程師:為什麼說Blast完全不是L2?

閱讀本文需 11 分鐘
Blast不是L2,只是一個具有兩個功能的智能合約: 接受用戶的資金;將用戶的資金投入Lido等協議中。
原文標題:《程式碼分析:為什麼說Blast 完全不是L2》
原文作者:Jarrod Watts
原文編譯:金財經0xjs
< br>

有人說「Blast 只是一個3/5 多重簽名…」


過去幾天我深入研究了原始程式碼,看看這個說法是否屬實。


以下是我看到的一切:


1.一個新錢包0x52c31 部署了兩個合約: 1)0xa01:Blast Deposit 代理合約;2)0x5f6:Blast Deposit 實現合約。



如果你不熟悉這些「代理合約」設置,後文還會回到這個。


2.0x52c31 部署這些合約後,將所有權轉移給 Gnosis Safe 智慧合約。


Gnosis Safe 或「Safe2」合約是最受歡迎且最值得信賴的多重簽名智能合約。它們要求大多數簽名者簽名才能執行交易。



3.現在擁有Blast 合約的Safe 合約中有5 位簽署者。


這表示大多數(即 3/5)簽署者需要代表此 Safe 合約執行交易。這 5 個錢包都是非常新的錢包,但主人不詳。


4.所以 3/5 多重簽名合約現在是 Blast Deposit 合約的「所有者」。


如我們所提到的,Blast Deposit 合約由兩個合約組成:代理和實作。


成為它們的「所有者」實際上意味著什麼呢?


5.對於常規智能合約,一旦部署到區塊鏈,你就無法更改程式碼。 代理智能合約允許你對智能合約執行「升級」(更改),而無需替換整個合約。 這通常用於修復錯誤或添加功能。


6.Blast 代理實作 OpenZeppelin 的 UUPSUpgradeable 合約。這包括諸如“_upgradeTo”之類的函數,允許更改實現合約的邏輯。這意味著用戶互動的合約能夠維護相同的合約地址。


7.這種可升級性的最壞情況是(多重簽名)所有者將合約的邏輯更改為惡意的內容。


這聽起來有點可怕,對吧? ……實際上,這些「輔助功能」被當今大多數 L2 採用。


8.像 Optimism 和 Arbitrum 這樣的 Optimistic Rollups 也有這個功能。


依據L2Beat: 


·保護OP Mainnet和Base 系統的程式碼可以任意更改,恕不另行通知。


·Arbitrum One 的升級大約需要 12 天的延遲,但理事會可以毫不延遲批准。


9.zkEVM 世界也是如此


根據L2Beat:  


·保護Linea、Scroll 和zkSync 系統的程式碼可以任意更改,恕不另行通知。


·Polygon zkEVM 的升級有約10 天的延遲(除非啟動緊急狀態)


10.這些Rollup 具有可以執行升級的多重簽名的原因是為了在技術成熟時實現臨時安全。正如 L2Beat 在其 L2 階段部落格中所概述的那樣,Rollup 的最後階段應該限制這些安全委員會解決「嚴重缺陷」的能力。



11.安全理事會的能力隨著時間的推移而減弱。然而,成員知名度很重要。


例如,Polygon PIP-29 提議由 13 個成員來管理「對系統智慧合約的範圍狹窄、時間限制的變更」。



12.因此,雖然Blast 確實有可能透過多重簽章來執行程式碼升級並立即竊取資金,但*目前*許多其他L2 解決方案也具有相同的功能。


到目前為止,我一直在為 Blast 辯護。但是,下面是壞消息了... 讓我們繼續。


13.Blast 不是 L2。


Blast 只是一個有兩個功能的智慧合約: 1、接受使用者的資金。 2、將用戶的資金投入 Lido 等協議。


沒有測試網,沒有交易,沒有橋,沒有 Rollup,也沒有向以太坊發送交易資料。這不是 L2。


14.透過向 Blast 合約存款,你基本上信任 3-5 個陌生人會為你質押你的資金。


除非這 3-5 個人決定將來做正確的事情,否則你將無法在任何時候提取這筆錢。 再說一次,這裡沒有橋。


15.這對我來說真的很瘋狂...


你無法從Blast 取回你的錢,直到: 


由陌生人組成的3/5 多重簽名部署了一份新合約;


該合約具有從中提取資金的功能;


他們將所有資金轉移到新合約。


16.但是,還有更糟的情況。


我可以告訴你,他們甚至不需要進行「升級」來竊取合約中的所有資金,而這個合約用戶存進的資金其他人都不能取出。


我們接著看。


17.函式「enableTransition」要求「mainnetBridge」合約作為參數。


這個「mainnetBridge」合約的功能: 取得所有質押的 ETH 、DAI。


那麼,這個「mainnetBridge」合約怎麼樣呢?



18.它絕對可以是任何東西! Blast 批准任意「mainnetBridge」合約,以花費最大可能數量的LIDO 和DAI…


這個合約的正確性肯定有一些限制?好吧,*是的*,讓我們看看該程式碼。


19.下面是「_setMainnetBridge」函式中的斷言語句。



它... 檢查該位址是否有任何程式碼!是的,只要它不是 EOA 地址即可;它已批准擁有合約中的所有資金。目前資金總量已經超過 2 億美元。



20.因此,可以假設,它們可以:

< br>

1)建立一個極為簡單的智慧合約並將其設定為mainnetBridge 合約;


2)讓該智能合約接收所有質押的ETH 和DAI(2 億+) 


呼叫智能合約將所有資金提取到EOA 錢包。


21.我們發現的兩個主要威脅是: 


·經3/5 多重簽章批准升級惡意程式碼以竊取資金。


·製作惡意智能合約並將其設定為「mainnetBridge」智能合約來竊取資金,同樣是透過3/5 多重簽名。


22.這會真的發生嗎?就我個人而言,如果我必須猜測的話,我認為資金不會被盜。


無論如何,我實際上認為 Blast 原生收益的想法是一個非常有趣的權衡。


23.因此,雖然我個人認為在目前的狀態下發送資金到Blast 是有風險的,但發送不發送最終是用戶的決定,我只是在這裡分享我看到的東西。


我仍然祝福 Blast 團隊和所有已經存款的人一切順利。


原文連結



歡迎加入律動 BlockBeats 官方社群:

Telegram 訂閱群:https://t.me/theblockbeats

Telegram 交流群:https://t.me/BlockBeats_App

Twitter 官方帳號:https://twitter.com/BlockBeatsAsia

举报 糾錯/舉報
選擇文庫
新增文庫
取消
完成
新增文庫
僅自己可見
公開
保存
糾錯/舉報
提交