原文作者:Faust
原文來源:極客 Web3
Blast 面對 Polygon zkEVM 等正統 Layer 2 的潛臺詞,或許就是「王侯將相,寧有種乎?」既然大家都不夠去信任化,本質都是靠社會共識來保證安全的,又何必抨擊 Blast 的 Layer 2 濃度不夠高,「相煎何太急」呢?
誠然,Blast 靠 3/5 多籤來控制充值地址一事被廣泛詬病,但大多數 Layer 2 也同樣靠多籤管理合約,此前 Optimism 甚至只用一個 EOA 地址控制合約升級權限。在主流 Layer 2 幾乎都存在多籤等安全隱患的當下,抨擊 Blast 不夠安全,更像是技術精英們對一個打金項目的「看不起」。
但拋開上述兩者孰優孰劣一事,區塊鏈存在的意義更多在於解決社會共識 / 民主治理中的信息不透明問題,而在宣揚技術至上時,我們必須承認,社會共識本身比技術更為重要,因為它才是保障所有 Web3 項目有效運轉的基礎。歸根結底,技術是為社會共識服務的,不能被大多數人認可的項目,就算技術再優越,本質也只是一個華麗的闌尾。
近期,Blur 創始人推出的新項目 Blast 火爆全網,這個打著 Layer 2 旗號的「資產生息」協議在 ETH 鏈上設置了一個充值地址,用戶將資金存入 Blast 地址後,這些資金將被用於 ETH 網絡原生質押、置入 MakerDAO 賺取利息等,所獲利潤將返回給用戶。
靠著創始人本身的光環及頗具吸引力的玩法,Blast 獲得了 Paradigm 為首的投資人給出的 2000 萬美元融資,也吸引了無數散戶的參與。上線不到 5 天,Blast 充值地址吸引的 TVL 就超過了 4 億美元。毫不誇張的說,BLast 就像漫漫熊市之中的一劑猛藥,瞬間激起了人們的狂熱。
但 Blast 在獲得階段性成功的同時,也引來了許多專家的質疑。比如,L 2B EAT 和 Polygon 工程師均一語道破:目前的 Blast 只是在以太坊上部署了接收充值的 Deposit 合約而已,這個合約可以在 3/5 多籤的控制下升級,換句話說,合約的代碼邏輯可能被改寫,想 Rug 還是可以 Rug。同時,Blast 只是自稱要實現 Rollup 結構,但現在的它只是一個空殼子,連提款功能都要等到明年 2 月上線。
而 Blast 也不堪示弱的點破,絕大多數 Rollup 背後都靠一組多籤管理合約升級權限,其他家 Layer 2 指責「Blast 用多籤」只是五十步笑百步而已。
Layer 2 多籤是一個由來已久的問題
其實,Layer 2 合約多籤是一個由來已久的問題。早在今年 7 月,L 2B EAT 就曾針對 Rollup 合約可升級性進行了專題調研,所謂的「可升級」,就是變更代理合約指向的邏輯合約地址,達到更改合約邏輯的效果。如果更改後的新合約中包含惡意的邏輯,Layer 2 官方就可以把用戶資產盜走。
圖源:wtf academy
按照 L 2B EAT 的數據,目前 Arbitrum、Optimism、Loopring、ZKSync Lite、ZkSync Era、Starknet、Polygon ZKEVM 等主流 Rollup 都採用了多籤授權的可升級合約,可以繞開時間鎖限制立刻 upgrade。(可以閱讀極客 web3 往期文章:信用的遊戲:被多籤和委員會操控的 Rollup 們)
讓人感到詫異的是,Optimism 過去只是用一個 EOA 地址管理合約升級,連多籤都是今年 10 月才加上去的。至於曾對 Blast 展開抨擊的 Polygon zkEVM,也可以在 6/8 多籤授權下,對 Rollup 合約進行「緊急接管」,把 Layer 2 從合約治理轉為「赤裸裸的人治」。有趣的是,上文中對 Blast 進行批判的 Polygon 工程師也提到了這一點,但表現的含糊其辭。
那麼這種「緊急模式」的存在意義是什麼?為什麼大多數 Rollup 都要給自己留一個緊急按鈕或者說後門?按照 Vitalik 此前的說法,Rollup 在迭代過程中要頻繁更新在 ETH 上部署的合約,如果不引入代理合約等可升級手段,就難以高效迭代。
此外,託管了大量資產的智能合約可能存在不易察覺的 bug,而 Layer 2 開發團隊難免疏忽大意,如果某些漏洞被黑客所利用,就可能導致大量資產被盜。所以,Layer 2 也好,DeFi 協議也罷,往往都會設置一個緊急按鈕,在必要時刻由「委員會成員」介入,防止某些惡性事件發生。
當然,Layer 2 設置的委員會往往可以繞開時間鎖限制立刻升級合約代碼,某種角度來看,他們似乎是比黑客等外界因素更讓人感到忌諱的存在。或者說,無論如何,託管了鉅額資產的智能合約都難以免除某種程度的「信任假設」,即假設合約背後的多籤控制者不作惡。除非合約被設計為不可升級的,並且不存在可以威脅到用戶資產安全的 bug。
實際情況是,現在的主流 Layer 2 要麼允許自己設立的委員會立刻更新合約,要麼引入了比較短的時間鎖限制(比如任何人要升級 dYdX 合約,都有至少 48 小時的延時)。如果人們發現委員會打算在新版合約代碼中摻雜盜取資產的惡意邏輯,用戶在理論上有足夠反應時間,把資產緊急撤出 Layer 1 。
(關於強制提款與逃生艙功能,可以閱讀我們往期文章《對 Layer 2 而言,強制提款與逃生艙功能到底有多重要?》
(時間鎖就是經過一段延時後,才允許你進行某些操作)
但問題的關鍵在於,很多 Layer 2 連可以繞開 Sequencer 排序器的強制提款功能都沒設置,這樣的 Layer 2 官方要做惡,可以先讓排序器拒絕所有人的提款請求,之後把用戶資產劃轉到 Layer 2 官方自己控制的 L2 賬戶內。之後官方再按照自己的需要去更新 Rollup 合約,等時間鎖延時結束後,就可以把用戶資產全部提到 ETH 鏈上轉移走。
當然,實際情況可能比我說的更糟糕,因為大多數 Rollup 官方可以不受時間鎖限制的升級合約,也就是說,幾乎可以在頃刻之間完成動輒上億美元的 rug。
真正去信任化的 Layer 2 應該讓合約升級延時大於強制提款延時
其實,要解決 Layer 2 去信任化 / 安全問題,需要做到以下幾件事:
在 Layer 1 上設置一個抗審查的提款出口,用戶可以不經排序器許可,直接把資產從 Layer 2 提到 ETH 鏈上。強制提款的延時不應太久,這樣能確保用戶資產快速的從 L2 退出;
任何人要升級 Layer 2 合約,必須受到時間鎖延時限制,合約升級應當晚於強制提款生效。比如說,現在 dYdX 的合約升級至少有 48 小時延時,那麼強制提款 / 逃生艙模式的生效延時,應當壓低在 48 小時內。這樣一來,用戶發現 dYdX 項目方要在新版合約中摻雜惡意代碼後,可以趕在合約更新前把資產從 Layer 2 撤出到 Layer 1 。
目前絕大多數上線了強制提款 / 逃生艙機制的 Rollup,並不滿足上述條件。比如,dYdX 的強制提款 / 逃生艙最長 7 天延時,但 dYdX 委員會的合約升級延時僅 48 小時,也就是說,委員會可以在用戶強制提款生效前,完成新合約的部署,趕在用戶逃離前把資產盜走。
從這個角度看,除了 Fuel 和 ZKSpace、Degate 外,其他 Rollup 都不能保證在合約升級前處理完用戶的強制提款,均存在較高程度的信任假設。
許多采用 Validium 方案(DA 在以太坊鏈外實現)項目雖然有很長的合約升級延時(比如 8 天或更長),但 Validium 往往依賴於鏈下的 DAC 節點發布最新數據,而 DAC 可能發動數據扣留攻擊,使強制提款功能失效,所以不符合上面談論的安全模型。(可以閱讀我們過往文章《開除 Validium?從 Danksharding 提出者的視角重新理解 Layer 2 》)
到了這裡,我們似乎可以簡潔明瞭的得出結論:除了 Fuel、ZKSpace 和 DeGate 之外的 Layer 2 方案,都不是去信任化的。用戶要麼信任 Layer 2 項目方或其設置的安全委員會不作惡,要麼信任鏈下的 DAC 節點不串謀,要麼信任排序器不會審查你的交易(拒絕你的請求)。真正滿足安全、抗審查、去信任化的 Layer 2 ,目前只有上面 3 個。
安全不止靠技術實現,必須要引入社會共識
其實,我們今天所談論的話題並不新鮮,關於本文所指出的 Layer 2 本質依賴於項目方的信用,早就被無數人指出過。比如 Avalanche 與 Solana 創始人都曾對此展開過猛烈抨擊,但問題在於,這些存在於 Layer 2 身上的信任假設,在 Layer 1 上乃至於所有區塊鏈項目身上也一樣存在。
比如,我們需要假設 Solana 網絡中佔 2/3 質押權重的 Validator 節點不串謀,需要假設佔比特幣大部分算力份額的前兩大礦池不聯合起來發動 51% 攻擊回滾最長鏈。雖然這些假設很難被打破,但「很難」不代表「不可以」。
傳統 Layer 1 公鏈一旦發生了導致大量用戶資產受損的作惡行為,最後往往會通過社會共識的方式,廢棄那條有問題的鏈分叉出一條新的鏈(參考 2016 年 The DAO 事件導致以太坊分叉為 ETH 和 ETC)。如果有人嘗試惡意分叉,大家也要通過社會共識的方式選擇追隨哪條「更靠譜」的分叉。(比如大多數人沒有追隨 ETHW 項目方)
社會共識是保障區塊鏈項目乃至於其承載的 DeFi 協議有序運轉的根源所在,即便是合約代碼審計、社區成員披露某項目存在問題等糾錯機制,也是社會共識的一環。而單純靠技術來實現的去中心化,往往並不能發揮最大的作用,很多時候都停留在了理論層面。
真的在關鍵時刻發揮作用的東西,往往是與技術無關的社會共識,是與學術論文無關的輿論監督,是與技術敘事無關的群眾認可度。
我們可以試想如下場景:一個只有幾百人聽聞過的 POW 公鏈,暫時處於高度去中心化狀態,因為還沒有出現一家獨大的局面。但假如某個礦機企業突然把自己的算力全部投入該 POW 鏈,自己一人就比其他所有礦工的算力都高出很多倍,此時,這條 POW 鏈的去中心化將瞬間被瓦解。如果該礦機企業打算作惡,人們就只能通過社會共識來糾錯。
反觀所謂的 Layer 2 ,縱使其機制設計再過精巧,也避不開社會共識這一環,即便是 Fuel、DeGate 和 ZKSpace 這類官方几乎無法作惡的 L2,他們所依託的 Layer 1- 以太坊本身也是高度依賴於社會共識 / 社區 - 輿論監督的。
更何況我們認為的合約不可升級,是聽信了合約審計機構及 L 2B EAT 的陳詞,但這些機構有疏忽大意或是撒謊的可能。雖然這種概率極低,但我們不得不承認,還是對其引入了微小的信任假設。
但區塊鏈本身的數據開源屬性,允許任何人包括黑客在內去檢查合約是否包含惡意邏輯,其實已經將信任假設最小化了,這極大程度降低了社會共識的成本。如果將這種成本降低到了足夠低的程度,我們可以默認這就是「去信任化」的。
當然,除了上面提到的那三家外,其他的 Layer 2 根本就沒有所謂的去信任,真正在關鍵時刻保障安全性的,仍然是社會共識,技術成分很多時候只是方便人們展開社會共識監督而已。如果一個項目的技術很優越,但卻得不到廣泛的認可,吸引不了龐大的社區群體,那麼它的去中心化治理以及社會共識本身也難以有效展開。
技術誠然重要,但更多的時候,能否被廣泛認可、能否發展起強大的社區文化,是比技術更為重要、更有價值、更有利於項目發展的因素。
我們不妨以 zkRollup 為例,目前很多 zkRollup 只實現了有效性證明系統和 DA 數據上鍊,它可以對外證明自己處理的用戶交易、進行的所有轉賬都是有效的,不是排序器偽造的,在「狀態轉換」這件事情上沒有作惡,但 Layer 2 官方或排序器作惡的場景並不只這一種。
我們可以近似認為,ZK 證明系統本質上只是極大程度降低了人們對 Layer 2 進行監督的成本,但很多東西是技術本身無法解決的,必須依賴於人治或社會共識的介入。
如果 L2 官方沒有設置強制提款等抗審查出口,或者官方嘗試升級合約,在其中摻雜可以盜取用戶資產的邏輯,社區成員就不得不依靠社會共識和輿論發酵來糾錯。此時此刻,技術優越與否似乎已經不再是最重要的了,與其說技術對於安全而言重要與否,倒不如說,便於人們展開社會共識的機制設計本身,才是更重要的,這其實才是 Layer 2 乃至區塊鏈的真諦。
從單純靠社會共識來監督的 Blast 身上,我們應當更直接的看待社會共識與技術實現這兩者之間的關係,而不是單純按照「哪一家 L2 比另一家 L2 更貼近 vitalik 口中的 Layer 2 」來判斷一個項目的優與劣。當一個項目已經獲得了成百上千萬人的認可與關注後,社會共識就已經形成了,至於是靠營銷還是靠技術敘事無關緊要,因為結果本身比過程更重要。
誠然,社會共識本身是民主政治的延伸,而現實世界已經證實了民主治理的缺陷,但區塊鏈本身自帶的開源與數據透明,極大程度降低了社會共識的成本,所以說,Web3 的「人治」與現實主權國家的「人治」有著本質的區別。
如果我們將區塊鏈本身視作改善民主治理中信息透明問題的一種技術手段,而不是單純追求永遠不可及的「單純靠代碼實現的 Trustless」,一切似乎都變得樂觀而明朗了許多。只有擺脫了技術精英所固存的那種傲慢與偏見,擁抱更為廣泛的受眾群體,以太坊 Layer 2 體系才能夠真正成為一個 mass adoption 的世界級金融基礎設施。