撰文:康水躍,Fox Tech與Way Network創始人,丹陽投資董事長
“偉大的設計看起來都是非常簡單的,但是設計它的過程其實是極其複雜的”。但是,並不是所有看起來簡單的產品設計都可以稱得上偉大,比如LayerZero。
Adam Back(比特幣核心開發團隊領袖,BlockStream CEO)有一句話令我印象深刻,“偉大的設計看起來都是非常簡單的,但是設計它的過程其實是極其複雜的”。但是,並不是所有看起來簡單的產品設計都可以稱得上偉大,比如LayerZero。
跨鏈協議不出事之前大家都覺得很安全,沒啥問題,但一出事都是驚悚大事。從過去兩年各鏈上發生的安全事件造成的損失金額來看,跨鏈協議上的安全事件造成的損失位居榜首。解決跨鏈協議安全問題的重要性以及緊迫性甚至超過以太坊擴容方案。跨鏈協議之間的互操作性是Web3連成網的內在要求。這類協議經常融資金額巨大,TVL和交易筆數也在剛需驅動之下日益增長。但由於大眾的辨識度不高,無法識別這些跨鏈協議的安全等級。
我們先看一個產品設計架構。 Chain A和Chain B之間的通訊過程由Relayer來執行,Oracle對Relayer進行監督。首先這個架構有一個優點是免去了傳統的ChainA、ChainB之間的通訊由第三條鏈(一般不在這條鏈部署dApp)完成共識算法以及數十個節點驗證,因此能給終端用戶帶來“快速跨鏈”的用戶體驗。因為架構輕便,代碼量少,Oracle有現成的Chainlink,所以這種類型的項目很容易上線,但也很容易被模仿,技術門檻可以說是Zero了。
以上架構至少存在2個問題:
1. LayerZero將幾十個的節點驗證縮減成單一的Oracle驗證,安全係數自然是大幅降低。
2. 在簡化成單一驗證之後就必須假設Relayer和Oracle是獨立的,而這種信任假設是不可能永恆成立的,不夠Crypto Native的,無法從根本上保證二者不能合謀做惡。
這就是LayerZero所採用的基本模式。作為獨立安全類型的“超輕”跨鏈方案,它只負責轉運消息,並不對應用的安全負責任,也沒有能力負責任。
那如果放開Relayer,讓大家都可以來運行中繼器,是否能解決上述問題呢?圖2是將圖1的數量變多了。首先Decentralized並不是指運行者數量變多,誰都可以接入,那叫Permissionless。需求端一向都是Permissionless,讓供給端也Permissionless並不是劃時代的變革,這是市場端的變化,與產品本身的安全性沒有太強的關係。 LayerZero的Relayer只是一個負責轉發信息的中介,本質與Oracle一樣,都是Trusted Third Party。試圖通過將受信主體從1個增加到30個來提高跨鏈安全性不過是徒勞無功,不僅沒有改變產品特性,還會有新的問題伴隨而生。
如果一個跨鏈代幣項目允許修改配置的LayerZero節點,那麼就有可能會被攻擊者替換為其自己的“Layerzero”節點,進而偽造任意的消息。從結果而言,依然是使用Layerzero的項目出現了巨大的安全問題,且這種問題在更複雜的場景下會更嚴重。龐大的系統中只要有一個環節被替換就可能造成連鎖反應。 LayerZero本身並不具備可能來解決這個問題,如果真出現安全事故,LayerZero自然而然會將責任推給外部應用。因為終端用戶需要自己謹慎判斷每個使用LayerZero的項目的安全性,所以那些“用戶導向”的項目會謹慎接入LayerZero以免被同屬這個生態的惡意應用污染,這樣一來生態建設難度就不小了。
如果Layer0不能像Layer1、Layer2一樣共享安全性,那這個Layer0就不能叫做Infrastructure,因為基礎設施之所以“基礎”是因為能共享安全性。如果某一項目方自稱是Infrastructure,那就應該像其他基礎設施一樣為自己的所有生態項目提供一致安全性,即所有生態項目共享該基礎設施的安全性。所以,準確的講,LayerZero並不是基礎設施Infrastructure,而是中間價Middleware。接入這個Middleware SDK/API的應用開發者確實可以自由定義他們的安全策略。
L2BEAT團隊曾在2023年1月5日發文《L2BEAT實驗“破解”LayerZero:為什麼這個跨鏈協議是不安全的? 》,指出他們假設應用所有者(或擁有私鑰的人)不會做惡的這種假設是不正確的。壞人Bob獲得了LayerZero 配置的訪問權限。壞人Bob可以將預言機和中繼器從默認的組件更改為由他控制的組件,說服以太坊上使用LayerZero機制的智能合約讓他將好人Alice在以太坊上的代幣全部提走。
Nomad團隊在2023年1月31日發文指出,LayerZero 中繼器存在兩個關鍵漏洞,目前處於兩方多重簽名狀態,所以這些漏洞只能由內部人員或已知身份的團隊成員利用。其中第一個漏洞允許從LayerZero 多重簽名發送欺詐性消息,第二個漏洞允許在預言機和多重簽名簽署消息或事務後修改消息,都可導致所有用戶資金被盜。原文鏈接:https://prestwich.substack.com/p/zero-validation
當被花哨表相迷惑的時候,那就試著回溯本源。
2008 年10 月31 日,比特幣白皮書問世。 2009 年1 月3 日,BTC 創世區塊誕生。 《比特幣:一種點對點電子貨幣系統》白皮書裡的摘要如下:
Abstract. A purely peer-to-peer version of electronic cash would allow online payments to be sent directly from one party to another without going through a financial institution. Digital signatures provide part of the solution, but the main benefits are lost if a trusted third party is still required to prevent double-spending. We propose a solution to the double-spending problem using a peer-to-peer network. The network timestamps transactions by hashing them into an ongoing chain of hash-based proof-of-work, forming a record that cannot be changed without redoing the proof-of-work. The longest chain not only serves as proof of the sequence of events witnessed, but proof that it came from the largest pool of CPU power. As long as a majority of CPU power is controlled by nodes that are not cooperating to attack the network, they’ll generate the longest chain and outpace attackers. The network itself requires minimal structure. Messages are broadcast on a best effort basis, and nodes c an leave and rejoin the network at will, accepting the longest proof-of-work chain as proof of what happened while they were gone.
摘要中文翻譯如下:
一種完全的點對點電子貨幣應當允許在線支付從一方直接發送到另一方而不需要通過一個金融機構。數字簽名提供了部分解決方案,但如果仍需一個可信任第三方來防止雙重支付,那就失去了電子貨幣的主要優點。我們提出一種使用點對點網絡解決雙重支付問題的方案。該網絡通過將交易“哈希”(動詞)進一條持續增長的基於哈希的工作量證明鏈來給交易打上時間戳,形成一條除非重做工作量證明否則不能更改的記錄。最長的鏈不僅是被見證事件序列的證據,而且也是它本身是由最大CPU 算力池產生的證據。只要多數的CPU 算力被不打算聯合攻擊網絡的節點控制,這些節點就將生成最長的鏈而超過攻擊者。這種網絡本身只需極簡的架構。信息將被盡力廣播,節點可以隨時離開和重新加入網絡,只需接受最長的工作量證明鏈作為它們離開時發生事件的證據。
人們從這篇對後世有著舉足輕重的論文裡,尤其從這段摘要裡提煉出後來廣為認知的“中本聰共識”,其核心特點是杜絕出現A Trusted Third Party,實現去信任化Trustless,去中心化Decentralized。這裡的“中心”即為A Trusted Third Party。跨鏈通信協議本質上與比特幣一樣,都是一個Peer to Peer的系統,一方從Chain A直接發送到ChainB的另一方,而不需要通過任何trusted party。
具備Decentralized和Trustless特性“中本聰共識”已經成為後來所有做基礎設施的開發者共同追求的目標。可以說,不滿足“中本聰共識”的跨鏈協議,即為假去中心化跨鏈協議,不能使用Decentralized、Trustless這種高級字眼來形容自己的產品特性。而LayerZero介紹自己說是Omnichain communication, interoperability, decentralized infrastructure. LayerZero is an omnichain interoperability protocol designed for lightweight message passing across chains. LayerZero provides authentic and guaranteed message delivery with configurable trustlessness.
事實上,LayerZero既要求Relayer、Oracle這兩個角色不會合謀做惡,又要求用戶將使用LayerZero構建應用的開發者作為可信賴的第三方來信任,而且參與“多簽”的受信主體都是被事先安排好的特權角色;與此同時,在它整個跨鏈過程沒有產生任何欺詐證明或有效性證明,更別說將這些證明上鍊並做鏈上驗證。因此,LayerZero根本就不滿足“中本聰共識”,壓根就不是Decentralized和Trustless。
在L2BEAT團隊以及Nomad團隊以問題發現者的角度發表善意文章之後,LayerZero的回應態度是“否認”再“否認”。比特幣之前就有了很多電子貨幣了,但是都失敗了。因為它們都沒有能達成去中心化,抗攻擊和自帶內在價值的目標,跨鏈協議也是如此,哪怕融資再多、流量再大、“血統再純正”,只要產品無法實現Real Decentralized Security,大概率是會因為抗攻擊韌性不足而宣告結束。
曾經有一個立場本應該和LayerZero保持高度一致的朋友問我一個問題:“如果LayerZero想要像Way Network一樣使用零知識證明來升級他們的跨鏈協議,那難度高不高,會有什麼障礙?”這是一個令人玩味的問題,而問題的關鍵是他們不認為自己有問題。