近日,以太坊創始人Vitalik Buterin在接受Fintech媒體採訪時表示:算法
不一樣區塊鏈之間共通的應用必定會出現。由於區塊鏈是一個開放的系統,其中的一切都是加密認證的,開發出使一個區塊鏈上發生的事件聯動另外一個區塊鏈發生變化的應用實際上是很容易的。不少方法能夠實現這樣的效果,好比哈希鎖定和中繼。過去的幾年已經有不少嘗試跨鏈加密貨幣交易的實驗了。我以爲這一技術也能應用到其餘領域。目前最大的挑戰仍然是寥寥無幾的區塊鏈實際應用和使用人羣,如今除了個別領域外,還沒到開始實施跨鏈應用的時機。但我以爲在一兩年內,確定能夠看到這方面應用的大規模增加。安全
跨鏈技術能夠理解爲鏈接各區塊鏈的橋樑,其主要應用是實現各區塊鏈之間的原子交易、資產轉換、區塊鏈內部信息互通,或解決Oracle的問題等。網絡
當今的區塊鏈技術紛繁蕪雜,各成一派,彼此之間沒法進行價值和數據的交換。雖然不少區塊鏈擁護者聲稱區塊鏈是下一代互聯網,可是因爲每一個鏈都是獨立的、垂直的封閉體系,當前的「互聯網」只是由許多彼此割裂開來的區塊鏈「孤島」構成,或者說,當前的區塊鏈看起來更像是內聯網。架構
好比,比特幣和以太坊是基於全網共識的、蠻力解法的信任機制。這種驗證經過同步全網區塊,由每一個節點來作驗證。可是,那些採用了去中心化帳本技術的區塊鏈(DLT,Distributed Ledger Technology),如瑞波幣和IOTA,則一樣處於互相隔離的狀態。更使人難以接受的是,聲稱去中心化的區塊鏈之間的價值互換卻主要依靠中心化的交易所來完成,鏈上的資產價值不能獲得合理的評估。併發
因爲區塊鏈之間互不連通、資產價值的大幅波動大大制約了區塊鏈技術的應用和發展。因此鏈與鏈之間的互聯操做愈來愈被重視,跨鏈的需求就由此而來。可是,跨鏈是一個複雜的過程,既須要對鏈中節點要有單獨的驗證能力,也須要去中心化的輸入,更須要對鏈外世界的信息進行獲取和驗證。目前,跨****鏈技術主要有三種實現模式:框架
1)公證人模式(Notary Schemes);分佈式
2)側鏈(Sidechains)/中繼(Relays);ide
3)哈希鎖定(Hash-locking)。函數
2.1 公證人模式工具
**鏈與鏈之間互操做最簡單的方法是使用公證人模式。**在公證人模式中,使用受信任的一個或者一組團體向鏈X聲明鏈Y上發生了某事件,或者肯定該聲明是正確的。這些團體既能夠自動地監聽和響應事件,也能夠在被請求的時候進行監聽和響應事件。
公證人模式在許可分帳領域受到不少關注,由於其既能夠提供靈活共識的主要競爭者,也無需進行昂貴的工做證實或關於利益機制的複雜證實。公證人模式的表明項目有Corda。
Corda
**Corda是R3聯盟推出的金融聯盟「類區塊鏈」技術架構。**Corda中一樣是用交易組成帳本,但並無區塊,這個和傳統區塊鏈結構相比有很大不一樣。**交易僅在參與方和公證人間傳播。**公證人是交易雙方共同選擇出來的,具備高度可信的特徵。公證人負責驗證數據的有效性和數據的惟一性。
因爲Corda選擇了最高安全性的公證人模式,所以在跨帳本消息處理上,變得較爲簡單:僅需選取不一樣帳本的交叉公證人或者強行指向同一個公證人且讓其對帳本進行同步便可安全的驗證跨帳本消息。
2.2中繼/側鏈模式
**若是一個鏈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等。下面將依次對各項目進行介紹。
BTC-Relay
BTC-Relay是一種基於以太坊區塊鏈的智能合約,把以太坊網絡與比特幣網絡以一種安全去中心化的方式鏈接起來。BTC-Relay經過使用以太坊的智能合約功能能夠容許用戶在以太坊區塊鏈上驗證比特幣交易。
BTC-Relay使用區塊Header建立一種小型版本的比特幣區塊鏈,以太坊DApp開發者能夠從智能合約向BTC-Relay進行API調用來驗證比特幣網絡活動。BTC-Relay進行了跨區塊鏈通訊的有意義的嘗試,打開了不一樣區塊鏈交流的通道。BTCRelay的認證過程以下圖3所示。
圖3 BTC Relay交易認證過程
其中,BTC Relay社區成員,被稱爲Relayers。全部人均可以加入以太坊網絡併成爲一名Relayer,而且無需花費硬件或者電力
RootStock
**RootStock 是一個創建在比特幣區塊鏈上的智能合約分佈式平臺。RootStock採用了「混合」安全模式,同時包含了PoW機制和私人網絡模式,基於聯合的門限簽名方案實現的安全聯合工做量證實挖礦機制。**它的目標是將複雜的智能合約實施爲一個側鏈,爲核心比特幣網絡增長價值和功能。
RootStock實現了根鏈虛擬機(RVM),是以太坊虛擬機的一個改進版本,它將做爲比特幣的一個側鏈,使用了一種可轉換爲比特幣的代幣(根幣,RTC)做爲智能合約的「燃料」。RootStock與比特幣之間採用的是雙向錨定機制。RootStock的交易認證過程以下圖4所示。
圖4 RootSock交易認證過程
Polkadot
**Polkadot是Web3基金會的跨鏈協議開源項目。**由Parity團隊的Gavin Wood主導開發。**Polkadot宣稱是將來Web3.0時代的基礎設施之一,是一個將來「區塊鏈互聯網」的基礎協議。**Polkadot協議強調解決當前區塊鏈技術的伸縮性和隔離性問題,以提供衆多異構區塊鏈系統之間去信任、去中心化的通用的互訪問性、互操做性爲目標。
Polkadot的核心思想是區分交易方發起和執行交易的方式以及交易方統一記錄的方式。Polkadot提供基礎的中繼鏈(relay-chain),不少可驗證的、全球動態同步的數據架構都創建在這個基礎上,這些數據架構爲平行鏈或者側鏈。區塊鏈應用能夠將以太坊分叉,按照各自需求調整,經過Polkadot與以太坊公有鏈鏈接,或者給不一樣的鏈設置不一樣的功能,實現更好的擴展性和效率。Polkadot的原理圖以下圖所示。
圖5 Polkadot的原理圖
圖5所示流程大體以下:收集人收集而且廣播用戶的交易,也廣播候選區塊給釣魚人和驗證人。用戶提交一個交易,先轉移到平行鏈外部,而後經過中繼鏈再轉移到另外一條平行鏈,成爲一個能夠被平行鏈上帳戶執行的交易。
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的區塊鏈間通訊
2.3哈希鎖定模式
哈希鎖定模式的設計是但願鏈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、閃電網絡等。
Interledger
Interledger是由Ripple公司主導發起的跨帳本價值傳輸開放協議。Interledger不是區塊鏈,它是鏈接各種帳本的支付標準、統一協議。Interledger專一於跨帳本間資金流動領域。
**Interledger自己並非一個帳本,它並不尋求任何的共識。****相反,它提供了一個頂層加密託管系統,在稱之爲「鏈接者」**的中介機構的幫助下,可讓資金在各帳本之間進行流動。此外,Interledger也沒有原生代幣,所以,操做該協議的個體帳本,仍然可使用它們本身的原生代幣,這種互操做性解決了特定支付網絡的問題。Interledger的加密第三方與交易發送者和接收者的關係以下圖8所示。
圖8 Interledger的加密第三方與交易發送者和接收者的關係
閃電網絡
閃電網絡的目的是實現安全地進行鏈下交易,其本質上是使用了哈希時間鎖定智能合約來安全地進行0確認交易的一種機制,經過設置巧妙的「智能合約」,使得用戶在閃電網絡上進行未確認的交易和黃金同樣安全(或者和比特幣同樣安全)。
使用閃電網絡第一步須要在用戶A和用戶B之間開啓雙向支付通道。這個通道是在主鏈以外,以下圖9所示。
圖9 閃電網絡結構圖
交易雙方在開啓閃電交易功能以前,會首先將開啓狀態所需的數據寫入主區塊鏈中創建閃電交易合約,例如鎖按期限,合約規則等數據。
當閃電網絡出現故障時,將按照合約規則和舉證方的數據,在主區塊鏈上進行處理。每個狀態通道創建,相似於一個多重簽名系統構建,保證了交易雙方守信原則,它比多重簽名多了合約的處理。對不守信,將會在主網絡受處處罰。處罰在期限內能夠獲得申訴,例如1000個區塊期,而這種申訴是算法進行維護,不以人爲因素爲標準。
在通道內是雙方私匙簽名的區塊鏈數據流,雙方全部交易細節均在這個數據流獲得體現,並以獨立鏈的形式存儲,它是證實一個通道是否合乎算法規則。當一個狀態通道結束後,雙方按照閃電網絡輸出的最終狀態數據來兌現合約,這至關因而一個交易賬本,賬本記錄了參與方交易結果,進而實現財產從新分配。
上文中提到的各個跨鏈項目,他們本質上仍是一條鏈,其自己很難再擴展,不太具有通用性。他們都是用一個新鏈作跨鏈的工做,須要鏈與鏈之間進行錨定。例如,Polkadot借鑑了不少其它項目的架構,因此他的設計和其餘項目是很不同。可是,Polkadot是個異構的多鏈框架,一條中繼鏈鏈接多條平行鏈的系統。雖然能夠掛接多個鏈,可是Polkadot自己仍是一個鏈。
而Pallet是在作協議——多利益關聯方的共識協議,全部的鏈均可以是參與方,不須要「鏈與鏈」之間的錨定。Pallet協議和體系不產生獨立的鏈,而是採用陪審團制度隨機選取陪審員,全部的陪審員節點再去對接各底層鏈實現存證,最大化利用現有的鏈和資源。
Pallet能夠將應用掛在多個鏈上,避免網絡擁塞,用戶選擇性大,使得各類DApp應用能夠部署在不一樣的鏈上,能夠造成良性競爭,更多用戶能夠參與,開發者在開發應用時能夠根據業務需求更靈活的選擇已有的鏈,或者方便的從已有經部署的鏈上遷移到更好、更新的鏈上,從而使已有的應用生態突破原來部署區塊鏈的自身架構侷限、性能侷限或者功能侷限。
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和底層區塊鏈、合約編寫語言和執行平臺都是解耦的,容許用戶同時進行鏈上和鏈下的資產交易。
所以,它能夠在不一樣平臺的不一樣區塊鏈上執行不一樣語言編寫的智能合約。經過利用現有的LLVM和WASM工具,能夠方便地使Pallet提供安全的智能合約執行,同時,Pallet的高性能也使合約隱私性加密成爲可能。
參考文獻
[1] 《Chain Interoperability》
[2] 《聯盟鏈的多鏈與跨鏈的思考與實現(一)》
[3] 《 區塊鏈解讀22-跨鏈技術》
[4] 《鏈接不一樣區塊鏈的跨鏈技術介紹》
[5] 《 **【彙編2】區塊鏈的跨鏈技術》
[6] 《重磅項目波卡鏈來襲,深度解析Polkadot跨鏈技術》
[7] 《Ripple發佈Interledger,欲將銀行帳本和區塊鏈鏈接到一塊兒》
[8] 上述各項目的白皮書
本文來源:區塊鏈新訊
如下是咱們的社區介紹,歡迎各類合做、交流、學習:)