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