對話V神:區塊鏈跨鏈技術大規模應用將在一到兩年內爆發

FLy_鵬程萬里發表於2018-06-27

近日,以太坊創始人Vitalik Buterin在接受Fintech媒體採訪時表示:

不同區塊鏈之間共通的應用一定會出現。因為區塊鏈是一個開放的系統,其中的一切都是加密認證的,開發出使一個區塊鏈上發生的事件聯動另一個區塊鏈發生變化的應用其實是很容易的。

很多方法可以實現這樣的效果,比如雜湊鎖定和中繼。過去的幾年已經有很多嘗試跨鏈加密貨幣交易的實驗了。我覺得這一技術也能應用到其他領域。

目前最大的挑戰仍然是寥寥無幾的區塊鏈實際應用和使用人群,現在除了個別領域外,還沒到開始實施跨鏈應用的時機。但我覺得在一兩年內,肯定可以看到這方面應用的大規模增長。

今天我們就來深扒一下跨鏈技術。

· 壹 ·

什麼是跨鏈技術

跨鏈技術可以理解為連線各區塊鏈的橋樑,其主要應用是實現各區塊鏈之間的原子交易、資產轉換、區塊鏈內部資訊互通,或解決Oracle的問題等。

當今的區塊鏈技術紛繁蕪雜,各成一派,彼此之間無法進行價值和資料的交換。雖然很多區塊鏈擁護者聲稱區塊鏈是下一代網際網路,但是由於每個鏈都是獨立的、垂直的封閉體系,當前的“網際網路”只是由許多彼此割裂開來的區塊鏈“孤島”構成,或者說,當前的區塊鏈看起來更像是內聯網。

比如,比特幣和以太坊是基於全網共識的、蠻力解法的信任機制。這種驗證通過同步全網區塊,由每個節點來做驗證。


但是,那些採用了去中心化賬本技術的區塊鏈(DLT,Distributed Ledger Technology),如瑞波幣和IOTA,則同樣處於互相隔離的狀態。更令人難以接受的是,聲稱去中心化的區塊鏈之間的價值互換卻主要依靠中心化的交易所來完成,鏈上的資產價值不能得到合理的評估。

由於區塊鏈之間互不連通、資產價值的大幅波動大大制約了區塊鏈技術的應用和發展。所以鏈與鏈之間的互聯操作越來越被重視,跨鏈的需求就由此而來。但是,跨鏈是一個複雜的過程,既需要對鏈中節點要有單獨的驗證能力,也需要去中心化的輸入,更需要對鏈外世界的資訊進行獲取和驗證。

目前,跨鏈技術主要有三種實現模式:

  1. 公證人模式(Notary Schemes);
  2. 側鏈(Sidechains)/中繼(Relays);
  3. 雜湊鎖定(Hash-locking)。

· 貳 ·

跨鏈技術的應用

☞ 公證人模式

鏈與鏈之間互操作最簡單的方法是使用公證人模式。在公證人模式中,使用受信任的一個或者一組團體向鏈X宣告鏈Y上發生了某事件,或者確定該宣告是正確的。這些團體既可以自動地監聽和響應事件,也可以在被請求的時候進行監聽和響應事件。

公證人模式在許可分賬領域受到很多關注,因為其既可以提供靈活共識的主要競爭者,也無需進行昂貴的工作證明或關於利益機制的複雜證明。

公證人模式的代表專案有Corda。

Corda

Corda是R3聯盟推出的金融聯盟“類區塊鏈”技術架構。Corda中同樣是用交易組成賬本,但並沒有區塊,這個和傳統區塊鏈結構相比有很大不同。交易僅在參與方和公證人間傳播。公證人是交易雙方共同選擇出來的,具有高度可信的特徵。公證人負責驗證資料的有效性和資料的唯一性。

由於Corda選擇了最高安全性的公證人模式,因此在跨賬本訊息處理上,變得較為簡單:僅需選取不同賬本的交叉公證人或者強行指向同一個公證人且讓其對賬本進行同步即可安全的驗證跨賬本訊息。

☞ 中繼/側鏈模式

如果一個鏈B能擁有另外一個鏈A的所有功能,則稱鏈B為鏈A的側鏈,鏈A為鏈B的主鏈。其中主鏈A並不知道側鏈B的存在,側鏈B知道有主鏈A的存在。

假設區塊鏈擁有區塊Header和Body,Header中擁有Merkle等證明資訊,可以將鏈A的區塊鏈頭,寫入鏈B的塊中,鏈B使用和鏈A一樣的共識驗證方法,比如PoW驗證難度和長度,PBFT驗證投票等。

等待鏈A的區塊頭序列之後,鏈B就可以通過Merkle分支的證明資訊來證明鏈A的資料和操作。鏈A、B不能直接驗證對方塊的狀態,因為這樣會形成迴圈,但相互只包含輕節點是可行的,這個區塊鏈驗證的邏輯可以由鏈協議本身或應用合約實現。

上述該過程如下圖1所示。


△圖1 中繼/側鏈模式資產轉移流程


△圖2 中繼/側鏈模式下事件的傳送和接收介面

圖2中程式碼需要在使用中繼/側鏈模式的兩條鏈上同時存在,但同時需要兩條鏈上的幣或物是可以無限量發行的,這樣才可以保證驗證過程沒有錯誤,從而來達到資產轉移操作。

中繼/側鏈模式的代表專案有BTC-Relay、RootStock、Polkadot、Cosmos等。下面將依次對各專案進行介紹。

1、BTC-Relay

BTC-Relay是一種基於以太坊區塊鏈的智慧合約,把以太坊網路與比特幣網路以一種安全去中心化的方式連線起來。

BTC-Relay通過使用以太坊的智慧合約功能可以允許使用者在以太坊區塊鏈上驗證比特幣交易。BTC-Relay使用區塊Header建立一種小型版本的比特幣區塊鏈,以太坊DApp開發者可以從智慧合約向BTC-Relay進行API呼叫來驗證比特幣網路活動。

BTC-Relay進行了跨區塊鏈通訊的有意義的嘗試,開啟了不同區塊鏈交流的通道。

BTCRelay的認證過程如下圖3所示。


△圖3 BTC Relay交易認證過程

其中,BTC Relay社群成員,被稱為Relayers。所有人都可以加入以太坊網路併成為一名Relayer,並且無需花費硬體或者電力。

2、RootStock

RootStock 是一個建立在比特幣區塊鏈上的智慧合約分散式平臺。

RootStock採用了“混合”安全模式,同時包含了PoW機制和私人網路模式,基於聯合的門限簽名方案實現的安全聯合工作量證明挖礦機制。它的目標是將複雜的智慧合約實施為一個側鏈,為核心比特幣網路增加價值和功能。

RootStock實現了根鏈虛擬機器(RVM),是以太坊虛擬機器的一個改進版本,它將作為比特幣的一個側鏈,使用了一種可轉換為比特幣的代幣(根幣,RTC)作為智慧合約的“燃料”。RootStock與比特幣之間採用的是雙向錨定機制。

RootStock的交易認證過程如下圖4所示。


△圖4 RootSock交易認證過程

3、Polkadot

Polkadot是Web3基金會的跨鏈協議開源專案。由Parity團隊的Gavin Wood主導開發。Polkadot宣稱是未來Web3.0時代的基礎設施之一,是一個未來“區塊鏈網際網路”的基礎協議。

Polkadot協議強調解決當前區塊鏈技術的伸縮性和隔離性問題,以提供眾多異構區塊鏈系統之間去信任、去中心化的通用的互訪問性、互操作性為目標。

Polkadot的核心思想是區分交易方發起和執行交易的方式以及交易方統一記錄的方式。Polkadot提供基礎的中繼鏈(relay-chain),很多可驗證的、全球動態同步的資料架構都建立在這個基礎上,這些資料架構為平行鏈或者側鏈。

區塊鏈應用可以將以太坊分叉,按照各自需求調整,通過Polkadot與以太坊公有鏈連線,或者給不同的鏈設定不同的功能,實現更好的擴充套件性和效率。

Polkadot的原理圖如下圖5所示。


△圖5 Polkadot的原理圖

圖5所示流程大致如下:收集人收集並且廣播使用者的交易,也廣播候選區塊給釣魚人和驗證人。使用者提交一個交易,先轉移到平行鏈外部,然後通過中繼鏈再轉移到另一條平行鏈,成為一個可以被平行鏈上賬戶執行的交易。

4、Cosmos

Cosmos是Interchain Foundation的跨鏈開源專案。Cosmos是專注於解決跨鏈資產轉移的區塊鏈網路。

該網路主要由兩部分組成:Cosmos Hub和若干個Zone。每個Zone可以看作是單獨的區塊鏈空間。每個Zone會和Hub保持狀態同步。Hub通過去中心化的驗證人組來保證安全性,驗證人組有罰金託管機制,它是唯一的多資產中心賬本,並負責保證各類資產在不同Zone轉移的同時,資產總量不變。

Hub既是中繼鏈。Zone之間的跨鏈通訊主要是通過與Hub之間的IBC協議來實現。

Zone1向Zone2做跨鏈訊息時,Zone1先生成訊息包,並將其證明發布在Hub上,接下來Hub會生成Zone1的跨鏈訊息包已在Hub上的存在證明的證明釋出於Zone2,接下來Zone2收妥訊息包,並給出證明釋出於Hub上,最後,Hub再給出Zone2的收妥證明的證明釋出於Zone2,完成整個跨鏈訊息傳遞。

上述Cosmos的區塊鏈間通訊如下圖6所示。


△圖6 Cosmos的區塊鏈間通訊

☞ 雜湊鎖定模式

雜湊鎖定模式的設計是希望鏈A與鏈B之間儘可能少的瞭解彼此,並作為消除公證人信任的手段,該模式的基本流程如下圖7所示。


△圖7 雜湊鎖定模式流程圖

圖7所示基本流程如下:

  1. A生成隨機數S,併傳送hash(S)給B。
  2. A在鏈LA上鎖定幣,並設定條件:如果在(當前時間+2X=TA)時間內鏈LA收到S,則轉賬給B,否則退回給A。
  3. B收到hash(S),並看見A的鎖定和時間設定後,在鏈LB上鎖定幣,並設定條件:如果在TA-X時間內鏈LB收到S,則轉賬給A,否則退回給B。
  4. A看見B的鎖定後,在TA-X時間內傳送S給鏈LB,得到鏈LB的幣。
  5. B收到S後,在TA時間內傳送S到鏈LA,得到鏈LA的幣。

雜湊鎖定模式的代表專案有Interledger、閃電網路等。

1、Interledger

Interledger是由Ripple公司主導發起的跨賬本價值傳輸開放協議。Interledger不是區塊鏈,它是連線各類賬本的支付標準、統一協議。Interledger專注於跨賬本間資金流動領域。

Interledger本身並不是一個賬本,它並不尋求任何的共識。相反,它提供了一個頂層加密託管系統,在稱之為“連線者”的中介機構的幫助下,可以讓資金在各賬本之間進行流動。

此外,Interledger也沒有原生代幣,因此,操作該協議的個體賬本,仍然可以使用它們自己的原生代幣,這種互操作性解決了特定支付網路的問題。

Interledger的加密第三方與交易傳送者和接收者的關係如下圖8所示。


△圖8 Interledger的加密第三方與交易傳送者和接收者的關係

2、閃電網路

閃電網路的目的是實現安全地進行鏈下交易,其本質上是使用了雜湊時間鎖定智慧合約來安全地進行0確認交易的一種機制,通過設定巧妙的‘智慧合約’,使得使用者在閃電網路上進行未確認的交易和黃金一樣安全(或者和比特幣一樣安全)。

使用閃電網路第一步需要在使用者A和使用者B之間開啟雙向支付通道。這個通道是在主鏈之外,如下圖9所示。


△圖9 閃電網路結構圖

交易雙方在開啟閃電交易功能之前,會首先將開啟狀態所需的資料寫入主區塊鏈中建立閃電交易合約,例如鎖定期限,合約規則等資料。

當閃電網路出現故障時,將按照合約規則和舉證方的資料,在主區塊鏈上進行處理。每一個狀態通道建立,類似於一個多重簽名系統構建,保證了交易雙方守信原則,它比多重簽名多了合約的處理。

對不守信,將會在主網路受到處罰。處罰在期限內可以得到申訴,例如1000個區塊期,而這種申訴是演算法進行維護,不以人為因素為標準。

在通道內是雙方私匙簽名的區塊鏈資料流,雙方所有交易細節均在這個資料流得到體現,並以獨立鏈的形式儲存,它是證明一個通道是否合乎演算法規則。

當一個狀態通道結束後,雙方按照閃電網路輸出的最終狀態資料來兌現合約,這相當於是一個交易帳本,帳本記錄了參與方交易結果,進而實現財產重新分配。

· 叄 ·

Pallet的誕生

上文中提到的各個跨鏈專案,他們本質上還是一條鏈,其本身很難再擴充套件,不太具備通用性。他們都是用一個新鏈做跨鏈的工作,需要鏈與鏈之間進行錨定。

例如,Polkadot借鑑了很多其它專案的架構,所以他的設計和其他專案是很不一樣。但是,Polkadot是個異構的多鏈框架,一條中繼鏈連線多條平行鏈的系統。雖然可以掛接多個鏈,但是Polkadot本身還是一個鏈。

而Pallet是在做協議——多利益關聯方的共識協議,所有的鏈都可以是參與方,不需要“鏈與鏈”之間的錨定。Pallet協議和體系不產生獨立的鏈,而是採用陪審團制度隨機選取陪審員,所有的陪審員節點再去對接各底層鏈實現存證,最大化利用現有的鏈和資源。


Pallet可以將應用掛在多個鏈上,避免網路擁塞,使用者選擇性大,使得各種DApp應用可以部署在不同的鏈上,可以形成良性競爭,更多使用者可以參與。

開發者在開發應用時可以根據業務需求更靈活的選擇已有的鏈,或者方便的從已有經部署的鏈上遷移到更好、更新的鏈上,從而使已有的應用生態突破原來部署區塊鏈的自身架構侷限、效能侷限或者功能侷限。

· 肆 ·

Pallet跨鏈體系

Pallet可以水平地與不同底層區塊鏈進行對接,如下圖10所示。Pallet不對底層鏈進行完全複製,而是使用參與者機制,是一種輕量級協議。


△圖10 Pallet跨鏈體系

Pallet在區塊鏈或DLT(Distributed Ledger Technology,分散式賬本技術)之上構建了可擴充套件的“元層”,並在元層中實現“互操作”。元層就是Pallet努力實現的、互鏈層的IP協議。

Pallet根據不同應用的智慧合約選出一個陪審團,由該陪審團來驗證智慧合約的執行。Pallet將Pallet通證(Token)作為支付給陪審團的激勵。陪審團在Pallet中的角色相當於其他鏈上的礦工。

Pallet還增加了懲罰機制,普通節點想成為註冊的陪審員,需要自己的一部分資金進行抵押,如果一旦發現陪審員作惡,則Pallet將會沒收其抵押資金。

· 伍 ·

Pallet與跨鏈技術應用場景比較

Pallet作為跨鏈協議起到了將鏈與鏈連通的效果。Pallet與其他跨鏈技術在應用場景方面的是有一定的區別,具體區別如下表所示。


由於Pallet不是鏈,是通過特定的函式和庫與底層鏈溝通,所以Pallet的應用場景相對較廣,並且實現難度上也處於中等難度。

· 陸 ·

Pallet與其他跨鏈專案效能比較

由於Pallet不是一條鏈,所以其智慧合約執行機制、挖礦機制、獎勵機制和應用領域等與第二章中跨鏈專案有很大的區別,具體區別如下表所示。


第二章中的各個跨鏈專案的目標是解決特定區塊鏈之間的資訊交換,或者針對不同應用領域而設計,所以這些跨鏈專案的通用性不是很高。但是Pallet由於是協議,所以他能做到萬鏈互聯,多利益關聯方互利共贏,從而助推“價值互鏈網”的實現。

· 柒 ·

小結

現有的區塊鏈從應用、智慧合約、共同賬本、共識網路綁死,每個鍊形成了獨立的垂直的封閉體系,當一個應用綁死在一個鏈上的時候,難以採用新技術,難以帶著原有資料和資產遷移到新的鏈上。

Pallet是一個分散式的、包容的交易執行環境,而不是另一種加密貨幣。Pallet和底層區塊鏈、合約編寫語言和執行平臺都是解耦的,允許使用者同時進行鏈上和鏈下的資產交易。

因此,它可以在不同平臺的不同區塊鏈上執行不同語言編寫的智慧合約。通過利用現有的LLVM和WASM工具,可以方便地使Pallet提供安全的智慧合約執行,同時,Pallet的高效能也使合約隱私性加密成為可能。

- END -

來源 | 中關村區塊鏈產業聯盟

相關文章