跨鏈的核心在於共識能夠達成和傳遞,這是區塊鏈的基礎價值體現
作者: Lewis Liao,Zonff Partners 高級投資經理
原用標題:橫向流動性:價值如何跨鏈|ZONFF Research
封面: Photo by Vackground on Unsplash
流動性的本質是價值交換。近年來,以太坊的市場佔有率逐漸下降,越來越多的公鏈被廣泛地使用。當一個新的公鏈/ L2 生態形成的時候,用戶產生了將資產從原來的生態遷移到新的生態,以及跨鏈信息傳遞的需求,我將這些跨鏈行為稱為橫向流動性。
橫向流動性需求的產生就是人們希望可以在不同的區塊鏈之間做原本在同一個區塊鏈中可以完成的事情。那麼阻止人們這麼做的原因就是橫向流動性的阻礙,區塊鏈的價值就在於其防篡改、去信任化的特性,而這些來自於去中心化的共識,使得每一筆交易都是可信的,從而杜絕了欺騙。而跨鏈的核心就在於共識能夠達成和傳遞(即使是原子交換,也需要驗證憑證進行雙方的單點共識),這是區塊鏈的基礎價值體現。
共識的達成和傳遞要求一個區塊鏈能夠可靠地訪問另一個區塊鏈的狀態。由於每一個區塊鏈都有自己的規則、治理機制、原生資產和數據格式,區塊鏈之間的信息傳遞和資產遷移不是天然無障礙的。因此,我們需要一套系統以支撐在兩個或多個區塊鏈之間進行價值傳輸,這些價值包括資產、合約調用、證明或狀態信息。
這個系統我們常常稱之為 “橋”,橋依賴以下幾個組成部分以實現區塊鏈之間的狀態訪問:
- 狀態監控:通常有一個角色, 如"Oracle"、"Validator" 或"Relayer",負責監控源鏈上的狀態;
- 信息傳遞/轉發:在該角色接收到一個事件後,它需要將信息從源鏈傳輸到目的鏈;
- 狀態共識:在一些模型中,監控源鏈的角色之間需要達成共識,以便將該信息傳遞給目的鏈;
- 信息簽名:角色需要對發送到目的鏈的信息進行加密簽名,可以是單獨簽名,也可以是作為閾值簽名方案的一部分;
可以得知,跨鏈遷移的可靠性完全取決於以上幾個環節是如何協作的。它們需要一個驗證人來保證各個環節沒有問題,這個驗證人的選擇是橋工作方式的主要區別:有的橋使用受信任的系統,有的橋則使用去信任化的系統。
受信任的橋
這樣的橋需要用戶信任第三方機構,並且允許第三方機構持有他們的資金,這類橋最為常見的是中心化交易所的橋,如幣安橋。
這類橋樑的優點非常明顯:
- 簡單易用;
- 成本低廉,大多數交易所只收取轉賬 Gas,沒有鏈上計算的費用;
但它們的缺點也比較明顯:
- 無控制權:在價值傳輸的過程當中,用戶必須放棄對其資產的控制權;
- 功能有限:主要體現在兩方面,首先這種橋都只是用來傳遞資產,無法進行合約調用、證明或狀態信息傳遞,其次只能夠用來傳遞 CEX 上市的 Token;
- 許可與信任風險:用戶需要 KYC 才能夠使用這類橋,而且需要完全信任該橋的開發商,且需要冒著開發商隨時會中斷資產橋接的風險,如 Binance suspends dogecoin withdrawals
去信任化的橋
一切都是關於信任,去信任化意味著用戶不用擔心自己的資產被第三方控制,也意味著此類橋可以成為公共產品。
那麼什麼是去信任化呢?John Adler 和 Mikerah Quintyne - Collins 在其研究論文中解釋為,“當且僅當其狀態(即其所有狀態元素)既有效又安全時,區塊鏈系統才是去信任的。”
這裡有幾個關鍵詞,狀態、有效和安全:
- 狀態:可以理解為 “誰” 在 “任何時間” “擁有什麼”,這一切由區塊鏈記錄;
- 有效:這意味著用戶在有限的時間內能夠改變資金的狀態;
- 安全:這意味著用戶的資金不會被盜取、永遠凍結,只有擁有者才能夠改變資金的狀態;
需要注意,去信任化不是意味著完全無需信任,而是將信任最小化,這一點在任何公鏈上也是如此。一個完全無需信任的跨鏈交易是,區塊鏈 A 上的 Alice 直接向她在區塊鏈 B 上的錢包地址發送 1000 USDC,然後 Alice 在區塊鏈 B 上的錢包地址直接完成接收,就像現實世界我將鈔票從一個錢包放入另一個錢包一樣。這個過程完全無需信任,因為沒有任何第三方參與,但這是不可能的,因為不同區塊鏈直接無法直接訪問和修改對方狀態。
因此,去信任化是一個程度,不同機制的去信任化的程度是不一樣的。如果說上面完全無需信任的例子信任成本是 0,那麼受信任的橋其信任成本則為 1。去信任化的橋,其信任成本就介於 0 和 1 之間,用數學表示就是 (0, 1)。
當談到去信任化橋的時候,我們需要弄清楚的第一個問題是,“系統的驗證人是誰?”,不同的設計機制給出了不同的答案:
- 外部驗證:外部驗證器不屬於相關區塊鏈中的任何一條,由橋引入,有自己獨特的信任假設。依賴於外部驗證者或聯盟,安全性取決於外部驗證者/聯盟的安全和不同的抵押機制(下文會詳細介紹),如 Thorchain, Anyswap, Biconomy, Celer, Synapse, PolyNetwork 等等;
- 樂觀驗證:樂觀驗證依賴於外部驗證者,但通過使用誠實的觀察者來監控操作並報告欺詐行為作為驗證。其安全性取決於樂觀機制,由於攻擊者在攻擊的時候不知道欺詐行為是否會被發現,這使得攻擊者永遠無法確信自己能夠成功竊取資金,從而極大地增加了攻擊系統的經濟成本,如 Nomad;
- 本地驗證:相關區塊鏈的底層兩個驗證器互相驗證對方。依賴於流動性網絡,原子交換過程可以有效地讓每條鏈上的驗證者無法串通和竊取資金,然而流動性網絡缺乏跨鏈消息傳遞能力,會依賴於樂觀或者外部驗證橋樑以加強橋的功能,從而降低安全性,如 Connext, Hop 和其他原子交換系統;
- 原生驗證:相關區塊鏈的底層所有驗證者都負責驗證系統。有的原生驗證依賴於輕客戶端和中繼者,中繼是由 oracle 或者節點中繼器負責,中繼者將源鏈的信息傳送給目標鏈的輕客戶端,原生驗證節點將會驗證該信息的正確性並觸發相應的智能合約,因此安全性取決於中繼者,如 Stargate, Cosmos IBC, Near RainbowBridge 等等;有的原生驗證依賴於 ZKP,安全性取決於相關區塊鏈,如 Starkgate 等匯總橋。
從上面可知,從去信任化程度上來說,原生驗證> 本地驗證> 樂觀驗證> 外部驗證。
原生驗證與本地驗證的比較
原生驗證和本地驗證由於依賴於相關區塊鏈自身的驗證者,原本它們去信任化的程度是一樣的。但本地驗證由於使用原子交換的方式,不能支持鏈間的通用數據傳遞,所以往往會引入一些其他信任假設以支持更多功能,如 Hop 是本地驗證,但引入了一個快速的任意信息橋(AMB)以實現對 Optimistic Rollup 資金的快速橋接。如果給定目標鏈沒有 AMB 的存在,該協議甚至還需要依賴一個外部驗證的橋。因此,去信任化程度原生驗證> 本地驗證。
原子交換的特點是在一個狀態更新里面實現交換操作,一般包括哈希時間鎖和有條件轉讓等方式。
跨層的原子交換:第一層跨層到第二層由於是同一套賬本下進行記賬,其天然連接的性質使得他們可以輕鬆地進行有條件轉讓。有條件轉讓即操作的第一段由第二段觸發,這是一種原子交換方式,比哈希鎖(HTLCs)更直接。
此外還有第二層之間的跨層。有些人會將第二層跨層與跨鏈區分來看,實際上他們的區別少之又少。第二層跨層與跨鏈的唯一區別就是它們之前通過第一層網絡進行連接了起來,這允許它們通過有條件轉讓的方式進行通信。但這種方式費用實在是太高了,每次跨層都需要經過第一層網絡,而且還存在速度慢和擁堵問題。因此,第二層跨層往往會視為沒有連接的不同區塊鏈進行看待。
樂觀驗證與外部驗證的比較
樂觀驗證與外部驗證本質上都有一組第三方(非相關區塊鏈)節點進行驗證。除了技術細節上的諸多差異,其核心區別在於其加密經濟學:
- 外部驗證(即多重簽名、驗證器、PoS、MPC 或門限簽名)跨鏈橋利用了誠實多數假設;
- 樂觀驗證使用觀察者+ 欺詐證明模式,即一個誠實者的驗證者假設;
因此從去信任化角度,樂觀驗證所需要的信任成本大大低於外部驗證。
而在外部驗證當中,有兩種主要的經濟模式:
- 罰沒型(Bonded):惡意活動發生後,節點抵押品會被罰沒,但係統不保證補償用戶損失,如 Polygon PoS 橋;
- 削減型(Insured):惡意活動發生後,節點抵押品會被削減,削減的抵押品用於補償用戶損失,如 Axelar;
從這個角度來看,削減型的外部驗證橋,能夠相對將信任程度更小化。
去信任化橋的性能
不同的驗證機制也帶來不同的安全性、速度、連接性、資本效率和狀態性相關,這幾個因素通常會用來評估橋的設計。
- 安全性(Security):信任和有效假設、對惡意行為者的容忍度、用戶資金的安全性和反身性;
- 速度(Speed):完成交易的延遲,以及最終性保證。通常在速度和安全性之間進行權衡;
- 連接性(Connectivity):為用戶和開發人員選擇目標鏈,以及集成附加目標鏈的不同難度級別。連接性好即對公鏈的兼容程度很高,不容易受不同公鏈共識算法和數據結構差異的限制;
- 資本效率(Capital efficiency):圍繞確保系統安全所需的資本和轉移資產的交易成本的經濟學;
- 狀態性(Statefulness):轉移特定資產、更複雜狀態和/或執行跨鏈合約調用的能力;
不同的驗證方式具有不同的取捨,各有優劣。雖然將各個維度簡單相加計算總分進行比較的方式有一些缺點,但姑且如此粗略的看起來,總分 ZKP > Light Clients & Relayers > Liquidity Networks = Optimistic > External Validators & Federations。
外部驗證在狀態性和連接性方面表現出色,因為它們可以觸發事務、存儲數據並允許在任意數量的目標鏈上與該數據進行交互。通常這樣的第三方節點都需要質押機制來保障安全性,因此這類橋的資本效率是最低的。從安全性來說,由於外部驗證橋有很多類型,不同的外部驗證聯盟也具有不同的共識算法安全,因此其安全性不能一概而論,但由於信任假設和第三方機制,一旦橋被攻破,用戶可能會損失全部資金,而且會波及所有與該橋相關的應用,其安全性綜合來說是最低的。
樂觀驗證,在狀態性和連接性方面表現出色,其理由與外部驗證一樣。但由於樂觀驗證的機制,其資本效率要高於外部驗證但低於無需加密經濟機制保障的橋設計。由於驗證窗口期的存在,其速度也是最低的。從安全性來說,攻擊具有 n 個驗證者的 Optimistic 跨鏈橋的成本,等於破壞或黑掉 n 個驗證者的成本。而相對於外部驗證,攻擊具有 n 個驗證者的外部驗證跨鏈橋的成本,等於破壞或黑掉 m 個驗證者的成本,這裡 m < n 。此外,在樂觀驗證機制下,即使 n 個驗證者被黑攻擊者也不能保證竊取資金,只要有一個誠實的觀察者 “抓住欺詐” 並撤銷攻擊者對資金的訪問權限即可。因此樂觀驗證的安全性總體來說大於外部驗證者,但小於攻擊者根本無法竊取資金的本地驗證和原生驗證機制。
本地驗證(流動性網絡)在安全性和速度方面表現出色,因為使用哈希時間鎖的原子交換機制使得資金不可能被竊取,無需達成通用共識的本地驗證也大大提高了速度。它們也比保稅/保險的外部驗證者更具資本效率,因為資本效率與交易流量/交易量而非安全性相關。但由於本地驗證的系統不能支持鏈間的通用數據傳遞,其狀態性較差,這導致其往往需要引入其他技術支持才能實現更多功能,如 Hop 引入任意信息橋(AMB),Connext 與 Nomad 合作等。
原生驗證在安全性、資本效率和狀態性方面表現都非常出色,因為它依賴於底層的信任和/或域的共識機制來運作,區塊頭中繼系統可以傳遞任何類型的數據,且無需任何質押。同樣地,它也必須為每種類型的域進行定制。以太坊的生態系統是高度異質的:ZK/Optimistic Rollup、側鏈以及運行大量共識算法的基礎鏈,如 ETH-PoW、Nakamoto-PoW、Tendermint-PoS、Snowball-PoS、PoA,以及其他許多算法。這些領域中的每一個都需要一個獨特的策略來實現原生驗證的互操作性系統。從連接性上來說,使用 ZKP 的原生驗證系統則更加差一點,因為不是每一個共識模型都能夠在零知識的情況下證明。從速度上來說,ZKP 跨鏈橋有很好的低延遲屬性,也可能比常規的區塊頭中繼系統要便宜得多,因為證明共識不需要在鏈上發生。
此外,LayerZero 屬於原生驗證,其創新即使微小但也非常的重要,引入預言機以實現區塊頭按需流式傳輸(而非保留所有區塊頭,降低費用),同時由於在預言機的基礎上加上獨立的中繼系統,保證安全性。
狀態性:通用消息傳遞
通用消息傳遞就是可以在不同區塊鏈上調用任意合約。那為什麼本地驗證網絡的跨鏈方式不支持通用消息傳遞?
其實本地驗證的系統有可能實現跨域合約的調用,但前提是被調用的函數有某種形式的邏輯所有者。例如,可以去受信任化地跨鏈調用 Uniswap 的 swap 功能,因為任何擁有可交換代幣的人都可以調用 swap 功能。然而,本地驗證中不可能跨鏈去信任化地鎖定和鑄造 NFT —— 這是因為目的鏈上的 mint 函數的邏輯所有者應該是源鏈上的 lock 合約。
直觀地說,本地驗證的消息,是通過單點相互驗證的方式從鏈上的一個合約發送到另一個鏈上的相同合約進行函數調用,在一個原子交換過程內完成交易,狀態更改,因此存在調用的邏輯問題;而其他驗證方式的消息,通過多點驗證的方式將已(快)更改狀態進行傳遞,不存在調用的邏輯問題。
連接性:狀態驗證與共識達成
前文已經談到,是由於不同的鏈的不同共識算法將連接性破壞。
這一點如何理解呢?
拿轉賬舉例子,簡要的說,當一個轉賬發生的時候,此時會生成一個憑證,另一條鏈通過驗證改憑證得知這比轉賬為真,才能夠發起下一步動作。這個憑證生成的過程就是共識算法發揮作用的過程,另一條鏈需要理解該憑證(如對哈希進行驗證)就需要模擬該憑證生成的方式,這時不同的共識算法就會造成阻礙。這一點上,ZKP 的邏輯又稍有不同,雖然 ZKP 的生成算法可以採用同一種,但有些的共識模型很難通過零知識的方式進行證明。
關於橫向流動性的一點思考
橫向流動性指的就是跨鏈的互操作,以支持消息傳遞和資產轉移。目前來說,還沒有一個方案可以解決橫向流動性的三難問題(互操作性三難問題):去信任化、可擴展性和可通用性。Connext 提出的 NXTP 借鑒的以太坊第二層的思路,嘗試構建一個互操作網絡 “第二層” 來解決這個問題,我覺得這個解決方案能否有效依然有待考察。
以太坊的可擴展性三難問題中,起到榫卯結構連接點作用的是驗證,因此可以將其以驗證為榫卯拆解為執行(計算以驗證)、(驗證結果以)共識和數據可用性(以驗證),從而發展為模塊化區塊鏈。
最近有聲音在提起模塊化跨鏈橋,其嘗試將不同的跨鏈方案進行組合,用同一個接口封裝,這並沒有改變封裝下面運行邏輯的本質,該有的問題依然存在。我們需要找到跨鏈問題當中的榫卯結構,才能夠把一個複雜問題乾淨利落地拆解下來,而不會破壞原本的零件。驗證作為跨鏈的榫卯結構是行得通的,因為跨鏈本質上就是跨賬本記賬,非常核心的一點是驗證,但由於不同區塊鏈的共識機制和數據結構差異,另一個更核心的一點在於跨鏈消息識別,因為驗證的前提是需要識別這些數據信息(在 L2 中不存在識別的問題)。
那麼如何去思考跨鏈消息識別作為跨鏈的榫卯結構呢?上文提到的,
- 外部驗證,通過在不同鏈上部署自己的智能合約將跨鏈消息在外部驗證聯盟中消化,因此我們要相信這個外部驗證聯盟,無法達到去信任化;
- 本地驗證,消息傳遞作為一個邏輯結構的形式(原子交換)寫在合約當中,這直接導致了它較低的連接性和極低的狀態性,它只能傳遞一個交換邏輯,而無法傳遞通用的賬本變更類的消息,無法達到可通用性;
- 原生驗證,消息以原來的數據結構直接進行傳遞,到達目標區塊鏈,再將以原區塊鏈數據結構存儲的數據進行解構、計算和驗證。這要求中間有代碼化的介質能夠將兩個區塊鏈的數據結構進行理解和轉譯。不同的共識算法給這項工作帶來了不少挑戰,即使是作為驗證 “萬金油” 的 ZKP 也在這裡遇到轉譯的問題,因此原生驗證很難做到可擴展性;
目前我能想到的解決路徑大概有兩條:
一是支持通用共識算法的 ZKP 算法出現;
二是通過非中間共識的方式搭建一個消息識別中間件;
文中提及項目,均不構成任何投資建議;歡迎關注文章作者個人公眾號:bubais_data,作者將不定期分享投資感悟與行業認知
免責聲明:作為區塊鏈信息平台,本站所發布文章僅代表作者及嘉賓個人觀點,與 Web3Caff 立場無關。文章內的信息僅供參考,均不構成任何投資建議及要約,並請您遵守所在國家或地區的相關法律法規。