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