跨链技术的分析和思考
跨鏈的類型
跨鏈交互根據所跨越的區塊鏈底層技術平臺的不同可以分為同構鏈跨鏈和異構鏈跨鏈:同構鏈之間安全機制、共識算法、網絡拓撲、區塊生成驗證邏輯都一致,它們之間的跨鏈交互相對簡單。而異構鏈的跨鏈交互相對復雜,比如比特幣采用PoW算法而聯盟鏈Fabric采用傳統確定性共識算法,其區塊的組成形式和確定性保證機制均有很大不同,直接跨鏈交互機制不易設計。異構鏈之間的跨鏈交互一般需要第三方輔助服務輔助跨鏈交互。
主流跨鏈機制概述
截至目前,主流的區塊鏈跨鏈技術方案按照其具體的實現方式主要分為三大類,分別是公證人機制、側鏈/中繼和哈希鎖定:
下面就這幾種跨鏈方式的典型實現方式進行詳細分析:
典型跨鏈機制實現分析
公證人機制
最傳統的公證人機制是基于中心化交易所得跨鏈資產交換,這種跨鏈的方式比較單一,只支持資產的交換,如下圖演示了Alice通過交易所,用比特幣和Bob交換ETH的過程。
至此完成了Alice和Bob的BTC和ETH的交換(案例中省去了交易所的服務費)。通過該例子可以看出交易所的方式目前僅能夠支持資產的交換,且資產交換的原子性、安全性完全由中心化的交易所保障存在較大的中心化風險。
除此之外還有一種著名的分布式賬本技術Ripple,也是采用類似公證人的機制來解決全球金融機構之間的資產交換。Ripple的系統架構如上圖所示,Ripple系統中交易通過網絡中的驗證者進行交易的驗證,驗證者驗證的交易通過加密算法保護交易內容不能被驗證著窺探從而保證交易的隱私性。
公證人機制的跨鏈技術實現簡單,且能夠比較靈活地支持不同類型的底層區塊鏈體系。公證人機制的主要問題在于公證人機制的安全性保障完全由公證人系統保障。參與跨鏈的相關方需要對中間人給予較大的信任。
哈希鎖定
哈希時間鎖定(HTLC)最早出現在比特幣的閃電網絡,跨鏈資產交換支持一定數量的A鏈資產和一定數量的B鏈資產進行原子交換。哈希時間鎖定巧妙地采用了哈希鎖和時間鎖,迫使資產的接收方在deadline內確定收款并產生一種收款證明給打款人,否則資產會歸還給打款人。收款證明能夠被付款人用來獲取接收人區塊鏈上的等量價值的數量資產或觸發其他事件。
如下圖所示,我們用一個例子來闡述如何使用哈希時間鎖定進行跨鏈的原子資產交換,假設Alice和Bob有資產交換的需求,Alice想用1個BTC和Bob換20個ETH. 那么首先需要在兩條鏈上設置哈希時間鎖定合約,然后執行如下步驟:
從上述的過程我們可以看出哈希時間鎖定合約有一些約束條件:
- 進行跨鏈資產交換的雙方必須能夠解析雙方的合約內部數據,例如s,例如鎖定資產的證明等;
- 哈希鎖定的超時時間設置時需要保證存在時間差,這樣在單方面作弊時另一方可以及時撤回自己的資產。
哈希鎖定的思想運用在支付領域較多,例如閃電網絡、雷電網絡以及跨鏈資產轉移協議Interledger等。但是哈希鎖定目前看只適合偏資產或者關鍵數據的交換,甚至不支持轉移因此其試用場景受限。
側鏈/中繼鏈
側鏈
側鏈是相對于主鏈而言的,最初的側鏈提出是針對比特幣做新特性的測試和研發。側鏈相對主鏈而言能夠驗證和解析主鏈中的區塊數據和賬本數據。側鏈實現的基礎技術是雙向錨定(Two-way Peg),通過雙向錨定技術可以將數字資產在主鏈上進行鎖定,同時將等價的資產在側鏈中釋放。相反當側鏈中相關資產進行鎖定時,主鏈上錨定的等價資產也可以被釋放。
BTC-Relay是號稱的史上第一個側鏈,BTC-Relay是通過以太坊構建了一個比特幣的側面,運用以太坊的智能合約允許用戶驗證比特幣的交易。這里我們仍然以Alice 1BTC和Bob的20ETH數字資產交換為例闡述相應原理:
這種跨鏈的實現方式簡單,但是BTC Relay需要額外的信任和維護成本,且智能合約內部的數據存儲會有體積膨脹的問題。但是側鏈的機制相對哈希鎖定而言能夠提供更多的跨鏈交互場景,側鏈以及類SPV驗證的思想適合所有跨鏈的場景。
中繼鏈
中繼鏈本質上算是公證人機制和側鏈機制的融合和擴展,目前社區內最活躍的兩個跨鏈項目Cosmos?和?Polkadot?采用的都是基于中繼鏈的多鏈多層架構,其中Cosmos目前支持的是跨鏈資產交互而Polkadot則宣稱提供任意類型的跨鏈交互,具體實現還有待觀察。
Cosmos
Cosmos網絡是一個多鏈混合的區塊鏈網格結構,如下圖所示,該網絡中主要包括兩種角色:
Hub: 用于處理跨鏈交互的中繼鏈;
Zone: Cosmos中的平行鏈, Cosmos中平行鏈需要具備兩個前提條件: 1. 快速確定性(fast finality), 這個特性由共識算法保障,也就是說Cosmos的跨鏈不直接支持PoW等概率確定模型的區塊鏈; 2. 強監管性(Sovereignty):每個平行鏈都具有一組驗證者能夠決定其出塊。
為了支持平行鏈之間的跨鏈互操作,Cosmos提出了一種跨鏈交互協議IBC(Inter-Blockchain Communication protocol), 并利用tendermint共識算法的即時確定性實現多個異構鏈之間的價值和數據傳輸。
首先我們以Chain A 到Chain B 轉賬10 token為例說明使用IBC的跨鏈交互: 1. 互相跟蹤,也就是說如果A要和B進行跨鏈交易,那么A和B鏈需要分別運行相當于對方區塊鏈的輕節點服務,這樣互相可以實時接收到對方的區塊頭信息(方便后續執行類SPV驗證); 2. A鏈上初始化IBC協議,凍結相關資產10 token, 并生成相應的證明發送給B區塊鏈; 3. B鏈接收到相應的IBC消息,通過A鏈的區塊頭信息確定A確實進行相應的資產凍結,然后B鏈會生成等價值10 token的資產。
以上是使用IBC協議的兩個平行鏈直接進行跨鏈的基本過程,如果區塊鏈很多,那么這種方式的兩兩跨鏈復雜度會呈現組合級別增加。因此Cosmos網絡又引入了一種Hub的中繼鏈,所有的平行鏈都通過IBC連接到Hub,讓Hub輔助跨鏈交易的驗證和轉移,目前Cosmos實現了一個官方的Hub稱為Cosmos Hub(如前圖所示)。
如下圖所示是Cosmos 網絡的詳細架構圖,Cosmos為方便平行鏈開發提供了基本服務CosmosSDK包括:共識、網絡以及IBC協議等,這樣基于Cosmos SDK開發的子鏈之間都能夠方便地互相交互。此外對于非Cosmos SDK 開發的區塊鏈需要使用Peg Zone進行橋接,如圖中的Ethereum。
筆者認為Cosmos為跨鏈帶來的最大貢獻在于IBC協議的設計,IBC協議提供了一種通用的跨鏈協議標準。IBC的設計使得跨鏈交易可以在多個Hub之間進行安全路由和轉發,類似目前互聯網的TCP/IP 協議。但是遺憾的是目前的Cosmos設計也只能夠支持資產的跨鏈,而且由于不同區塊鏈的業務不同其共識速率的不一致也會影響跨鏈交易有效性的證明。
Polkadot
Polkadot也是一種集成平行鏈和中繼鏈的多層多鏈架構,Polkadot區塊鏈的整體架構圖如下圖所示,主要包含三種角色鏈和四種參與方:
三種鏈角色:
四種參與方:
Polkadot的特性包括兩個,一個是共享安全性,一個是不需信任的跨鏈交互。這里的不需信任的跨鏈交互其實是和第一個特點共享安全性密切相關的,而且Polkadot的不需信任的跨鏈交互也主要是只其內部的平行鏈之間。
在Polkadot中如果parachain A 需要發送一筆交易到parachain B的過程如下:
以上便是Polkadot跨鏈交易的主要步驟,由于所有平行鏈的共識同步發生(中繼鏈區塊示意圖如下),因此跨鏈交易不會有諸如雙花等安全性問題。
Polkadot 的平行鏈之間的跨鏈交換的安全性保障主要來自共享安全性這個特點,共享安全性使得跨鏈交易和普通交易同步發生也就不存在其他跨鏈場景中的雙花等跨鏈數據不一致問題。其次Polkadot中的引入的特殊狀態驗證方法方便中繼鏈進行跨鏈等消息的有效性驗證。
值得一提的是Polkadot項目目前還處在項目初期,對于parachain的設計、Collator的協作以及Validator的共識、工作效率等都未完善。這種共享安全性的方式是否也限制了平行鏈自身的性能都還有待考證。
關于跨鏈技術的幾點思考
綜合以上的一些主流跨鏈場景和方案的分析,從跨鏈的概念以及需求上看跨鏈的本質其實就是?如何將A鏈上的消息M安全可信地轉移到B鏈并在B鏈上產生預期效果。那么一個成功的跨鏈交互到底需要解決哪些問題呢?筆者認為主要有以下四個問題:
那么針對這些關鍵本質問題,如何去處理呢?筆者設想未來的區塊鏈應該在底層平臺的設計之初就需要遵循統一的跨鏈協議標準,就像現在的操作系統對TCP/IP協議的支持一樣。需要進行通用跨鏈的區塊鏈至少要支持一下功能:
消息的有效性證明,區塊鏈可能需要設計新的類似UTXO的可驗證存儲結構,方便做類SPV類驗證,否則目前的基于KV的數據存儲方式做有效性證明幾乎不可能;
跨鏈執行結果證明,和有效性證明類似,需要全新的數據結構和運行算法支持。
除此之外,跨鏈系統的設計還需要考慮系統穩定性、可擴展性以及易升級性、容錯等等,總而言之,真正的可信互聯網建設艱辛蠻長,諸君共勉!
總結
以上是生活随笔為你收集整理的跨链技术的分析和思考的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 杰里之AC69 系列 K 歌宝的混响、M
- 下一篇: Zabbix监控系统系列之十六:企业微信