2019 年是 Cosmos 生態起步的年份。隨著 Cosmos Hub 和 IRISnet 在 2019 年上半年上線,「跨鏈」成為該年度熱門概念之一。不過,無論是 Cosmos 最重要、也最值得期待的組件「跨鏈通訊協議 IBC」,還是另外一個巨型跨鏈項目 Polkadot,真正的交付期都在 2020 年——真正的「跨鏈」相關核心技術的發展,應該看向 2020 年。
鏈聞向讀者介紹由總部位于紐約的加密資產研究機構 Digital Asset Research 撰寫的關于「區塊鏈互操作性」的專題研究報告,幫助讀者更好理解「跨鏈」這個復雜的技術領域,迎接 2020 年的到來。
隨著 Cosmos 在 2019 年上半年上線,以及市場對計劃在 2020 年上線的 Polkadot 的密切關注,「跨鏈」或者「區塊鏈互操作性」是一個熱門的領域。區塊鏈互操作性現在是一個討論挺多,但是同時又有些令人費解、有點神秘的話題。簡單來說,「互操作性」源于一個簡單的前提,那就是開發出共兩個區塊鏈交換信息的方式。時至今日,這個領域的技術非常復雜。
為了說清楚區塊鏈互操作性,我們撰寫了本篇文章,目的是對通過中介網絡實現互操作性的主要方法做一個概述。這篇文章探討「互操作性」和「可組合性」在以太坊、Cosmos、Polkadot?(波卡鏈)等場景中的區別,以及為什么這種區別無疑會改變人們對價值創造的看法。
盡管關于「區塊鏈互操作性」的術語已在不同上下文中都有所使用,但我們只是將其定義為「交換信息的能力」,特別是當它涉及到從一個加密貨幣網絡到另一個加密貨幣網絡的各類資產的所有權時。
根據定義,所有區塊鏈共享一個公共的數據結構來組織和達成所有權變更的共識。即使區塊鏈的實現方式千差萬別,比如比特幣和以太坊就各有不同,但都會使用 Merkle 樹將事務按時間間隔(即區塊),以類似的方式鏈接起來,當這些區塊鏈接在一起時,就形成了完整的事務歷史——區塊鏈。盡管在過去五年里,「區塊鏈」這個詞已經變成了一個語義上的噩夢,但它的詞源和技術本質仍然與比特幣、以太坊和大多數介乎二者之間的加密貨幣網絡相同。
然而,盡管有這些相似之處,以太坊智能合約并沒有可靠的機制來驗證比特幣事務是否得到充分確認,反之亦然。因此,我們今天存在大量的區塊鏈網絡,盡管基礎上說,它們擁有相同的共識體系,但是由于缺乏用于傳輸這些證明的健壯的傳輸層,它們被孤立了起來。這一認識催生出后來被稱為區塊鏈互操作性的解決方案的發展,特別是在過去三年中,其復雜性級別各不相同。
如今,區塊鏈互操作性這個術語被用來描述一套同時進行、但又完全不同的技術;從去中心化交易所到聯合側鏈?(federated sidechains),再到像 Cosmos 和 Polkadot 這樣的中介網絡。這導致了人們對什么是區塊鏈互操作性,以及如何實現互操作性,理解起來非常含混不清。
2017 年底出現了數十個項目,它們利用了這個術語的復雜性,推出了與在不同加密貨幣網絡之間橋接信息壓根無關的解決方案和代幣,這令局面更加混亂。
在 DAR,我們推出了「互操作性中介指數」(Interoperability Intermediary Index, DII)?希望更好地追蹤跨鏈類項目代幣的表現,比較這類投資主題標的的估值情況。該指數顯示,在 2017 年的投機泡沫之后,互操作性解決方案的代幣,包括 ICX、AION、WAN 和 ATOM 的價格大幅下降:
藍色為智能合約平臺指數,紅色為互操作性中介指數
除了幾乎所有「互操作性中介指數」成分代幣都面臨一些自身的問題之外,我們也將這種走勢下滑歸結于幾個原因:互操作性作為一個主題,其復雜性與日俱增;這種技術缺乏相關用例;以及在 2018 年熊市期間對代幣化解決方案的懷疑不斷增加。
盡管代幣化互操作性解決方案的價格表現令人失望,這降低了主流對該技術的整體興趣,但隨著行業的成熟,我們仍會繼續將互操作性視為重要的發展方向。關于跨鏈的投資主題的核心是:當不同的資產和應用程序被視為一個整體向前發展時,通過加密貨幣網絡交換信息和資產的能力,將使市場的力量可以更有效地發揮作用。
盡管加密貨幣市場通常是集成的,但是大多數去中心化應用程序缺乏有意義的用途,再加上難以理解的技術被人無休止的炒作,這最終會對市場效率造成障礙。我們相信,不斷增強的連通性,尤其是比特幣和以太坊之間的連通性,可以增加有用的應用程序的使用量,讓「霧件」(Vaporware,指由開發者在產品開發期間或者之前公布消息,而因此可能不會發布的產品,多數是指某些軟件)更容易被發現。本質上,互操作性可以作為項目成功與否的催化劑,我們將其視為值得追求的自由市場的基元。
我們認為,以下潛在的好處促使開發人員和研究人員開始探索區塊鏈互操作性:
市場效率
上文已經描述關于 DApp 的「無形之手」。用戶和開發人員能夠跨區塊鏈選擇特定的應用程序,并讓市場效率挑戰所有已部署應用程序的產品市場適應性。
可伸縮性
互操作性使得價值的傳遞能夠跨多個網絡并行化,而不是使用一個單一的區塊鏈來處理和存儲單個線程上的所有事務。智能合約的計算也可以并行化,從而增加某些應用程序的潛在功能。
功能專業化
將服務、去中心化應用程序或金融產品的功能外包,或交給到高度專業化的網絡的能力。
跨鏈預言機和身份體系
跨區塊鏈驗證事件和身份的能力,以及一個區塊鏈中的事件觸發位于不同區塊鏈中的合約執行的能力。
資產留置
一個區塊鏈中的合約在另一個鏈中保證或擔保余額的能力。這些余額之后可以被合約用作金融衍生品、杠桿產品、破產收回、留置權以及任何可能需要抵押或保證金的用例的抵押品。
Generalized Mining 與治理
互操作性可以使一個網絡的利益相關者參與不同網絡的事務驗證和治理。類似地,它使利益相關者能夠作為權益池進行操作,并在利用該機制的網絡上戰略性地部署其權益。
實現區塊鏈互操作性的多種方法
雖然區塊鏈互操作性似乎是這個行業所能提供的最尖端的「元」主題之一,但這個概念本身和比特幣差不多是前后腳問世的。
事實上,在并行運行的多個區塊鏈之間橋接信息的想法(即側鏈的概念)可以追溯到 2010 年,當時提出了?BitDNS,即基于比特幣的域名服務(該數據庫將人類可讀的 URL 轉換為數字 IP 地址)。盡管 BitDNS 從未在比特幣中實現過,但它開啟了區塊鏈互操作性的初步討論,并在接下來的幾年中催生了側鏈的潛在用例。
如今,在引入側鏈概念九年之后,促進區塊鏈互操作性的可用實現仍然處于起步階段。從我們的角度來看,目前的區塊鏈互操作性可以分為四個大類:
分別為:側鏈 /Relayer、鏈下原子互換、鏈上原子互換、網絡間互操作性
雖然上面圖中描述的四種非常通用的方法都有各自的特點,但是最終的目標是相同的:從一個區塊鏈鏈中獲取資產 / 信息,驗證它的存在和一些先決條件(例如時間鎖),然后在另一個鏈中「合成地」重構它。
如果你以前讀過關于區塊鏈互操作性的內容,那么你可能已經看到過原子?(atomic)?這個詞的使用,比如原子交換。在區塊鏈互操作性的上下文中,這個術語要么被用來描述資產交換(例如 swap)的所有底層操作將確定會成功執行,要么則說的是根本沒有發生任何操作。在沒有第三方的情況下,原子性是必需的,因為如果交換的一方失敗而另一方成功,則其中一方將受到不對等的損害。
無需信任和非托管系統尤其難以開發,因為它們需要設計一個單一的系統來滿足完全不同的區塊鏈,比如比特幣和以太坊。這意味著必須對具體的數據結構、數字簽名和共識最終性進行翻譯和概括,而這并非易事。這導致了幾個互操作性中介體的創建,它們解決這個問題的方法是建立一個代幣化的獨立區塊鏈,擁有自己的共識引擎和智能合約功能,從而橋接跨區塊鏈的資產流。
為了更好地理解通過中介實現互操作性,可以考慮以下假設場景:Alice 將部分儲蓄以比特幣的形式存儲,希望從運行在以太坊網絡之上的銀行那里獲得貸款。為了評估這筆貸款的風險,銀行需要審計 Alice 的財務記錄,并持有抵押品,以防她沒能按期償付。通過一個互操作中介體,銀行在比特幣上創建了一個智能合約(多重簽名),在貸款期間可有效鎖定 Alice 的抵押品。在中介體的幫助下,該合約可用編程方式將抵押品返還給 Alice,或者在她未能及時償付的情況下將抵押品轉移到銀行。通過這種方式,Alice 可以選擇用哪個網絡存儲她的抵押品,但仍然可以從其他網絡提供的服務中獲益。
在 2016 年那會兒,人們認為使用中介體來中繼跨鏈通信,可以簡化許多阻礙完全互操作區塊鏈的摩擦。由于不同的網絡需要不同的確認時間(對于有技術上有點悟性的人來說,這就是經濟最終性閾值),所以人們認為,中介體的存在可以使加密貨幣網絡之間的信息流動更簡單,而且在重整?(reorgs)?或共識失敗的情況下可能更安全。
盡管從更高階的角度來看這一點沒錯,但是在過去的幾年來,事實證明,添加的中介層在構建和保護方面極具挑戰性。
可組合性 vs. 互操作性
隨著互操作性中介體發展成為成熟的智能合約平臺,它們開始在共識引擎、虛擬機和網絡協議中面臨與以太坊等項目同樣的實現挑戰。
由于互操作性中介層和智能合約平臺之間的界限隨著實現問題的出現而變得模糊,因此必須對「互操作性」和「可組合性」做出明確的區分,才能有效評估當前連接區塊鏈的方法。雖然這些術語經常可以互換使用,但總結一下它們之間的差異無疑會改變人們對價值創造的看法,特別是在以太坊、Cosmos 和 Polkadot 等智能合約網絡環境下。
簡單來說,「可組合性」(composability)是在單一環境中、根據特定需求定義(和更改)應用程序的能力。例如,在云計算中,可組合性是 IT 基礎設施的一種流行方法,因為它使得開發人員能在其應用程序發展時選擇和擴展云服務。通過 AWS 這樣的平臺,系統管理員不需要本地獲取、配置和維護專門的硬件來支持其業務。
相反,系統管理員可以選擇計算、存儲、網絡工具和身份解決方案作為獨立的、模塊化的服務,并根據需要在相同的環境中更改它們。可組合性是智能合約平臺的關鍵,因為它們試圖向 DApp 開發人員模仿這些類似的好處。另一方面,「互操作性」(interoperability)則類似于系統在不同環境(如 AWS 和 Azure,或比特幣和以太坊)之間獲取服務和交換信息的能力。
為了更好地了解這種差異,讓我們更仔細地觀察一下以太坊上的可組合性。
以太坊通過一個用于圖靈完備計算的單一驗證環境——以太坊虛擬機?(EVM)?來追求可組合性。通過這種做法,以太坊 DApp 至少在理論上能夠利用網絡中現有的服務,并且像 AWS 一樣,將特定的功能,例如穩定幣支付、身份解決方案、協議治理解決方案或去中心化存儲,統統外包出去。
雖然可以將其視為一種互操作性類型,但它僅限于單一環境,與橋接外生環境或加密貨幣網絡無關。因此,在這種情況下使用「互操作性」這個說法可能會產生嚴重的誤導,因為它與該術語的詞源相抵觸。相反,用「使用可組合性」來描述更合適,因為它描述了相同環境中的可互操作應用程序之間的交互。
當然,單一系統中的服務專門化是有益的,因為這使得開發人員能專注于其應用程序的核心價值主張,而不必從頭開始構建其 DApp 的所有組件。假設有個叫 dUber?(去中心化優步)的拼車應用。通過像以太坊這樣的平臺,dUber 的開發人員可以使用現有的網絡解決方案來外包位置服務、身份管理、支付技術和公司治理。
雖然這聽起來很好,但在實踐中很難執行。除了能夠擴展應用程序這一明顯的挑戰之外,以太坊上可組合性的最大障礙之一在于實用代幣模型的興起,該模型要求在取得 DApp 原生代幣所有權的情況下,才能獲得它的服務。雖然某些應用程序可能需要相應的代幣來進行治理或發揮準股權的作用,但將其簡單地用作看門人無疑會破壞以太坊上的可組合性。與能夠通過 ETH 支付各種專門服務的費用不同,應用程序、它的開發人員或用戶將不得不處理額外的摩擦。
這恢復了對去中心化交易所?(DEX)?的需求,以促進對特定代幣的程序化訪問,最終加劇了區塊鏈互操作性的噩夢。盡管有數十個項目在探索去中心化交易所業務,但絕大多數仍面臨著根本性的挑戰,比如如何降低搶先交易和合謀欺詐的風險。即使未來的 DEX 將有望解決這些問題,但在使用專門服務之前獲取代幣流動性的挑戰仍然存在。因此,需要獲得某種特定的資產才能通過應用程序獲得專業化的現狀,對以太坊的可組合性產生了負面影響。
以太坊修改過的路線圖 ETH2.0 旨在緩解其中的一些摩擦,因為它的最終目標是支持可組合的體系結構,每個特定服務或 DApp 都可以擁有自己的獨立區塊鏈或分片。區塊鏈分片是以太坊實現可伸縮性的主要方法,因為它將網絡劃分為許多獨立的分片,從而支持并行計算。如果成功實現,分片可以提高以太坊上的可伸縮性和可組合性。
在這個新的路線圖中,信標鏈將信息轉發到特定的分片,這些分片可能代表獨立的 DApp 和 / 或專門的加密資產。這可能會減少實用代幣所需要的高度功能性、程序化和流動性的去中心化交易所的需求,因為鎖定在信標鏈中的資產可以在專門的分片中以合成資產的形式創建出來。不過,以太坊的底層至少還需要幾年時間才能部署這些技術。
Polkadot:一個可組合性的解決方案
Gavin Wood?是以太坊的主要實現者,也是 Polkadot 的創始人,他是最早將去中心化應用程序高度可組合性的框架概念完整地提出來的研究人員之一。Gavin Wood 在 2016 年的 Polkadot 白皮書中引入了一個相對簡單的架構,試圖規避以太坊在圍繞分片、超級立方體模型(hypercubes)?和 Casper 的研究變得越來越復雜時所面臨的實現挑戰。作為一名活躍的以太坊開發人員,Gavin Wood 多年來在實現以太坊的重新設計和更改方面擁有第一手的經驗。
他的解決方案是通過允許相同區塊鏈的多個「迭代」(即平行鏈的方案),在彼此之間實現互操作,將 Polkadot 開發為可選方案,從而最大化可組合性。
自從引入 Polkadot 以來,我們一直密切關注著 Polkadot 和以太坊這兩個項目路線圖的演變,并且饒有興味地觀察到,隨著時間的推移,尤其是在以太坊修改了路線圖之后,Polkadot 和以太坊的總體架構是如何逐漸趨同的。
就像 Polkadot 的中繼鏈一樣,以太坊的信標鏈將充當一個樞紐,將多個分片或平行鏈連接在一起。這兩個樞紐還負責驗證事務、中繼消息,并作為隨機預言機在權益證明下選擇區塊驗證器。而 Polkadot 似乎也從以太網那里借用了許多理念。2018 年 11 月,Polkadot 發布了其旗艦共識引擎 GRANDPA 的詳細信息,當中很多內容體現了以太坊在 Casper 項目上的主要成果。
有了分片、中繼樞紐和基于 Casper 的共識,Polkadot 和以太坊的理想版本無疑是類似的。然而,盡管存在這些架構上的相似之處,Polkadot 還是從頭開始構建,以促進其可組合性。而要在以太坊現有的應用程序和代幣化服務生態系統上實現可組合性,這將需要大量的工程和協調工作。
為了最大化可組合性,Polkadot 創建了?Substrate,這是一個用于創建與 Polkadot 兼容的平行鏈的框架。通過這個框架,不必從頭構建所有的網絡和共識代碼,類似于 ERC20 代幣可以利用以太坊現有的網絡基礎設施,而不必構建自己的基礎層一樣。不同之處在于,Substrate 已經實現了大部分功能,所以在上面搭建的感覺就像每個 ERC 代幣都有自己獨立的網絡,具有獨特的功能和驗證器集。
互操作性和可組合性之間的區別在這里尤其重要,因為與普遍的看法相反,Polkadot 并不是為橋接不同的加密貨幣網絡(如比特幣和以太坊)而設計的。相反,該團隊致力于使基于 Substrate 的鏈完全可組合,但只能在它們之間互操作。
盡管他們確實計劃建立一套橋接合約,能夠將 Polkadot 連接到其他網絡,但不可否認的是,他們的主要焦點放在 Substrate 上。因此,Polkadot 將需要開發人員有機地遷移到該平臺,并開始在該平臺上構建應用程序;這是以太坊花了三年時間才實現的。
盡管像 Aragon 這樣的數據服務提供商曾考慮在 Polkadot 上建立二級網絡(最終,Aragon 選擇了 Cosmos 生態),但達到與以太坊相稱的采用率和價值積累,很可能需要很長時間。
從長遠來看,Polkadot 對可組合性的關注可能會令其獲得回報,但該項目在中短期吸引開發人員時,可能很難捍衛其估值,考慮到其 ICO 資金在 Parity 多重簽名出現漏洞后仍然處在鎖定狀態,情況更是如此。盡管如此,追蹤 Polkadot 的研究進展還是很有趣的。
Cosmos:一個互操作性的解決方案
Cosmos 在互操作性和可組合性方面采取了更務實的方法,它的堆棧基于一套現有的技術。雖然整個項目仍很復雜,但它的基礎是基于運行在?Tendermint?上的以太坊虛擬機?(EVM)?的互聯實例,即一個 pBFT 共識引擎。共識設計是通過中介機實現互操作性的最重要元素之一,Cosmos 團隊從 2014 年起就開始在 Tendermint 上工作。
盡管以太坊和 Cosmos 在關鍵實現上存在差異,比如不同的數據結構、序列化格式和數字簽名算法,鑒于 EVM 作為業界最主要的虛擬機的地位,Cosmos 選擇使用 EVM 能帶來更好的互操作性,并有利于支持基礎設施。
Tendermint 和 EVM 的簡單結合,也使 Cosmos 能夠利用現有的以太坊開發工具和開源應用的生態系統,但仍然可以通過分片來改善其可組合性、互操作性和可伸縮性。
Cosmos 軟件開發工具包?(SDK)?相當于 Polkadot 上的 Substrate 框架。與 Substrate 一樣,Cosmos SDK 的目的是通過將共識和網絡代碼標準化,促進連接到 Cosmos 樞紐的各網絡的可組合性。SDK 被設計為服務于一個生態系統,在這個生態系統中,各種開源模塊(如隱私插件或用戶身份解決方案)可以根據需要添加到應用程序中。該系統的一個必不可少的組成部分是一個應用程序安全模型,用于描述應用程序的各個模塊安全權限。
這種權限是通過對象功能?(ocaps)?實現的。簡單來說 ocaps 可以以編程方式防止惡意或有缺陷的模塊更改特定狀態,比如準備金余額或合約所有權。
我們發現,這種實現可組合性和應用程序安全性的方法非常有趣,因為在過去幾年里,以太坊上高度復雜的智能合約所具有的不可預測性,引發了大量攻擊。然而,opcaps 并不是萬能的,因為開發人員仍然需要適當地定義模塊之間的交互。
除了可組合性之外,Cosmos 還概述了其網絡將如何處理 Cosmos Hub 和外生網絡之間的互操作性。他們為解決互操作性問題提出的方案包括在 Cosmos Hub 和以太坊等外生網絡之間引入額外的中介區塊鏈,即 Peg Zone?(鏈聞注:亦被翻譯為「掛鉤分區」)。作為中介體,Peg Zone 可以為工作證明區塊鏈提供經濟最終性(即區塊的不可逆性)的概率保證。
例如,當一個事務被包含在以太坊區塊中以期橋接到 Cosmos 時,Peg Zone 在確認有效之前,會應用 100 個區塊確認作為最終性閾值。這種最終性檢查點降低了在區塊鏈重組或 51% 攻擊事件中 peg 鏈上事務被恢復的概率。這種中介體的一個明顯好處在于,它簡化了對交叉鏈資產的托管。所有 Cosmos 用戶通過一個集中的多重簽名智能合約錢包共享余額,從而促進了流動性的流入和流出。
其他項目,包括 Polkadot,也嘗試了類似的架構。最近,Loom 網絡利用了基于以太坊的側鏈 Plasma,為以太坊用戶提供類似的中介。考慮到通過中介實現互操作性被證明是件極具挑戰性的任務,我們期望這種「Peggy」的分層結構能夠成為通過中介體實現跨鏈互操作性的藍圖。
Peggy:通過中介體實現互操作性的藍圖
外部的區塊鏈和 Peg Zone 將通過兩種主要協議連接到 Cosmos 樞紐,分別是「區塊鏈間通訊協議,或跨鏈通訊協議」?(Inter-Blockchain Communication, IBC)?和「應用程序區塊鏈接口」(Application Blockchain Interface, ABCI)?協議。IBC 協議本質上是一個消息傳遞系統,追蹤所有連接區域的狀態或總余額。由于任何通信都需要驗證,Cosmos?(尤其是 Tendermint)的另一個重要方面是 ABCI 協議,它作為一個網絡套接協議運行,將 Tendermint 共識引擎與平臺上的各種應用程序連接起來,通過這個接口,可以讓應用層和底線的共識層及網絡層進行通信對話。
在 Peggy 的情況下,IBC 控制用戶資金在以太坊之間的流入和流出,而 ABCI 處理關于這些交易有效性的共識。可以通過這個示例了解該機制:Alice 在 Cosmos 中的 Ethermint Zone?(鏈聞注,即以太坊的一條代理鏈,通過它可以實現以太坊與 Cosmos 鏈的連接)有資金,并且希望向以太坊發送代幣。通過 IBC,Alice 可以將這些資金從她所在的 Zone 轉到 Peggy 的 Peg Zone。與以太坊的橢圓曲線數字簽名算法?(ECDSA)?不同,Cosmos 中的簽名是使用愛德華曲線數字簽名算法?(EdDSA)?來完成的,因此 ABCI 會將簽名翻譯成以太坊可以理解和驗證的語言。
Peggy 還依賴于中繼器網絡,由中繼器將成批的交易和隨附的翻譯簽名發送到充當保管人的以太坊智能合約。一旦發布,Cosmos 用戶就可以在以太坊網絡中進行交易。
見證人?(Witnesses)?是在以太坊上運行完整節點的 Cosmos 用戶,他們負責將以太坊中發生的狀態變化通知 Peggy。每隔 100 個區塊生成間隔,就會有目擊者證明一系列被發送回 Peggy 的以太坊事務已經終結。通過中繼器和目擊者,Cosmos 可以提供以太坊的完全雙向性。
我們懷疑這種通用模式能否在通過中介的互操作性領域得到發展,像 Peggy 這類解決方案的全面部署仍然需要時間。在這一點上,Cosmos 的 IBC 協議仍然需要改進,根據我們對 Peggy 代碼庫的了解,至少還要一年才能實現雙向性。盡管如此,Cosmos 已經接近于發布一個基于 Peggy、從以太坊到 Cosmos 的單向橋梁,觀察人們如何使用它,應該會很有意思。
責任編輯;zl
評論
查看更多