隨着區塊鏈行業的蓬勃發展,多種公有鏈、私有鏈和聯盟鏈出現,由此自然而然地出現了一個問題:鏈與鏈之間如何互聯互通?本篇報告梳理了跨鏈的含義、意義和跨鏈需要解決的關鍵問題,回顧了跨鏈技術的發展歷程,分析了主要的跨鏈模式。

原文標題:《跨鏈:打破孤島,萬鏈互聯 區塊鏈技術引卷之七》
通證通研究院 × FENBUSHI DIGITAL 聯合出品
文:宋雙傑、田志遠
特別顧問:沈波、JX

跨鏈七年史:Plasma、Polkadot、Cosmos 誰與爭鋒

摘要

跨鏈是通過連接相對獨立的區塊鏈系統,實現資產、數據等的跨鏈互操作,跨鏈的主要實現形式包括跨鏈資產互換和跨鏈資產轉移。

2013 年之前,區塊鏈的發展主要集中在單一區塊鏈。2013 年以來,跨鏈技術蓬勃發展,跨鏈的幾種主要模式相繼被提出。

實現跨鏈的兩個關鍵問題分別是跨鏈交易的原子性和跨鏈交易驗證。哈希鎖定模式利用哈希鎖和時間鎖能夠保證跨鏈交易的原子性,即只有滿足一定的時間條件和哈希條件交易才能夠完成,從而實現跨鏈資產互換。對於相互獨立的兩條區塊鏈而言,爲實現跨鏈資產轉移,不得不依賴於外部第三方進行信息交互,根據第三方的工作範圍可以分爲公證人機制和中繼模式。在公證人機制下,第三方負責數據收集和交易驗證;在中繼模式下,第三方僅負責數據收集,交易驗證由目標鏈完成。

總體而言,跨鏈技術在過去幾年間得到了迅速發展,相關的項目層出不窮。

現有的跨鏈相關項目中,基於側鏈 / 中繼模式的項目佔比最高;基於哈希鎖定的閃電網絡自主網上線以來節點數量、通道數量和網絡容量不斷增長,技術可行性得到了較好的驗證;通信協議簇(通過規定一系列通信數據格式與協議規範等實現區塊鏈接入)類項目未來能否成爲主流跨鏈方案一定程度上取決於業界對於相關標準規範的接受度。

但是目前跨鏈技術尚未完全成熟和廣泛應用 , 仍有較大的提升空間。此外除了跨鏈本身的技術形態演進,跨鏈技術未來的發展也與跨鏈技術的應用模式密切相關。

風險提示:量子計算機技術突飛猛進

正文

隨着區塊鏈行業的蓬勃發展,多種公有鏈、私有鏈和聯盟鏈出現,由此自然而然地出現了一個問題:鏈與鏈之間如何互聯互通?本篇報告梳理了跨鏈的含義、意義和關鍵問題,回顧了跨鏈技術的發展歷程,分析了主要的跨鏈模式。

1 跨鏈概述

1.1 什麼是跨鏈

跨鏈(cross-chain),顧名思義,就是通過連接相對獨立的區塊鏈系統,實現資產、數據等的跨鏈互操作。

跨鏈的主要實現形式包括跨鏈資產互換和跨鏈資產轉移。

跨鏈資產互換指將一條鏈上的資產兌換成等值的另一條鏈上的資產,每條鏈上的資產總量不變。跨鏈資產互換的一個簡單例子如下:

Alice 用 1 個 BTC 交換 Bob 的 50 個 ETH,互換成功的結果應該是 Alice 的 ETH 地址收到 Bob 的 50 個 ETH,Bob 的 BTC 地址收到 Alice 的 1 個 BTC。

跨鏈資產轉移指將一條鏈上資產轉移到另一條鏈上,原鏈上的資產鎖定,另一條鏈上重新鑄造等量等值的資產,每條鏈上的資產總值發生變化,但兩條鏈的資產總值之和不變。跨鏈資產轉移的一個簡單例子如下:

Alice 將 BTC 區塊鏈上的 1 個 BTC 轉移到 ETH 區塊鏈,則 BTC 區塊鏈上的 1 個 BTC 被凍結,ETH 區塊鏈上新生成 50 個 ETH。

跨鏈七年史:Plasma、Polkadot、Cosmos 誰與爭鋒

跨鏈七年史:Plasma、Polkadot、Cosmos 誰與爭鋒

1.2 爲什麼跨鏈

突破底層公鏈性能和功能瓶頸。

隨着區塊鏈網絡的快速發展,性能逐漸成爲制約區塊鏈發展的重大瓶頸,通過將部分事務處理轉移到側鏈或鏈下能夠提升區塊鏈網絡的性能。部分功能創新也可以通過側鏈實現,從而保證主鏈的安全性。

實現跨鏈互操作。

單一的區塊鏈系統相對封閉,隨着區塊鏈技術的迅速發展,鏈與鏈之間的「互操作性」問題逐漸凸顯。跨鏈互操作的具體應用場景包括但不限於跨鏈支付結算、非中心化交易所、跨鏈信息交互等。

1.3 跨鏈發展歷程

2013 年之前,區塊鏈的發展主要集中在單一區塊鏈。2013 年以來,跨鏈技術蓬勃發展,跨鏈的幾種主要模式(公證人機制(Notary schemes)、側鏈 / 中繼(Sidechains / relays)、哈希鎖定(Hash-locking))相繼被提出。

2013 年 5 月,Tier Nolan 在 BitcoinTalk 論壇提出了「原子轉移(atomic transfers)」,原子轉移又稱原子交換(atomic swap),指構成一筆完整跨鏈交易的子交易同時發生或不發生,不存在第三種中間狀態。該方案經過改進後成爲跨鏈的一種主要模式,即哈希鎖定模式。

2014 年 10 月,BlockStream 首次明確提出側鏈的概念,錨定式側鏈(Pegged Sidechains)利用雙向錨定(two-way peg)機制,能夠實現加密資產按照某種匯率在側鏈和主鏈之間轉移。2016 年 12 月,BlockStream 進一步提出了強聯邦側鏈(Sidechains with Strong Federations),通過引入由多方控制的多重簽名地址減少延遲並提升互操作性。

2015 年 2 月,Poon 發佈了閃電網絡(Lightning Network)白皮書,基於哈希鎖定實現資產 BTC 鏈下交易。

2015 年 10 月,Interledger Protocol 白皮書發佈,基於公證人機制實現不同賬本間資產的轉換。

2016 年 5 月,BTC Relay 基於中繼實現 BTC 到 ETH 的單向跨鏈連接。

2017 年,Polkadot 和 Cosmos 提出跨鏈基礎設施中繼平臺方案。

跨鏈七年史:Plasma、Polkadot、Cosmos 誰與爭鋒

1.4 跨鏈關鍵問題

實現跨鏈的兩個關鍵問題分別是跨鏈交易的原子性和跨鏈交易驗證。

通過保證跨鏈交易的原子性能夠實現跨鏈資產互換,具體實踐中主要依靠哈希鎖定實現。跨鏈資產轉移還需要進行跨鏈交易驗證。

跨鏈七年史:Plasma、Polkadot、Cosmos 誰與爭鋒

跨鏈交易的原子性是指跨鏈交易要麼成功,要麼失敗,不存在第三種中間狀態。

一個完整的跨鏈交易由多個子交易構成,子交易分別發生在不同的區塊鏈系統中,彼此相互獨立,跨鏈交易的原子性要求保證一筆子交易成功後,後續的子交易也能夠成功,或者後續的子交易失敗,前面的子交易能夠撤回。

跨鏈交易驗證指對另一條鏈的交易進行驗證。

驗證包括兩個方面,一是交易已經被寫入賬本並且滿足最終確定性,二是進行跨鏈數據傳遞,一條鏈能夠驗證另一條鏈的交易狀態。

2 跨鏈的主要模式

通過哈希鎖定能夠保證跨鏈交易的原子性,對於相互獨立的兩條區塊鏈而言,爲實現跨鏈交易驗證不得不依賴於外部第三方進行信息交互,根據第三方的工作範圍可以分爲公證人機制和中繼模式。

在公證人機制下,第三方負責數據收集和交易驗證。

在中繼模式下,第三方僅負責數據收集,交易驗證由目標鏈完成。

2.1 哈希鎖定:跨鏈資產互換

2.1.1 提出背景

哈希鎖定源於原子交換,最早的應用是 BTC 的閃電網絡,閃電網絡提供了可擴展的微支付通道,通過將部分交易轉移到鏈下進行解決區塊鏈網絡的交易擁堵問題。

2.1.2 基本思路

簡單而言,哈希鎖定模式利用哈希鎖和時間鎖保障跨鏈交易的原子性,即只有滿足一定的時間條件和哈希條件交易才能夠完成。HTLC (Hashed Time-Lock Contract,哈希時間鎖協議)是原子互換協議的具體實現。

哈希鎖:Alice 對密鑰 a 進行哈希運算得到 H (a),並將函數 H 和 H (a)告訴 Bob,Bob 利用 H 和 H (a)驗證 Alice 提供的密鑰的正確性。

時間鎖:以 BTC 系統爲例,BTC 時間鎖的實現方式有兩種,一種是絕對鎖定,即回撤交易在某個時間範圍內不生效,另一種是相對鎖定,即相對某個時間或事件鎖定交易。

HTLA (Hashed Time-Lock Agreements,哈希時間鎖定合約)是 HTLC 的泛化協定,由 Interledger 提出。在該協定下,任何中心化或非中心化賬本無論能否支持 HTLC,均可利用 HTLA 實現跨鏈資產互換。

2.1.3 案例:閃電網絡

閃電網絡針對 BTC 網絡提出,其主網已於 2018 年 3 月 15 日上線。2018 年 3 月 20 日,閃電網絡受到 DDOS 攻擊,200 多個節點被攻擊下線。閃電網絡主網上線以來節點數量、通道數量和網絡容量不斷增長,根據 BitcoinVisuals 數據,截至 2019 年 4 月 24 日,閃電網絡節點數量超過 4200 個,通道數量超過 38000 個,網絡容量約爲 575 萬美元。

閃電網絡的兩種主要協議分別是 RSMC (Revocable Sequence Maturity Contract,序列到期可撤銷合約)和 HTLC (Hashed Time-Lock Contract,哈希時間鎖協議)。RSMC 的作用是鼓勵交易雙方儘可能久的利用通道進行交易,對於主動終止通道的交易方進行懲罰,即主動終止通道的一方資金到賬時間更晚。HTLC 的存在使得交易雙方之間即便沒有支付通道,但是隻要能夠找到一條支付路徑即可實現交易。

(1)創建交易

Alice 和 Bob 通過閃電網絡轉賬,雙方各拿出 0.5 BTC,構建一筆保證金交易 FundingTx,輸出需要 Alice 和 Bob 多重簽名。此時,雙方未對 Funding Tx 簽名,交易不廣播到區塊鏈上。

Alice 和 Bob 分別構造 Commitment Tx:Alice 構造 C1a 和 RD1a,Bob 簽名後交給 Alice;Bob 構造 C1b 和 RD1b,Alice 簽名後交給 Bob。雙方均完成對 commitmentTx 的簽名並交換後,再對 FundingTx 進行簽名。

C1a 的第一個輸出需要 Alice 的另一把私鑰 Alice2 和 Bob 的多重簽名,第二個輸出爲給 Bob 0.5 BTC。RD1a 爲 C1a 第一個輸出的花費交易,輸出給 Alice 0.5 BTC,此類型交易帶有 sequence,作用是阻止當前交易進塊,只有前向交易 C1a 經過 sequence 個確認才能被打包進區塊。

由於 C1a 和 C1b 花費的是同一個輸出,故這兩個交易中只有一個能被打包進區塊。若 Alice 廣播 C1a,則 Bob 立即拿到 0.5 BTC (C1a 的第二個輸出),而 Alice 需要等 C1a 得到 sequence=1000 個確認,才能通過 RD1a 的輸出拿到 0.5 BTC。同理,若 Bob 廣播 C1b,則 Alice 立即拿到 0.5 BTC,Bob 需要等待 C1b 得到 sequence=1000 個確認,才能通過 RD1b 的輸出拿到 0.5 BTC。

跨鏈七年史:Plasma、Polkadot、Cosmos 誰與爭鋒

(2)交易更新

RSMC 更新過程如下:Alice 向 Bob 支付 0.1 BTC,雙方創建新的 CommitmentTx,即 Alice 創建 C2a 和 RD2a,Bob 創建 C2b 和 RD2b,此時需要廢棄掉無效的狀態 C1a 和 C1b。

跨鏈七年史:Plasma、Polkadot、Cosmos 誰與爭鋒

Alice 將 Alice2 的私鑰交給 Bob,表示 Alice 放棄 C1a,承認 C2a。RD1a 中 sequence 的存在使得 Bob 可以在 Alice 違約後有一定的時間實施懲罰交易,即如果 Alice 違約,Bob 能夠修改 RD1a 的輸出給自己,即形成交易 BR1a,Alice 將面臨失去全部保證金的處罰。這種機制使得雙方都會選擇刪除舊的狀態,廣播更新後的狀態。

跨鏈七年史:Plasma、Polkadot、Cosmos 誰與爭鋒

(3)交易關閉

按照最終餘額構造 Commitment TX,無需設置多重簽名和構造懲罰交易等。哈希鎖定模式實現了跨鏈的資產互換,每條鏈上的資產總量不變,只是資產持有者發生了改變,跨鏈資產轉移需要保證跨鏈交易的真實性,因此涉及到實現跨鏈交易驗證的兩種模式:公證人機制和側鏈 / 中繼模式。

2.2 公證人機制:依賴第三方驗證交易

2.2.1 提出背景

2015 年 10 月 Interledger Protocol (ILP,跨賬本協議)白皮書發佈,這一協議由 Stefan Thomas 和 Evan Schwartz 創建,其目的就是讓跨賬本交易變得更加方便,瑞波隨後引入了這一協議。之所以稱爲跨賬本而不是跨鏈,是因爲該協議不僅支持非中心化的區塊鏈賬本,還支持銀行等機構的中心化賬本,是更廣義的「跨鏈」。

2.2.2 基本思路

由一個或一組節點作爲公證人進行數據收集和交易驗證。公證人同時跟蹤兩條鏈的狀態並告知對方,交易雙方完全依賴於公證人驗證和實現交易。

依據公證人的構成和簽名方式,公證人機制具體分爲三類。公證人可以由一個或一組節點充當,由一個節點作爲公證人即爲中心化公證人機制,在由一組節點作爲公證人的情況下,根據各個節點的簽名方式不同分爲多重簽名公證人機制分佈式簽名公證人機制

中心化公證人機制:單一節點或機構充當中心化公證人。中心化公證人機制是相對比較簡單的模式,與傳統的兩個主體通過第三方間接交易類似,公證人同時兼容兩個或多個系統,其優點在於處理速度較快,技術結構相對簡單,但是這種方式的問題也很明顯,即中心化的公證人的安全風險。

多重簽名公證人機制:多個公證人在各自賬本共同簽名達成共識。這種機制弱化了中心化公證人機制的中心化問題,安全性相對更高,前提是交易鏈需要支持多重簽名功能。

分佈式簽名公證人機制:與多重簽名公證人機制的主要區別是採用了多方計算的分佈式簽名。對於跨鏈交易,系統僅產生一個密鑰,密鑰以碎片形式發送給每個公證人節點。

2.2.3 案例:Interledger Protocol

Interledger Protocol 最初是公證人機制的代表,在發展過程中融入了哈希鎖定的理念。在該協議下,處於不同賬本系統的發送者與接收者可以通過一個或多個連接者進行跨賬本交易,連接者提供轉發數據或資金的服務並收取相應的費用。通過爲跨賬本交易的參與方提供資金託管,只有在分類賬收到接收方已經收到資金的證明時,纔會將相應的資金髮給連接者,同時保證當連接者完全執行協議後將會收到來自發送者的資金。交易託管與執行分爲兩種方式,其中,「原子模式」是由參與者選出一組公證人來協調交易;「通用模式」無需公證人,通過參與者給予激勵以及反向執行指令來確保安全支付。

跨鏈七年史:Plasma、Polkadot、Cosmos 誰與爭鋒

跨鏈七年史:Plasma、Polkadot、Cosmos 誰與爭鋒

2.3 側鏈 / 中繼:目標鏈自行驗證交易

2.3.1 提出背景

2014 年 BlockStream 首次明確提出側鏈概念。2014 年 10 月,BlockStream 發佈白皮書《Enabling Blockchain Innovations with Pegged Sidechains》,首次明確提出側鏈的概念,按照白皮書中的定義,側鏈是驗證來自另一條區塊鏈的數據的區塊鏈,通過雙向錨定(two-way peg)機制,加密資產能夠按照某種匯率在側鏈和主鏈之間轉移。

側鏈提出的背景:BTC 創新與安全的權衡。一方面隨着區塊鏈技術的發展,越來越多的創新開始出現,Ethereum、Bitshares 等帶來的智能合約和非中心化應用廣受人們追捧,反觀 BTC 則需要在性能和功能等衆多方面做出提升,但是出於安全考慮,BTC 的創新一直相對保守;另一方面競爭通證和山寨通證的大量出現也引發了 BTC 核心開發團隊對於開發和市場碎片化的憂慮。側鏈(sidechain)能夠在保證主鏈安全性的條件下,實現性能和功能方面的擴展,成爲 BTC 的理想選擇。在這種情況下,Adam Back、Matt Corallo 等 BTC 核心開發者共同發起成立了 BlockSream 公司。

2.3.2 基本思路

側鏈 / 中繼模式下,目標鏈不依賴於第三方進行交易驗證,而是自行驗證來自發送鏈的數據,具體的驗證方式有所不同,如 BTC-Relay 是通過 SPV (Simple Payment Verification,簡單支付驗證)進行交易驗證,Cosmos 是通過節點簽名數量。

2.3.3 案例:BTC Relay

BTC Relay 是 ETH 上的一個智能合約,通過存儲 BTC 區塊頭驗證 BTC 交易。由於 BTC 區塊鏈的交易信息以 Merkle tree 的形式存儲在區塊頭中,BTC Relay 可以利用 SPV 機制驗證 BTC 交易。BTC Relay 的功能實現依賴於 Relayer 提交正確的區塊頭數據,及時提交正確的區塊頭數據的 Relayer 將會得到獎勵。BTC Relay 通過相對簡單的設計實現了 ETH 用戶能夠創建依賴於 BTC 區塊鏈事件的智能合約,但是 BTC Relay 只實現了 BTC 到 ETH 的單向跨鏈。

跨鏈七年史:Plasma、Polkadot、Cosmos 誰與爭鋒

2.3.4 案例:Cosmos

2016 年 6 月,Jae Kwon 提出了 Cosmos,支持各種區塊鏈接入與互操作。Cosmos 由由 Hub (樞紐)和 Zone (分區)兩部分組成,分區採用 Tendermint 共識,可以支持多種區塊鏈,同時分區數量可以擴展。分區之間通過樞紐遵照 IBC 協議(Inter Blockchain Communication Protocol,鏈間通信技術規範)進行交易,IBC 協議定義了區塊鏈註冊、數據包格式、交易類型和數據包交付確認流程等內容。

跨鏈七年史:Plasma、Polkadot、Cosmos 誰與爭鋒

Tendermint 共識過程與 BFT 類共識類似,開始時節點對新一輪的區塊進行提議,合格的提議區塊在預投票(Prevote)環節獲得 2/3 以上投票則進入預認可(Precommit)環節,再次獲得 2/3 以上的預認可後即獲得正式認可(Commit)。

跨鏈七年史:Plasma、Polkadot、Cosmos 誰與爭鋒

2.3.5 案例:Polkadot

2016 年 11 月,Polkadot 白皮書發佈,提出了一種異構的多鏈架構,支持多個高度差異化的共識系統去中心化、去信任地進行互操作和訪問。Polkadot 網絡由中繼鏈(Relay chain,負責協調鏈間的共識和交易)、平行鏈(Parachains,負責收集和處理交易)和轉接橋(Bridges,負責連接其他異構的區塊鏈)組成。

跨鏈七年史:Plasma、Polkadot、Cosmos 誰與爭鋒

網絡中的四類參與方包括驗證者(Validators,負責驗證平行鏈的數據)、收集者(Collator,負責採集平行鏈的數據並提交給驗證者)、提名者(Nominator,爲驗證者提供押金和信用背書)和漁夫(Fisherman,負責舉報和證明惡意行爲)。

跨鏈七年史:Plasma、Polkadot、Cosmos 誰與爭鋒

Polkadot 跨鏈交易信息傳輸的簡單過程如下:

(1)平行鏈 A 上的收集者收集交易並驗證交易的有效性,將交易打包進區塊;

(2)驗證者驗證其收到的只包含有效交易的區塊,並支付一定押金;

(3)在提名者爲驗證者支付了足夠的押金後,廣播該區塊到中繼鏈;

(4)驗證人對中繼鏈區塊達成共識並將平行鏈 A 的交易信息傳輸到平行鏈 B。

3 總結

總體而言,跨鏈技術在過去幾年間得到了迅速發展,相關的項目層出不窮。

現有的跨鏈相關項目中,基於側鏈 / 中繼模式的項目佔比最高;基於哈希鎖定的閃電網絡自主網上線以來節點數量、通道數量和網絡容量不斷增長,技術可行性得到了較好的驗證;除了上述的三種跨鏈主要模式,還有一類項目通過規定一系列通信數據格式與協議規範等實現區塊鏈接入,這類項目稱爲通信協議簇類項目,這類項目未來能否成爲主流跨鏈方案一定程度上取決於業界對於相關標準規範的接受度。

目前跨鏈技術尚未完全成熟和廣泛應用 , 仍有較大的提升空間。

一方面跨鏈所面臨的技術問題具有一定的複雜性,另一方面區塊鏈技術也在飛速發展,區塊鏈的類別和技術複雜度等不斷提升,導致對於跨鏈技術更迭的要求也在不斷提升。

跨鏈技術發展與跨鏈技術的應用模式密切相關。

除了跨鏈本身的技術形態演進,跨鏈未來的進一步發展也依賴於跨鏈應用模式的構建和發展,隨着區塊鏈行業應用的逐步落地和不斷豐富,對跨鏈的需求將不再侷限於交易。

跨鏈七年史:Plasma、Polkadot、Cosmos 誰與爭鋒