主要結論:
跨鏈設計領域還沒有明顯的贏家。在IBC/Layer Zero之後,我們希望能看到更進一步的迭代。
我們從成本、安全性、效率三個方面比較了所有主流的跨鏈橋設計:
-
具有諷刺意味的是,中心化交易所仍然是目前的最佳選擇。
-
資產橋(Asset bridges)有非原生代幣包裝(non-native wrapping)的致命缺陷。
-
全鏈的去中心化交易所(Omnichain DEXes)**涉及中介鏈的流動性鎖定,這也意味著更多被攻擊的可能和對節點以及流動性提供者更高的補償費用。
(跳出跨鏈資產轉移,來到更通用的跨鏈通信)
-
IBC是一個更通用的跨鏈協議,它沒有外部信任的依賴假設。 IBC很安全也很高效。它唯一的缺點是部署成本很高。
-
Layer Zero是IBC的一個變種,它通過Chainlink的幫助,把IBC較高的固定部署成本轉變成了按次計費的可變成本。 Layer Zero在非高頻的使用場景中具有優勢,但是在高頻跨鏈通信的場景裡可擴展性較差。
在這種痛苦的權衡之下,我們相信跨鏈的設計會繼續迭代。在本文第四部分,我們會討論三個想法:
-
CLOBs:讓跨鏈流動性池中的資產更加高效
-
zk-SNARKs:減少鏈上的驗證成本
-
Chain level SDK integrations(鏈級別的SDK集成):移除對外部中心化“中繼者”(relayers)的依賴
這篇文章中會提及的項目:Ethereum 2.0, Cosmos, IBC, Layer Zero, Solana, Serum, Optimistic Roll-ups, StarkNet, Terra, THORChain, Osmosis, Anyswap, Wormhole, Ronin Bridge, Terra Bridge, Avalanche Bridge, Ren Bridge, Axie Infinity。
第一部分:跨鏈通信的現狀
這一部分包括:
-
當前的現實仍然是多鏈的世界
-
跨鏈基礎設施的價值和使用場景
-
跨鏈戰爭和L1戰爭之間的愛恨情仇
-
跨鏈協議的價值捕獲:為什麼它是(且應該是)瘦協議
跨鏈設計領域
在短到中期的未來,我們的世界會有更多的鏈,而不是更少:
-
技術在不斷迭代:目前仍然沒有一個最終的成熟的可擴展性技術解決方案。可擴展性的技術方案選擇仍然會繼續迭代。
-
資本仍在爭奪土地:大量的資金進入頂級的生態系統意味著土地的爭奪不會很快結束。
-
協議會想要發行L1的代幣:從實際來說,發行L1代幣誘人的經濟利益意味著成功的應用層協議有動機去發布應用專用的鏈(例如:Axie Infinity 和Ronin)。
跨鏈的互操作性是一個很重要的設計領域:
-
貨幣的互操作性(Money interoperability):對用戶來說,貨幣就是貨幣。不能互換的貨幣僅僅是商店的積分。創建互操作性能夠提升資產的價值。
-
數據的互操作性(Data interoperability):Facebook 和Google 是世界上最具價值的企業,因為它們在沒有關係的數據中捕獲到了價值。類似的數據現在被浪費在相互孤立的區塊鏈中。
-
使用場景:資格認證(credentialing)、信用評分、元宇宙中的身份、協議獎勵在另外一條鏈上的用戶。
對那些對L1戰爭感興趣的人來說,跨鏈通信領域已經和區塊鏈可擴展性深度綁定:
-
競爭性:如果跨鏈通信變得足夠絲滑,它可能會將L1抽象化。畢竟,誰會在意FACEBOOK服務器的規格呢,只要它能夠讓我們和朋友進行無界限的通信即可。在邊際上,一個更順滑的跨鏈體驗可能會有利於新興的小鍊和已經成熟的生態系統進行競爭。
-
協同性:就像聯合國和SWIFT沒有辦法脫離主權國家存在一樣,跨鏈協議的設計和規格也很大程度上依賴於L1s的設計。在當前的這種L1設計範式分離(高TPS、分片、Rollups、側鏈、應用專用鏈)的情況下,跨鏈領域最重要的參數仍然是沒法下定論的。現在說什麼都還為時過早。
投資案例
一個有價值跨鏈協議應該是一個非提取式的(non-extractive)、無狀態的、幾乎無需防禦的瘦協議,就好像互聯網的IP層一樣。在我們看來,一些通常用來建立跨鏈協議護城河的方法並不是最優的,或者它們會對跨鏈的效用有破壞性:
-
鎖定流動性→ 分散、摩擦、成本
-
統一流動性池→ 供給面大,資本效率低
-
包裝用戶資產→ 系統性金融風險
-
信任鏈下的中繼者→ 要小心中繼者跑路,壟斷和中心化
直接的影響:跨鏈基礎設施的主要投資驅動力可能是生態系統基金和具有既得利益的風險投資公司。每個鏈都可以提供跨鏈作為最基礎的功能。在這種情況下,可信的中立性成為一種罕見的美德——這是另外一個感興趣的話題,我們不在這裡展開。
因此,我們對跨鏈重要性的討論並不意味著它們代幣的投資價值比例。
第二部分:資產跨鏈—可信賴的中介
這一部分包括:
-
中心化交易所
-
資產橋
-
全鏈去中心化交易所
代幣是web3中最突出的原語之一。它們構成了最多的跨鏈使用場景。
歷史的類比:人們發現銀行可以幫助促進兩個原本孤立的主權國家之間的價值轉移。
中心化交易所
中心化交易所就像一個商業銀行,在很多國家都有貨幣儲備。如果一個人能夠使用中心化交易所,那麼它仍舊是一個簡單、直觀的跨鏈服務。
優點:
-
簡單的使用體驗
-
最小的成本——對於簡單的轉賬,大部分的交易所只收取gas fee,用戶無需進行複雜的鏈上計算。
不足:
-
需要做KYC(know your customer,比如上傳證件、進行人臉識別等)——並不是所有人都可以使用它。
-
受許可後才可以代幣才可以上市——大部分情況下,一個人只能交易或轉移在這個交易所上市的代幣。
-
對手方風險:我們並不是在信任智能合約,而是在信任幣安的IT系統和它的正直品德——雖然只是一時的。 (Binance suspends dogecoin withdrawals 幣安禁止狗狗幣的提取)
-
沒有智能合約的可組合性。
資產橋
資產橋的資產好像一張旅行者的支票(如果有人老到知道那是什麼的話),是一種在web3中被稱為wrapping(包裝?封裝?)的信貸工具。
項目案例:Wormhole, Ronin Bridge, Terra Bridge, Avalanche Bridge, Ren Bridge
它是如何工作的?
-
資產橋在每條鏈上都部署一個智能合約,然後將此條鏈的本地資產鎖定在智能合約中,憑藉橋本身的信用,通過另一條鏈的智能合約再發行一個自定義包裝(wrapped)過的資產。
-
例如:在以太坊上鎖定100個ETH,然後通過wormwhole這個智能合約,在solana上發行100個wETH。
-
理論上,這種包裝(wrapped)過的資產是依託於在另一條鏈上1:1鎖定的原生資產作為抵押的。
-
這種橋有放入白名單的鏈下驗證者。驗證者在鏈A上觀察本地資產是否已經被鎖定,然後在鏈B上發行包裝過的資產。在Wormhole這個項目中,一共有19個驗證者在被稱為“衛士”(Guardian)的網絡中,大部分的衛士都是Solana鏈上的頂級驗證者。
優點:
-
比中心化交易所更低的准入門檻——不需要KYC
-
具有智能合約的可組合性
-
因為使用包裝(wrapping),所以不需要外部的流動性鎖定
-
很少的額外GAS費用,因為大部分的計算都是在鏈下完成的
不足:
-
依賴於對聯合驗證者的信任,經常遭受攻擊或者跑路。
2022年2月,ETH-SOL的Wormwhole橋被黑了3.25億美金
2022年3月,ETH-RON橋被黑了6億美金
-
與鏈下的聯合驗證者交互引入了額外的網絡層和智能合約漏洞。
-
存在多個橋競爭的情況下,包裝資產(wETH/ETH/xyzETH是三種不同的資產)的流動性非常分散。 Wrapping(包裝)這種方式在去中心化(多個橋)和高效的流動性之間造成了很不理想的權衡。
-
包裝過的資產(例如SOL鏈上的wETH)是依賴於協議的信用發行的,這些資產長期暴露在黑客的攻擊和脫鉤的風險下,僅有有限的信用和使用場景,同時也增加了系統性金融風險。
-
能夠跨鏈的資產列表仍然是由資產橋的協議來決定的。
全鏈去中心化交易所
我們可以將商業銀行去中心化嗎?
可以的,這就是去中心化交易所專用鏈正在做的。
案例項目:THORChain, Osmosis, Anyswap
它是如何工作的?
-
全鏈交易所引入了流動性提供者為多條鏈提供本地資產的流動性。
-
全鏈交易所引入了專屬的代幣(RUNE,OSMO等等)來橋接流動性:協議進行兩次交易(ETH-RUNE-SOL,即將ETH先換成RUNE,再使用RUNE換成SOL)有利於長尾資產的進行兌換。
-
通常,全鏈交易所會部署一個專用鏈來作為交易所提供計算,雖然這不是必須的。
優點:
-
比中心化交易所更低的准入門檻——不需要KYC
-
具有智能合約的可組合性
-
統一的流動性:所有鏈的流動性池都是XXX-RUNE,即都和RUNE組成流動性。
-
例如:BNB/ETH/LUNA 在和SOL交換時,都是從RUNE-SOL池中提取流動性。
-
全部是原生資產:只要交易完成,那麼再不需要依賴於交易所是正直的這個假設。本質上,交易所是把脫鉤的風險從用戶身上轉移到了流動性提供者身上。
-
開放的資產列表:任何人都可以在交易所為一種新的資產提供流動性對。
不足:
-
沒有實時的最終性(fanality):由於存在很多條鏈都在向同一個XXX-RUNE的流動性池進行交換的可能性,所以並不能保證在提交一筆交易時一定能夠按照提交時的那個特定價格完成交易。這就導致了在退款或還原時有額外的交易摩擦。 Stargate 聲稱已經解決了這個問題。
-
這個中間的專用鍊是一個潛在的單點故障。
-
多層的費用和滑點:THOR和OSMO發行本地貨幣作為交易的一側(也就是說,所有的交易對都是THOR/XXX)。本地貨幣通常是保證這條專用鏈正常運轉的非常有必要性的一種激勵手段。
-
XXX-THORChain橋和中繼者(relayers)仍然是中心化的。
總結:這些中介橋的對比
我們不喜歡資產橋。包裝過的資產不是原生鏈的主權資產;它們是資產橋協議的非流動性借據,很容易受到攻擊。
對於那些有權限的人(滿足KYC,稅收以及有它們希望交易的資產),中心化交易所仍舊是最簡單也是最便宜選擇,它只有短暫的對手方風險。
除了中心化交易所,用戶只能使用全鏈交易所。它們都支持本地原生資產和統一的流動性。但是用戶必須支付協議的多層級費用:流動性的費用、專用鏈的驗證費用或者中繼預言機的費用、交易滑點等等。
第三部分:更通用的跨鏈——信任並檢驗
這部分包括:
-
IBC是第一個通用的跨鏈協議。它最大的創新點是:可以在本地鏈原生驗證另一條鏈上的交易——通過維護一個鏈上的輕客戶端。
-
Layer Zero試圖解決IBC最大的問題:鏈上驗證高額的GAS費用。 Layer Zero引入了ChainLink預言機,在信任、固定成本、可變成本的設計上做了一些不同的選擇。
下一個階段的跨鍊主要關注通用的跨鏈通信。這裡不難看出為什麼通用的跨鏈通信在整體上都是很有價值的:
-
隨著WEB3原語的成熟,除了普通的代幣跨鏈,更多的應用場景會用到跨鏈:NFT、遊戲、治理、身份憑證、原生的多鏈應用。
-
在全鏈去中心化交易所上建立和迭代用戶端應用時,可以作為一個基礎設施或API層。
退後一步:系統間通信的高層設計
跨鏈通信的難題有三個部分:
-
監聽和通知(有請求進來了)。
-
數據(請求什麼數據)。
-
驗證(我們可以相信這些信息嗎)。
一些細節和討論,如果你不關心技術,那麼可以略過這部分:
-
監聽和通知:一個系統必須接收到一些信號,然後再開始處理一個通信的請求。
在WEB 2,一個典型的實現方式是一段“監聽者”代碼,這意味著服務器不停地(每隔一毫秒去循環一次)去掃描它端口看看是否有新的請求。這種方式在WEB3是不可能的,因為在鏈上進行高頻的循環計算成本太高了。
在WEB 3,自運行的智能合約需要被通知有一些事情發生了。目前的解決方案都依賴於驗證每條鏈上交易的節點——“中繼者”(Relayers)。我們將會在下個部分討論它們做了什麼。
-
數據:交易的詳細數據(被稱作負載)必須在兩個系統之間進行傳遞。
在WEB 2,這個問題微不足道。谷歌可以通過互聯網給FACEBOOK發送任何數據。
在WEB 3,我們需要關注的是計算需要經濟實惠。我們很幸運,感謝這些聰明的以太坊設計,我們不需要將整個區塊都發送出去:為了描述並證明一個交易已經發生一個以太坊的區塊中,我們只需要發送整個區塊大小的不到0.1%的數據(參考: Patricia-tree)。在IBC和Layer Zero,中繼者負責發送這些數據。
-
驗證:消息接收者需要確信這些消息確實是來自於正確的消息發送者的授權。
在WEB 2,這個問題同樣簡單明了。 FACEBOOK使用已經建立的協議(像HTTPS)來驗證谷歌服務器的簽名同時解密消息。
在WEB 3,僅僅知道交易信息和它所屬的區塊XYZ(數據)是不夠的,接受消息的智能合約還需要確信區塊XYZ已經被包含在源頭區塊鏈中了。這種證實是有難度的,因為即使在這個區塊被驗證且簽名之後,重組也有可能會發生。如何處理這件事是IBC和Layer Zero最主要的區別。
IBC:中繼者+輕客戶端
IBC把以上的三個要素分離給了中繼者和輕客戶端。
工作流程
-
監控和激活+交易數據——中繼者:如之前討論的,中繼者是一組節點,它們可以在同一台物理機器上驗證兩個鏈的數據。中繼者使用便宜的雲計算能力去監測鏈A上的網絡請求。如果他們發現了鏈A→B的請求,它們就會提交一個交易到鏈B。
-
驗證——輕客戶端:IBC同樣也需要部署一個鏈上的輕客戶端(看定義)。鏈B上的智能合約可以獨立的在鏈上驗證那筆交易在源鏈上是否已經被寫入,這是IBC認可這筆交易的最後一步。
*定義——鏈上輕客戶端:是一個部署在鏈A上的應用程序,它會觀察和記錄鏈B最新的區塊頭。 (即,最長的鏈)
關鍵設計選擇的討論
-
IBC的運轉依賴於鏈下的中繼者,它們運行著鏈A和鏈B的輕客戶端。 IBC中繼者的客戶端軟件是開源和不限制使用的,所以任何人都可以成為中繼者。他們不需要在安全方面被信任,因為鏈上的智能合約會驗證所有的交易。中繼者的冗餘隻是為了服務的可用性。
-
鏈上的驗證在像ETH這種高GAS的鏈上成本會非常高,因為在ETH上的IBC協議需要不停的存儲其他鏈的新區塊頭來維持實時的驗證。
“… 在以太坊上,輕客戶端每對鏈每天要幾千萬美金的成本,” Layer Zero如是說。
-
COSMOS使用自定義鏈的設計解決了IBC的GAS問題:使IBC成為一個鏈級別的模塊。
COSMOS要求驗證者在鏈級別而不是智能合約級別維護COSMOS HUB的輕客戶端。計算成本隱含的由驗證者來承擔,而不是由特定的智能合約賬戶承擔。
Layer Zero: 中繼者+預言機
Layer Zero 相比IBC有兩個主要的不同點:
-
部署的形式:Layer Zero是IBC 智能合約形式的實現(所以它可以在EVM或SOLANA這樣的鏈上原生運行)—— 截至2022年3月,IBC 只能在COSMOS的鏈上運行。
-
替換了昂貴的輕客戶端:代替了IBC那種需要智能合約在每條鏈上同步其他鏈的區塊頭,它使用外部預言機Chainlink來驗證特定區塊在鏈上的最終寫入。
工作流程
-
監控和激活+交易數據——中繼者:和IBC一樣。
-
驗證——預言機:Layer Zero使用Chainlink這樣的去中心化預言機網絡來檢測區塊的提交。例如,Layer Zero智能合約會詢問Chainlink:“在Terra鏈上是否有默克爾樹根哈希為0xbbcc 的129634區塊在你完整版本的區塊鏈賬本中?這個區塊至少有X個子區塊。”
同時,數據部分也會溝通,
“這裡有一個Terra鏈的交易,錢包地址0x1927發送了10個LUNA給了智能合約地址0x7878。這筆交易被包含在默克爾樹根哈希為0xbbcc 的區塊中,下面這是區塊包含在內的默克爾路徑證明。”
將上面兩部分放在一起,我們就有了數據和驗證兩者來證明在另一條鏈上發生了一筆交易。
設計選擇討論
-
相較於完全在鏈上的輕客戶端,使用Chainlink犧牲了一些安全和運行時間的延遲。
-
引入了額外的協議依賴和智能合約風險
-
調用Chainlink的合約而不是檢查鏈上數據引入了額外的延遲和GAS消耗
-
這是一個固定成本和可變成本的權衡
-
輕客戶端在一些高GAS的鏈上有比較高的固定成本(無論使用與否都要實時更新),但是基本沒有隨著使用增加的可變成本。
-
隨著Chainlink網絡變得擁堵,預言機網絡有邊際遞增的按次使用成本。
鑑於兩者差異化的優勢,我們期望IBC和Layer Zero可以共存。
IBC適用於以下的使用場景:
本地環境和優化較好的經濟效益:COSMOS生態的鏈
-
低GAS的鏈:BSC, SOLANA…
-
高頻的跨鏈溝通(從而充分的分攤固定成本):可能是Polygon-Ethereum通道,或者是其他成對的鏈。
反過來說,Layer Zero非常適合將高GAS的鍊和低頻使用的鏈連接在一起。
第5部分:展望
這部分包括:
-
二層網絡的複雜性和分片區塊鏈未來會讓跨鏈通信的問題更加複雜。
-
我們對未來演變的推測:
-
CLOBs——中央限價訂單簿,提升資金使用率。
-
使用zk-SNARKs來優化鏈上驗證
-
鏈級別的SDK來實現完全去中心化
未來將有更多的複雜性
這裡我們只了解簡單的一層網絡的鏈間通信。對更複雜的鏈間互操作性的解決方案的設計仍然是一片空白,下面是一些例子。
二層網絡Roll-ups:由於二層網絡的結算層在以太坊網絡,以太網的1層網絡可能需要來證明最終性。
-
Optimistic Roll-ups:Optimistic Roll-ups最致命的缺點是有長達7天的鎖定期用來進行欺詐檢查,這可能會導致Optimistic Roll-ups單方面的互操作性的困難。
分片區塊鏈:截至2022年3月,以太坊基金會仍然沒有決定ETH2.0網絡的設計選擇。我們在觀察兩件事情:
-
以太坊基金會什麼時候會發布分片的設計選擇:數據分片,執行分片,ZK-SNARK…,以及這些設計選擇隱含著其他的一層網絡如何和以太坊網絡交互。
-
假如這些分片被設計為互相通信,以太坊2.0分片內部的通信協議是怎樣的。
我們的一些推測:
中心化限價訂單簿Central Limit Order Books (CLOBs)
類似於去中心化的自動做市商交易所相較於中心化交易所是如何提供一個更開放但更貴的市場,全鏈交易所目前最大的痛點是非常低的資金利用率。
也許全鏈交易所可以藉鑑Serum來提供中心化的限價訂單簿,在費用、最終性和延遲上提供不同的選擇。另外,如果Serum本身發展的足夠快,它自己本身也可以嘗試。
ZK-SNARKs(一種零知識證明的技術)
零知識證明的Roll-ups面臨的設計問題和跨鏈橋面臨的非常類似:
如何證明在另一條鏈上已經發生的且具有最終性的事情?
雖然我們目前沒有時間來深入探討零知識證明的數學計算,但我們會非常樂於看到零知識證明和跨鏈溝通相結合而帶來以下全部或一些特性:
-
使用時間複雜度為O(log n)的簡單計算來在目標鏈上進行驗證
-
未來在IBC輕客戶端成本和鏈上數據成本的優化
鏈級別的SDK標準化,以實現完全的去中心化
所有目前的跨鏈解決方案都包括中繼者。正如我們之前討論過的,跨鏈用例的經濟性差意味著中繼者總是生態系統中的重量級選手。他們利益一致,如果有必要,他們可能會進行勾結——在某些極端情況下會導致重大的中心化風險。
所以完全去中心化的橋在技術上是否是可實現的呢?我們相信是的:
上面綠色部分的兩個要素已經通過部署輕客戶端實現了去中心化:
輕客戶端協議的目標是允許用戶在一個低容量的環境中(嵌入式智能設備、智能手機、瀏覽器插件、一些桌面電腦等)有一個高安全性的保證,保證當前以太坊網絡某部分的狀態的準確性或是驗證某項交易。
light-client-protocol
所以我們最後需要進行去中心化的一步是監聽和通知(Monitor and Alert)。
不成熟的方案:一個不成熟的方案是需要鏈B來掃描所有鏈A的區塊來發現是否跨鏈通信的請求。但如果是以太坊來掃描solana網絡,這個方案是不可能實現的。
SDK集成:考慮一個方案:鏈A在它的每個區塊或隔幾個區塊中有一個授權的專用空間。鏈A的規則就是要求礦工們把所有的跨鏈通信請求放到那個區塊空間中去(the “networking bytes”)。
鏈B只需要去掃描這個空間來發現是否有新的請求。這個設計可以降低鏈B的掃描工作量,類似於輕客戶端比全節點要輕2500倍。 (這是因為輕客戶端只會同步非常有限的一部分元數據,如下圖)
一個區塊空間格式絕不僅是一個瘋狂的想法。 COSMOS已經把它加入了Tendermint SDK。 SOLANA也有類似的區塊空間規則,但不是為了跨鏈通信,而是為了優化並行執行,可參考SeaLevel。毫無疑問,這條路還會繼續進行優化。
牛逼!感謝你讀了這麼長一篇文章。跨鏈設計還非常年輕,空間還很大。讓我們一起關注並建設它。我們對一個完全去中心化的、沒有鯨魚的跨鏈通信協議非常興奮。
原文作者:推特@TheAntiApe
譯者:推特@0xshushu
來源:戈多Godot