国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于星火區(qū)塊鏈的跨鏈機制

2022-03-01 12:34:26謝家貴李志平
計算機應(yīng)用 2022年2期
關(guān)鍵詞:公證人主鏈星火

謝家貴,李志平,金 鍵

(中國信息通信研究院工業(yè)互聯(lián)網(wǎng)與物聯(lián)網(wǎng)研究所,北京 100191)

0 引言

區(qū)塊鏈技術(shù)是由對等(Peer-to-Peer,P2P)網(wǎng)絡(luò)、密碼學(xué)、數(shù)據(jù)庫等多種技術(shù)融合的創(chuàng)新技術(shù),本質(zhì)上是一個去中心化的分布式賬本,賬本可以在整個區(qū)塊鏈網(wǎng)絡(luò)中復(fù)制和傳播,區(qū)塊鏈中每個區(qū)塊都包含許多交易,當(dāng)區(qū)塊鏈上發(fā)生新交易時,該交易記錄就會添加到每個參與者的賬本中,由多個參與者共同管理。區(qū)塊鏈公開透明、集體維護、難以篡改等特點,使其具有較高的可信性和安全性[1-2]。

自中本聰2008 年發(fā)表《比特幣:一種點對點的電子現(xiàn)金系統(tǒng)》[3]以來,區(qū)塊鏈技術(shù)已發(fā)展十余年,從比特幣到以太坊,從最初僅用于貨幣支付到后來支持智能合約[4],從去中心化應(yīng)用程序(decentralized Application,dApp)發(fā)展到未來的Web 3.0,區(qū)塊鏈技術(shù)不斷實現(xiàn)突破,應(yīng)用場景不斷擴大。尤其是從去年開始,區(qū)塊鏈被正式納入國家發(fā)改委新基建范疇,迎來多行業(yè)場景布局和應(yīng)用加速落地新階段,各種公有鏈、聯(lián)盟鏈如雨后春筍般涌現(xiàn),呈現(xiàn)出百家爭鳴的局面[5]。中國信息通信研究院研究設(shè)計了自主可控的星火區(qū)塊鏈(以下簡稱星火鏈)。星火鏈采用許可公有區(qū)塊鏈技術(shù),可以為人、企業(yè)、設(shè)備和數(shù)字對象等提供數(shù)字身份、數(shù)字資產(chǎn)管理、公共數(shù)據(jù)服務(wù)、監(jiān)測監(jiān)管等基礎(chǔ)服務(wù)[6]。

區(qū)塊鏈的蓬勃發(fā)展有利于科技發(fā)展和人類文明的進步,但是目前發(fā)展存在一個突出問題:各個鏈都在獨立發(fā)展,形成一個個“孤島”,比如比特幣、以太坊,以及國內(nèi)的Fisco 等區(qū)塊鏈,都是在自己的生態(tài)內(nèi)獨自發(fā)展,彼此之間不能互通,無法互聯(lián)[7]。當(dāng)然從安全的角度考慮,這無可厚非,但是未來社會發(fā)展趨勢是一個萬物互聯(lián)的社會,尤其大數(shù)據(jù)、5G 技術(shù)興起后,更讓萬物互聯(lián)的觀念深入人心。如果不同區(qū)塊鏈之間始終是孤立和封閉的狀態(tài),不能實現(xiàn)數(shù)據(jù)互通,資源共享,就會阻礙它們之間的協(xié)同操作,限制區(qū)塊鏈的發(fā)揮空間,難免會給用戶造成一些不便,甚至影響區(qū)塊鏈行業(yè)的發(fā)展[8]。因此跨鏈研究勢在必行,實現(xiàn)多種公有鏈、聯(lián)盟鏈之間互聯(lián)互通,既可以打破“信息壁壘”與“價值孤島”,又有利于區(qū)塊鏈間的數(shù)據(jù)資源共享和價值轉(zhuǎn)移,實現(xiàn)數(shù)據(jù)驅(qū)動下的治理與協(xié)同,從而推動整個區(qū)塊鏈行業(yè)的發(fā)展[9]。

鑒于此,本文深入探討了跨鏈技術(shù)實現(xiàn),系統(tǒng)分析了現(xiàn)有跨鏈項目特點,并借鑒現(xiàn)有跨鏈技術(shù),設(shè)計星火鏈基于主子鏈架構(gòu)的新型跨鏈方案,實現(xiàn)用戶的跨鏈需求,進一步豐富區(qū)塊鏈跨鏈生態(tài)系統(tǒng)。

1 跨鏈技術(shù)研究現(xiàn)狀

1.1 常見跨鏈技術(shù)

不同區(qū)塊鏈間無法相互通信,使人們無法享受區(qū)塊鏈技術(shù)的全部好處。跨鏈技術(shù)的出現(xiàn),致力于通過實現(xiàn)區(qū)塊鏈之間互操作來解決這些問題,從而使不同區(qū)塊鏈之間易于相互通信并共享信息[10]。目前主流的區(qū)塊鏈跨鏈技術(shù)主要包括公證人機制、中繼機制和哈希鎖定。

1.1.1 公證人機制

公證人機制是一種最簡單實現(xiàn)跨鏈的方法[11]。如圖1所示,通過引入一個或多個可信實體作為“公證人”,在兩條區(qū)塊鏈之間完成數(shù)據(jù)收集和交易驗證[12]。在跨鏈過程中,可信實體向一條鏈聲明另一條鏈上發(fā)生了某事件,為跨鏈行為做背書。這些可信實體既可以不斷監(jiān)聽鏈上事件,達到條件后自動地作出響應(yīng);又可以在收到請求時才對某些消息進行簽名。根據(jù)公證人類型又可以分為三類:單簽名公證人機制、多簽名公證人機制、分布式簽名公證人機制。

圖1 公證人機制Fig.1 Notary mechanism

單簽名公證人機制,即中心化公證人機制,是最簡單也是最容易理解的一種模式,一般是由一個單獨的中心化節(jié)點充當(dāng)公證人,這個單獨的公證人負責(zé)所有跨鏈數(shù)據(jù)的收集驗證工作。常見的中心化交易所本質(zhì)上就是這種模式,交易所作為公證人,為不同用戶之間交易做背書。這種模式雖然簡捷高效,但是存在中心化風(fēng)險,于是就產(chǎn)生了多簽名公證人機制。

多簽名公證人機制,顧名思義,是由多個公證人組成的公證人小組,組內(nèi)每個人都有一個屬于自己的私鑰,跨鏈時需要一定數(shù)量的簽名達成共識,交易才能完成。這種方式與單簽名公證人機制比起來更加安全和穩(wěn)定,但同時存在一定局限性,需要跨鏈雙方鏈上都要支持多重簽名功能,有一定的實現(xiàn)難度。

分布式簽名公證人機制實現(xiàn)起來相對比較復(fù)雜,該機制借鑒安全多方計算的思想,基本思路是整個系統(tǒng)只產(chǎn)生一個私鑰,然后將私鑰拆散成多個碎片,并進行加密處理后隨機分配給各個公證人,公證人之間互相不知道對方的密鑰。跨鏈時只有達到一定比例的公證人簽名才能復(fù)原出完整私鑰,驗證完成跨鏈交易。這種方式更加安全,當(dāng)少數(shù)公證人遭受攻擊時,不會對系統(tǒng)穩(wěn)定性造成影響。

1.1.2 側(cè)鏈/中繼機制

側(cè)鏈是一條區(qū)塊鏈(主鏈)將另一條區(qū)塊鏈作為自身的延伸(側(cè)鏈),主鏈維護一個資產(chǎn)分類賬本,并連接到側(cè)鏈,側(cè)鏈是通過跨鏈通信協(xié)議連接到主鏈的獨立系統(tǒng)。這里側(cè)鏈不一定是次要的,兩條鏈可以成為彼此的側(cè)鏈[13]。最常見的是主鏈與側(cè)鏈之間資產(chǎn)轉(zhuǎn)移:當(dāng)用戶想從主鏈向側(cè)鏈轉(zhuǎn)移資產(chǎn)時,首先在主鏈上向一個特殊地址發(fā)送X個令牌,這些資金即被鎖定在主鏈上,同時相應(yīng)數(shù)量代幣被創(chuàng)建在側(cè)鏈上,于是完成跨鏈資產(chǎn)轉(zhuǎn)移,用戶就可以使用側(cè)鏈上的令牌。如果用戶想換回主鏈令牌,側(cè)鏈上的資產(chǎn)被鎖定或銷毀,同時將主鏈上的令牌解鎖。主側(cè)鏈的連接驗證方式一般通過簡單支付證明(Simplified Payment Verification,SPV)完成,由輕客戶端完成,只需區(qū)塊頭數(shù)據(jù)即可驗證區(qū)塊鏈上的交易,而無需完整的區(qū)塊數(shù)據(jù)。如BTC-Relayer 中的Relayer,由美國區(qū)塊鏈ConsenSys 團隊設(shè)計開發(fā)[14],被認為是區(qū)塊鏈上的第一個側(cè)鏈,通過以太坊上的智能合約讀取比特幣鏈的區(qū)塊頭并對其執(zhí)行計算。Relayer 使用SPV,僅使用區(qū)塊頭來驗證支付,事務(wù)驗證是通過對存儲的Merkle 樹進行計算來實現(xiàn)的[15]。

中繼機制是側(cè)鏈與公證人機制的一種融合。如圖2 所示,與公證人機制相比,中繼機制用中繼鏈代替原先的公證人,接管公證人的任務(wù),是一種去中心化的公證機制。中繼鏈是一條功能完備的區(qū)塊鏈,可以讀取并驗證連接到其上的區(qū)塊鏈數(shù)據(jù)信息,中繼機制可以說是一種更加直接地實現(xiàn)跨鏈的方法。中繼機制可以在不依賴可信第三方的情況下完成交易驗證,是一種更加靈活、更易于擴展的跨鏈技術(shù),實現(xiàn)形式多種多樣,如Cosmos 中的Hub、Polkadot 中的中繼鏈等都充當(dāng)中繼的角色,一些側(cè)鏈的實現(xiàn)也采用了中繼模式[16]。

圖2 中繼機制Fig.2 Relay mechanism

1.1.3 哈希鎖定

哈希鎖定最初是作為集中式交換的替代品出現(xiàn)的,支持跨鏈原子操作,即允許一個用戶向另一個用戶發(fā)送一定數(shù)量的加密貨幣,交換另一個區(qū)塊鏈上持有的加密貨幣[17]。哈希鎖定主要利用哈希鎖和時間鎖技術(shù),不需要兩條鏈之間過多交互,不需要第三方公證人存在,通過交易者承諾在超時前向另一方提供加密證明來進行交易。

如圖3 所示,假設(shè)Alice 和Bob 想要交換不同鏈上的資產(chǎn),哈希鎖定流程機制如下:

圖3 哈希鎖定Fig.3 Hash lock

1)Alice 生成一個隨機數(shù)s,計算其哈希值h=hash(s),然后將h發(fā)送給Bob。

2)Alice 將她的資產(chǎn)鎖定在一個智能合約中,并設(shè)定好解鎖條件:Bob 在規(guī)定時間T內(nèi)用猜出密鑰s,用s取走智能合約中鎖定的資金;否則資金將被退回Alice。

3)Bob 將其資產(chǎn)鎖定在另一個智能合約中,解鎖條件為:如果t≤T,Alice 可以輸入密鑰s,取走鎖定的資金;如果t>T,資金將被退回給Bob。

4)Alice 及時調(diào)用合約,提供正確的s,向Bob 兌換資產(chǎn)。

5)Bob 從Alice 處獲取s后,在剩余的時間內(nèi),從Alice 處兌換資產(chǎn)。

這個過程中,Alice 和Bob 取走資產(chǎn)的時間不確定,并且在不同鏈條上有所不同。這個過程可以說是原子級的,在Alice 采取操作后,Bob 有足夠的時間獲取資金;否則Alice 可能會拒絕輸入密鑰s,所有資金都將被退回。然而在某些情況下,比如匯率波動時,Alice 會占據(jù)有利地位,Alice 可以在時間t內(nèi)等待有利的匯率。為了緩解這種不平衡,經(jīng)常利用狀態(tài)通道來加速交換,從而削弱發(fā)起方的優(yōu)勢。在跨鏈操作的情況下,哈希鎖定只能支持原子交換,在資產(chǎn)可移植性和數(shù)據(jù)跨鏈方面還存在困難。

跨鏈的實現(xiàn)是一個相對比較復(fù)雜的過程,其本質(zhì)是將一條鏈上的消息安全可信地轉(zhuǎn)移到另一條鏈上并在該鏈上達到預(yù)期效果[18]。公證人機制、側(cè)鏈/中繼機制、哈希鎖定機制三種技術(shù)各有側(cè)重,公證人機制跨鏈方式比較簡單和單一,只支持資產(chǎn)交換;側(cè)鏈/中繼機制更加穩(wěn)定和易于擴展,可以實現(xiàn)資產(chǎn)轉(zhuǎn)移,數(shù)據(jù)交換,或者其他更加復(fù)雜的需求;哈希鎖定機制只適合偏資產(chǎn)或者關(guān)鍵數(shù)據(jù)的交換,在支付領(lǐng)域應(yīng)用較多。

在這些跨鏈技術(shù)的基礎(chǔ)上,目前已涌現(xiàn)出非常多的跨鏈項目,致力于推動區(qū)塊鏈網(wǎng)絡(luò)的發(fā)展和完善,實現(xiàn)區(qū)塊鏈互聯(lián)互通。

1.2 主流跨鏈項目

跨鏈的實現(xiàn),旨在打破數(shù)據(jù)孤島,解決價值交換,完成區(qū)塊互聯(lián),達成數(shù)據(jù)共享。近兩年來,跨鏈項目的數(shù)量呈逐年增長態(tài)勢,總體還處于探索階段,實質(zhì)性落地和成熟度較低,仍然有非常大的發(fā)展空間。本節(jié)主要介紹主流跨鏈項目Cosmos 和Polkadot。

1.2.1 Cosmos

Cosmos 是由伯克利的Tendermint 團隊為核心團隊開發(fā)的跨鏈項目,于2019 年3 月主網(wǎng)上線。Cosmos 是一個分散的獨立平行區(qū)塊鏈網(wǎng)絡(luò)[19]。該項目的目標是創(chuàng)建一個允許所有其他區(qū)塊鏈相互通信的網(wǎng)絡(luò),改善區(qū)塊鏈之間的互操作性,并以最高效,最快的方式進行通信。

Cosmos 網(wǎng)絡(luò)由應(yīng)用層、共識層、網(wǎng)絡(luò)層三層組成,其中:應(yīng)用層主要用于具體業(yè)務(wù)邏輯設(shè)計,處理交易并更新網(wǎng)絡(luò)狀態(tài);共識層,主要負責(zé)共識機制的設(shè)計,幫助節(jié)點就系統(tǒng)當(dāng)前狀態(tài)達成一致共識;網(wǎng)絡(luò)層,用于交易和區(qū)塊鏈之間的通信,負責(zé)通信協(xié)議和底層數(shù)據(jù)結(jié)構(gòu)的設(shè)計。

Cosmos Hub 是第一個在Cosmos 網(wǎng)絡(luò)上啟動的區(qū)塊鏈,如圖4 所示,通過跨鏈協(xié)議與Hub 連接的區(qū)塊鏈被稱作Zone,Hub 在Cosmos 網(wǎng)絡(luò)中充當(dāng)所有獨立區(qū)塊鏈Zone 之間的中介。在Cosmos 中,每個區(qū)域都可以自行執(zhí)行其基本功能,包括驗證賬戶和交易、創(chuàng)建和分配新令牌等。Cosmos Hub 的任務(wù)是通過跟蹤其狀態(tài)來促進網(wǎng)絡(luò)中所有區(qū)域之間的互操作性。

圖4 Cosmos區(qū)塊鏈體系架構(gòu)Fig.4 Cosmos blockchain architecture

不同Zone 區(qū)域通過跨鏈通信協(xié)議(Inter-Blockchain Communication,IBC)連接到Cosmos Hub,該機制使信息能夠在每個連接的區(qū)域之間自由安全地傳播。將Zone 連接到Cosmos Hub 后,它即可與連接到該Hub 的其他Zone 區(qū)域互操作,從而使不同共識機制和驗證機制的區(qū)塊鏈之間可以交換數(shù)據(jù)。例如,鏈A 上的智能合約希望確定鏈B 上是否發(fā)生了事件。為此,鏈B 上的智能合約需要獲取鏈A 的區(qū)塊頭,并驗證它是否滿足共識并達成最終結(jié)果[20]。

IBC 定義了鏈與鏈之間的通信標準,負責(zé)將數(shù)據(jù)包路由到目標區(qū)塊鏈,目標區(qū)塊鏈可以處理任意來自另一個區(qū)塊鏈的特定有序數(shù)據(jù)包。連接到Hub 的每個區(qū)塊鏈跟蹤其他區(qū)塊鏈的區(qū)塊頭。當(dāng)鏈A 向鏈B 轉(zhuǎn)移一筆資金時,通過IBC 協(xié)議會首先鎖定A 鏈上的資產(chǎn),然后向目標區(qū)塊鏈B 鏈發(fā)送證明,于是目標區(qū)塊鏈上相應(yīng)創(chuàng)建與鎖定資產(chǎn)等值的資產(chǎn)。恢復(fù)原始鏈A 上的資產(chǎn)時也采用類似機制。對于未采用IBC協(xié)議的其他類型區(qū)塊鏈接入,會為原先的鏈開發(fā)一條既遵守原鏈通信標準又遵循IBC 標準的代理鏈,通過代理鏈來實現(xiàn)跨鏈。

1.2.2 Polkadot

Polkadot[21]是一個可伸縮的支持多種同構(gòu)、異構(gòu)鏈接入的多鏈跨鏈平臺。Polkadot 體系結(jié)構(gòu)圍繞三個要素構(gòu)建:中繼鏈、平行鏈和轉(zhuǎn)接橋。Polkadot 區(qū)塊鏈是中繼鏈,它位于生態(tài)系統(tǒng)的中心,并傳遞跨鏈信息;平行鏈是連接到中繼鏈的現(xiàn)有區(qū)塊鏈,它們可以是比特幣區(qū)塊鏈、以太坊區(qū)塊鏈或者是基于Polkadot 開發(fā)工具構(gòu)建的區(qū)塊鏈;轉(zhuǎn)接橋是將異構(gòu)平行鏈連接到中繼鏈的網(wǎng)關(guān),同構(gòu)鏈不需要轉(zhuǎn)接橋,因為它們與中繼鏈的共識機制相同。

Polkadot 區(qū)塊鏈中設(shè)計了四個角色,分別是驗證者、提名者、收集者和釣魚者,如圖5 所示,從而使中繼鏈和平行鏈在不信任的環(huán)境中協(xié)同工作。

圖5 Polkadot區(qū)塊鏈中四個角色的交互Fig.5 Interaction of four roles in Polkadot blockchain

驗證者主要負責(zé)創(chuàng)建和提議區(qū)塊,執(zhí)行交易的驗證工作,具有非常高的權(quán)限。驗證人需要抵押足夠多Polkadot 區(qū)塊鏈中的代幣作為押金,同時需要運行一個完整的中繼鏈節(jié)點。

收集者負責(zé)運行全節(jié)點平行鏈,并收集平行鏈數(shù)據(jù),打包新的區(qū)塊并執(zhí)行交易,然后會將一個零知識證明附在執(zhí)行結(jié)果上,一起提交給該平行鏈區(qū)塊的驗證者。

提名者是擁有投票權(quán)益的人,他們選舉出他們信任的驗證者,并把押金抵押給驗證者,代表他們維護整個網(wǎng)絡(luò)。根據(jù)抵押的資金比例,提名者也會受到和驗證人同樣比例的獎勵和懲罰,從而保證整個Polkadot 網(wǎng)絡(luò)的安全。

釣魚者在Polkadot 網(wǎng)絡(luò)中是一個監(jiān)管的角色,他們不直接和區(qū)塊打包過程相關(guān)。通過舉報并證明有抵押的參與方存在作惡行為,就能獲得可觀獎勵。

Polkadot 網(wǎng)絡(luò)可以看作是一個網(wǎng)絡(luò)結(jié)構(gòu),如圖6 所示,中繼鏈是網(wǎng)絡(luò)的中心,中繼鏈上有一定數(shù)量的插槽,可以外接平行鏈。收集者會監(jiān)聽平行鏈上的交易,收集相關(guān)交易并進行廣播,把未確認的區(qū)塊提交給驗證者,中繼鏈上驗證者通過簽名共識階段后確認區(qū)塊。每個平行鏈都會設(shè)置一個隊列,區(qū)塊鏈中的所有跨鏈交易都會被收集人放入這個隊列中,然后這些交易被收集者或驗證者路由到目標平行鏈[22]。

圖6 Polkadot區(qū)塊鏈體系架構(gòu)Fig.6 Polkadot blockchain architecture

作為目前熱門的跨鏈項目,Polkadot 和Cosmos 很好地解決了不同區(qū)塊鏈間數(shù)據(jù)無法交互,價值不能流通的痛點,通過定義兼容性強的跨鏈協(xié)議,為用戶提供一個跨鏈中繼樞紐平臺,支持多鏈互聯(lián)互通,在完全去中心化的網(wǎng)絡(luò)中交互操作,從而輕松實現(xiàn)跨鏈交互,盡可能滿足大多跨鏈應(yīng)用場景需求,未來有望大規(guī)模應(yīng)用起來[23]。

Polkadot 和Cosmos 項目采用的都是中繼鏈機制,中繼鏈本質(zhì)上是側(cè)鏈與公證人機制的一種擴展,Polkadot 和Cosmos的可擴展性和交互性更強,連接到中繼鏈上的各條區(qū)塊鏈都可以通過中繼鏈互相交互,不需要依賴可信第三方就可以完成交易驗證、數(shù)據(jù)同步、價值轉(zhuǎn)移等,更加靈活、高效。不同的是Polkadot 和Cosmos 擁有不同的共識機制[24],Polkadot 平行鏈和中繼鏈都需要維護自己的區(qū)塊狀態(tài),中繼鏈需要對最終的安全性負責(zé)。而Cosmos 則不同,Cosmos 的Zone 區(qū)域需要找到自己去中心化的驗證者,Cosmos 的Hub 驗證者無需對鏈安全性負責(zé);但同時Polkadot 和Cosmos 項目也存在一些缺點,跨鏈實現(xiàn)方式邏輯復(fù)雜,對異構(gòu)鏈接入不夠友好,如果是一個異構(gòu)區(qū)塊鏈,都需要橋接來進行跨鏈。盡管如此,Polkadot 和Cosmos 仍有很多值得借鑒的地方,融合公證人機制和中繼鏈核心思想,解決復(fù)雜跨鏈難題,實現(xiàn)鏈與鏈之間互通互聯(lián),具有非常大的優(yōu)勢。本文借鑒相關(guān)跨鏈設(shè)計經(jīng)驗和思路,提出星火區(qū)塊鏈的跨鏈方案。

2 星火區(qū)塊鏈跨鏈方案

星火區(qū)塊鏈采用的是主子鏈架構(gòu),即“主鏈+子鏈”的1+N 架構(gòu)模式。主鏈是一條基于中繼鏈技術(shù)的許可公有鏈,許可公有區(qū)塊鏈是一種既兼容公有區(qū)塊鏈開放接入、靈活、可擴展性等特性,又融合聯(lián)盟區(qū)塊鏈易于監(jiān)管、高性能、安全可控等特性的區(qū)塊鏈技術(shù)系統(tǒng)。主鏈支持同構(gòu)和異構(gòu)子鏈接入,子鏈注冊后可以通過中繼鏈實現(xiàn)跨鏈,在去中心化同時能保證數(shù)據(jù)的安全可靠。

2.1 體系架構(gòu)

在星火區(qū)塊鏈中,主鏈保證鏈群高效運行,負責(zé)鏈群管理和價值錨定;子鏈采用自治理模式,針對不同業(yè)務(wù)場景獨立設(shè)計,實現(xiàn)數(shù)據(jù)安全隔離,保證在不同場景中對隱私性、有效性的不同要求。如圖7 所示。

圖7 星火區(qū)塊鏈體系架構(gòu)Fig.7 Spark blockchain architecture

星火區(qū)塊鏈中設(shè)置了三類節(jié)點,分別是超級節(jié)點、骨干節(jié)點和業(yè)務(wù)節(jié)點,不同類型節(jié)點分工合作,保證鏈網(wǎng)穩(wěn)定運行。

超級節(jié)點主要負責(zé)執(zhí)行主鏈共識,具備數(shù)據(jù)托管、資質(zhì)審核、鏈群管理等功能。鏈群中所有節(jié)點可申請成為超級節(jié)點候選人,并擁有超級節(jié)點被選舉權(quán)。

骨干節(jié)點具有錨定主鏈、子鏈共識、子鏈監(jiān)管、智能合約部署等功能,子鏈通過骨干節(jié)點與主鏈執(zhí)行跨鏈交互過程,同時擔(dān)負著跨鏈網(wǎng)關(guān)職責(zé),是主鏈和子鏈的橋梁,實現(xiàn)主子鏈跨鏈通信。星火跨鏈技術(shù)是以高性能共識主鏈為核心的跨鏈網(wǎng)絡(luò)結(jié)構(gòu)以及子鏈動態(tài)接入機制,骨干節(jié)點作為跨鏈橋接器,保證跨鏈技術(shù)的高效性、擴展性和安全性。

業(yè)務(wù)節(jié)點協(xié)同骨干節(jié)點執(zhí)行共識,執(zhí)行業(yè)務(wù)活動,其權(quán)限由骨干節(jié)點管理。

在星火鏈主子鏈架構(gòu)中,主鏈是星火鏈的核心,由多個超級節(jié)點組成,超級節(jié)點負責(zé)維護整個區(qū)塊鏈安全穩(wěn)定運行,維護各個子鏈的注冊申請和信息維護,鏈接各個區(qū)塊鏈的跨鏈交易和交易驗證過程,為保證鏈群高效運行,為整個鏈群生態(tài)健康發(fā)展保駕護航。子鏈是所有參與接入跨鏈生態(tài)的同構(gòu)/異構(gòu)區(qū)塊鏈,可以是各種公有鏈、聯(lián)盟鏈、私有鏈等,有較強的獨立性,即使出現(xiàn)異常也不會影響其他子鏈正常的跨鏈過程。

2.2 跨鏈機制

通過對常見跨鏈機制分析,以及對Cosmos 和Polkadot 項目的研究,借鑒其公證人機制和中繼鏈核心思想,提出星火區(qū)塊鏈跨鏈技術(shù),實現(xiàn)跨鏈交互,解決資產(chǎn)和數(shù)據(jù)的自由流通,鏈與鏈之間互通互聯(lián),保證鏈與鏈之間互相信任。

星火鏈的跨鏈技術(shù)支持資產(chǎn)跨鏈、數(shù)據(jù)跨鏈、智能合約跨鏈互操作三種服務(wù)能力,促進子鏈資產(chǎn)價值錨定、數(shù)據(jù)資產(chǎn)價值化流轉(zhuǎn)和業(yè)務(wù)跨鏈互操作。其中,資產(chǎn)跨鏈支持與主鏈原生資產(chǎn)同構(gòu)的子鏈間資產(chǎn)轉(zhuǎn)移,同時支持異構(gòu)原生資產(chǎn)通過主鏈兌換實現(xiàn)資產(chǎn)交換,促進子鏈資產(chǎn)與主鏈的價值錨定和跨鏈價值流轉(zhuǎn);數(shù)據(jù)跨鏈支持與主鏈數(shù)據(jù)同構(gòu)的子鏈間數(shù)據(jù)跨鏈交互,同時支持異構(gòu)數(shù)據(jù)通過主鏈規(guī)范化要求轉(zhuǎn)化;數(shù)據(jù)跨鏈交互形式包括數(shù)據(jù)的查看、數(shù)據(jù)的寫入和數(shù)據(jù)所有權(quán)轉(zhuǎn)移等,實現(xiàn)數(shù)據(jù)資產(chǎn)跨鏈價值化交換過程;智能合約跨鏈互操作支持用戶跨鏈調(diào)用智能合約,并傳遞交互參數(shù),實現(xiàn)智能合約跨鏈訪問、智能設(shè)備跨鏈點對點互操作等功能,進而打破傳統(tǒng)互聯(lián)網(wǎng)協(xié)議橫向隔閡造成的數(shù)據(jù)孤島問題,通過連接各業(yè)務(wù)場景的底層協(xié)議,將各平臺、聯(lián)盟鏈系統(tǒng)等數(shù)據(jù)鏈接起來,實現(xiàn)萬物互聯(lián)互通目標。如圖8 所示。

圖8 星火區(qū)塊鏈的跨鏈流程Fig.8 Cross-chain process of Spark blockchain

星火區(qū)塊鏈跨鏈設(shè)計了許多關(guān)鍵核心組件來保證跨鏈機制的進行。

1)智能合約組件。子鏈在向主鏈注冊的同時會進行相關(guān)跨鏈合約部署,子鏈通過跨鏈智能合約,向主鏈發(fā)起注冊請求,連接到主鏈。以主鏈為中心可以和其他子鏈進行跨鏈操作,保證主子鏈間跨鏈順利實現(xiàn),支撐跨鏈業(yè)務(wù)核心邏輯,保證跨鏈交易有效性與安全性。主鏈上部署中繼合約,用于跨鏈時主子鏈間數(shù)據(jù)同步與確認,保證主鏈作為中繼實現(xiàn)鏈間通信。

2)交易校驗組件。通過區(qū)塊頭Merkle 樹數(shù)據(jù)進行SPV簡單支付驗證。SPV 能夠以最小的代價來計算判斷某條交易是否已經(jīng)被驗證過。主鏈承擔(dān)子鏈交易數(shù)據(jù)校驗的責(zé)任,校驗組件會校驗并保存提交上來的子鏈區(qū)塊頭和相關(guān)交易SPV 數(shù)據(jù),以此來證明子鏈數(shù)據(jù)有效性。

3)交易超時組件。保證跨鏈交易有效性和完整性。星火區(qū)塊鏈中內(nèi)置高性能時鐘,跨鏈交易過程中,每次跨鏈操作開始時都會進行計時,每一步交易都需要在規(guī)定時間內(nèi)反饋成功或失敗信息,進而根據(jù)反饋信息進行后續(xù)操作。同時主鏈和子鏈在跨鏈區(qū)塊確認時都會有一個候選區(qū)塊池,候選區(qū)塊池中的區(qū)塊交易只有在收到跨鏈成功反饋時才會變?yōu)檎絽^(qū)塊。

基于上述關(guān)鍵組件,對星火鏈的跨鏈流程進行了優(yōu)化。一個典型的主子鏈間跨鏈交易主要分為以下階段:

1)交易發(fā)起階段,主要是骨干節(jié)點監(jiān)聽用戶發(fā)起的交易,并提交到跨鏈消息隊列中。在星火鏈中,骨干節(jié)點會監(jiān)聽并獲取網(wǎng)絡(luò)中的跨鏈請求,用戶調(diào)用跨鏈合約發(fā)起子鏈A向子鏈B 的跨鏈請求時,該請求會被骨干節(jié)點獲取,骨干節(jié)點會對該請求進行驗證,確認請求發(fā)起者權(quán)限、跨鏈內(nèi)容和跨鏈序號等,驗證通過無誤后將跨鏈請求信息形成特定格式的數(shù)據(jù),提交到跨鏈消息隊列中。如果檢查中存在問題,則中止交易,返回錯誤信息。

2)交易路由階段,主要是跨鏈消息的中繼和路由。主鏈中的中繼合約負責(zé)跨鏈消息隊列中跨鏈請求的中繼和路由,統(tǒng)籌協(xié)調(diào)路由分配,將跨鏈交易信息傳遞到對應(yīng)的子鏈。子鏈A 到子鏈B 的跨鏈請求被送入消息隊列后,中繼合約監(jiān)聽到并查詢驗證對應(yīng)請求信息,之后根據(jù)路由信息將請求轉(zhuǎn)發(fā)至對應(yīng)的子鏈B,主鏈同時啟動消息計時程序,若在規(guī)定時間內(nèi)沒有收到對應(yīng)子鏈的反饋信息,則按超時失敗處理。

對應(yīng)子鏈的骨干節(jié)點會監(jiān)聽所有的跨鏈交易請求,當(dāng)收到中繼合約轉(zhuǎn)發(fā)過來的跨鏈交易請求后,交易會被提交到子鏈的跨鏈合約中進行處理;子鏈B 的跨鏈合約對骨干節(jié)點提交的交易進行校驗,通過節(jié)點簽名投票后提交候選區(qū)塊,把相關(guān)信息同步給主鏈,提交跨鏈反饋。同時開啟計時程序,等待在規(guī)定時間內(nèi)接收主鏈的反饋信息。

3)交易核驗階段,主要是交易數(shù)據(jù)的驗證與同步。主鏈收到子鏈B 反饋的跨鏈信息后,首先對跨鏈交易進行SPV 驗證,即通過交易哈希值和Merkle 樹進行簡單驗證。驗證通過后,轉(zhuǎn)發(fā)給跨鏈的發(fā)起者子鏈A。跨鏈發(fā)起者子鏈A 的骨干節(jié)點監(jiān)聽到主鏈發(fā)來的跨鏈確認信息后,向子鏈A 提交跨鏈反饋,子鏈A 會對該比跨鏈交易進行確認,把確認的跨鏈交易提交到跨鏈合約中;子鏈A 的跨鏈合約對提交的確認交易信息進行校驗,驗證跨鏈交易確實來自于主鏈,然后進行投票驗證,保證交易的執(zhí)行,同時返回相應(yīng)的回執(zhí)信息。

4)交易確認階段,主要是主鏈完成最終確認并生成跨鏈存證。主鏈收到反饋信息后,會進行SPV 驗證,同時對相應(yīng)的子鏈數(shù)據(jù)信息進行同步,更新區(qū)塊頭數(shù)據(jù),提交候選區(qū)塊,等待子鏈確認跨鏈信息后候選區(qū)塊變成正式區(qū)塊。同時生成一個跨鏈存證,確??珂溄灰渍鎸嵱行А?珂湸孀C生成后,標示此次跨鏈交易過程正常結(jié)束。

一個跨鏈存證的信息示意如下,清楚明了地記錄了跨鏈信息,并附有簽名作為信用背書。

根據(jù)上述跨鏈交易過程,假設(shè)用戶Alice 向Bob 進行一筆轉(zhuǎn)賬,該筆轉(zhuǎn)賬只能通過子鏈A 向子鏈B 進行跨鏈交易來實現(xiàn),以此為例來說明星火區(qū)塊鏈的跨鏈交易流程。

1)用戶Alice 調(diào)用跨鏈合約向子鏈A 的業(yè)務(wù)節(jié)點發(fā)起向Bob 跨鏈轉(zhuǎn)賬交易申請;

2)子鏈A 的業(yè)務(wù)節(jié)點將該請求對外進行廣播,骨干節(jié)點會監(jiān)聽并獲取該跨鏈請求;

3)骨干節(jié)點對該請求進行驗證,驗證通過后將該請求提交到跨鏈消息隊列;

4)主鏈中的中繼合約監(jiān)聽到跨鏈消息隊列的消息后,會對其進行校驗,校驗通過后該請求被路由轉(zhuǎn)發(fā)到子鏈B;

5)子鏈B 的骨干節(jié)點會監(jiān)聽轉(zhuǎn)發(fā)給自己的跨鏈交易請求,收到請求后,將交易提交到子鏈B 的跨鏈合約中進行處理;

6)子鏈B 的跨鏈合約對該交易進行校驗,業(yè)務(wù)節(jié)點通過共識確認,簽名投票打包,提交候選區(qū)塊,更新交易狀態(tài),把信息反饋給主鏈;

7)主鏈收到跨鏈反饋后會對該交易進行驗證,驗證無誤后將消息轉(zhuǎn)發(fā)至子鏈A,子鏈A 監(jiān)聽到主鏈發(fā)來的跨鏈消息后,把確認的跨鏈交易提交到子鏈A 的跨鏈合約中;

8)子鏈A 的跨鏈合約對提交的確認接收跨鏈交易進行校驗,校驗通過后進行投票驗證,提交候選區(qū)塊,同時反饋信息;

9)主鏈收到反饋信息后,會同步該條信息,提交候選區(qū)塊。同時生成跨鏈存證,至此該跨鏈交易全部完成。

上述介紹的星火區(qū)塊鏈跨鏈方案的實現(xiàn),通過特定的主子鏈架構(gòu),設(shè)計關(guān)鍵核心組件保證跨鏈的進行,實現(xiàn)不同子鏈間跨鏈交互,打破不同鏈之間的價值隔離困境,促進子鏈資產(chǎn)價值錨定、數(shù)據(jù)資產(chǎn)價值化流轉(zhuǎn)和業(yè)務(wù)跨鏈互操作,安全實現(xiàn)鏈與鏈之間的價值互通,將滿足不同業(yè)務(wù)場景跨鏈需求。

3 實驗測試

根據(jù)星火區(qū)塊鏈的跨鏈方案,設(shè)計可行的實驗進行性能測試和安全性測試。實驗環(huán)境選用20 臺云服務(wù)器,服務(wù)器配置為64 GB 內(nèi)存,32 核Intel Core 的CPU,500 GB 硬盤。由于系統(tǒng)采用“主鏈+子鏈”架構(gòu),其中10 臺服務(wù)器作為10 個節(jié)點,用于主鏈搭建和部署,剩余10 臺搭建2 條子鏈,每條子鏈部署5 個節(jié)點。

3.1 性能測試

性能測試實驗從交易延遲、交易吞吐量、尖峰沖擊下的穩(wěn)定性等方面進行評估。對于交易延遲、交易吞吐量實驗,每個實驗進行24 h,每6 min 記錄一次數(shù)據(jù);對于尖峰沖擊測試,分別進行2 倍流量、3 倍流量的沖擊,實驗各進行3 min,比較沖擊前后的交易延遲數(shù)據(jù)。同時與超級賬本Fabric、企業(yè)以太坊聯(lián)盟Quorum 區(qū)塊鏈進行對比實驗。

1)交易延遲,是衡量區(qū)塊鏈系統(tǒng)性能的一個重要指標。實驗過程中會記錄兩個時間節(jié)點:一是交易發(fā)起的時間,即在交易發(fā)起階段用戶發(fā)起交易,被骨干節(jié)點監(jiān)聽并提交到跨鏈消息隊列;二是交易處理完成的時間,即在交易確認階段主鏈完成最終確認并生成跨鏈存證。通過計算兩個時間節(jié)點之間的時間差來統(tǒng)計交易延遲。如圖9 所示,F(xiàn)abric、Quorum 區(qū)塊鏈的平均延遲時間均超過了10 s,而星火區(qū)塊鏈跨鏈交易延遲時間較短,平均延遲時間約為7~8 s,低于其他區(qū)塊鏈延遲時間,交易效率較高。

圖9 交易延遲時間Fig.9 Transaction delay time

2)交易吞吐量。區(qū)塊鏈的吞吐能力也是衡量區(qū)塊鏈系統(tǒng)性能的重要指標,一般用每秒事務(wù)處理量(Transactions Per Second,TPS)來表示,指系統(tǒng)單位時間內(nèi)寫入?yún)^(qū)塊鏈的總交易數(shù)量。實驗中通過自定義腳本持續(xù)發(fā)送大量的交易請求,然后統(tǒng)計計算單位時間處理完成的交易的數(shù)量。圖10 是交易吞吐量實驗圖,星火區(qū)塊鏈的吞吐量最高可達到25 000 TPS,高于Fabric、Quorum 區(qū)塊鏈的1 000 TPS 左右的數(shù)值,星火區(qū)塊鏈中的交易并發(fā)處理能力較高,具有較好的性能。

圖10 交易吞吐量Fig.10 Transaction throughput

3)尖峰沖擊下的系統(tǒng)穩(wěn)定性。

為了確保區(qū)塊鏈長期穩(wěn)定運行,就需要了解流量峰值時系統(tǒng)的狀況,保證每個訪問者流暢的使用體驗,因此,通過尖峰沖擊壓力測試來驗證評估瞬間大流量沖擊區(qū)塊鏈時系統(tǒng)的穩(wěn)定性,是非常重要的。如圖11 所示,星火區(qū)塊鏈的交易延遲隨著流量的增加并未出現(xiàn)明顯變化,系統(tǒng)運行平穩(wěn),平均延遲時間在8~9 s,而Fabric 的延遲在流量突然增大到2 倍時,有一個明顯的增長,Quorum 區(qū)塊鏈的延遲在流量突然增大到2 倍和3 倍時,都有較明顯的增長。

圖11 不同流量峰值下的交易延遲時間對比Fig.11 Comparison of transaction delay time under different traffic peaks

上述實驗結(jié)果表明,星火區(qū)塊鏈在交易延遲、吞吐量和尖峰沖擊測試等方面均有較好的表現(xiàn),具有較顯著的優(yōu)勢,穩(wěn)定性較高,從而有效保證了星火區(qū)塊鏈的性能。

3.2 安全性測試

安全性是保證用戶資產(chǎn)和數(shù)據(jù)進行跨鏈轉(zhuǎn)移的關(guān)鍵,是系統(tǒng)平穩(wěn)運行的核心指標。實驗分別設(shè)置不同的惡意節(jié)點,測試惡意節(jié)點的比例對區(qū)塊鏈交易成功率的影響。選取0個、4 個、5 個、7 個惡意節(jié)點進行四組實驗,代表的惡意節(jié)點比例分別為0、20%、25%和大于30%。通過自定義腳本持續(xù)發(fā)送交易并監(jiān)測交易的完成情況,最后的交易成功率如表1所示。當(dāng)惡意節(jié)點數(shù)小于30%時,跨鏈交易的成功率均達到100%;當(dāng)惡意節(jié)點數(shù)大于30%時,跨鏈交易的成功率會有顯著的下降。由于星火鏈采用的許可公有區(qū)塊鏈技術(shù),成為星火鏈的節(jié)點需要嚴格的資格審核,所以惡意節(jié)點的比例會比較低,一般不會超過10%,這種情況下跨鏈交易的成功率為100%,可以充分保證區(qū)塊鏈運行的安全。

表1 不同惡意節(jié)點的交易成功率Tab.1 Transaction success rate of different malicious nodes

進一步講,本文在設(shè)計跨鏈機制的過程中,就已經(jīng)充分考慮了整個系統(tǒng)的安全性,具體表現(xiàn)在以下三方面。

系統(tǒng)設(shè)計的智能合約組件,保證子鏈在向主鏈注冊的過程中是安全可控的。子鏈注冊接入主鏈時,需要進行相應(yīng)的認證,抵押一定的資產(chǎn)后才可發(fā)起注冊提案。注冊完成后會為對應(yīng)的子鏈分配唯一的編號。主鏈也可以通過智能合約組件進行節(jié)點投票注銷惡意注冊的信息,拒絕所有該惡意子鏈信息的跨鏈請求。

跨鏈的共識機制采用的是基于委托權(quán)益證明(Delegated Proof Of Stake,DPOS)、可驗證隨機函數(shù)(Verified Random Function,VRF)、實用拜占庭容錯(Practical Byzantine Fault Tolerance,PBFT)等算法改進的創(chuàng)新雙層共識。DPOS 階段節(jié)點會通過質(zhì)押大量資產(chǎn)獲得打包區(qū)塊的資格,節(jié)點參與共識時受到其他節(jié)點的監(jiān)督,主動作惡會被罰沒質(zhì)押的資產(chǎn),通過這種手段使得作惡的成本遠大于收益。VRF 階段用于輔助增強PBFT 的安全性,通過隨機選擇算法降低打包區(qū)塊節(jié)點被提前預(yù)測和攻擊的風(fēng)險,PBFT 階段的安全性由算法邏輯來保障,通過系統(tǒng)節(jié)點對信息的多次轉(zhuǎn)發(fā)和確認來保證節(jié)點間的信息一致性。整個系統(tǒng)從經(jīng)濟博弈、算法邏輯本身等方面都充分保證跨鏈共識的安全性。

另外,由于星火區(qū)塊鏈采用的是主子鏈架構(gòu),該架構(gòu)使不同業(yè)務(wù)場景對應(yīng)的各個子鏈之間網(wǎng)絡(luò)和數(shù)據(jù)相互隔離,不能直接通信,從根源確保隱私數(shù)據(jù)無泄漏風(fēng)險,保證了整個鏈群安全與穩(wěn)定。

4 結(jié)語

跨鏈技術(shù)讓不同區(qū)塊鏈之間實現(xiàn)了互聯(lián)互通,為不同技術(shù)底層的區(qū)塊鏈之間相互交互確立了統(tǒng)一標準,區(qū)塊鏈不再是一個個孤島,跨鏈技術(shù)區(qū)塊鏈從小范圍探索實驗走向大規(guī)模應(yīng)用成為可能。因此不同區(qū)塊鏈間實現(xiàn)跨鏈數(shù)據(jù)互通,會進一步成為未來研究熱點。本文通過跨鏈機制及方案的分析與研究,對比現(xiàn)有主流跨鏈項目,對星火區(qū)塊鏈跨鏈技術(shù)進行了設(shè)計與探索,提出星火鏈的跨鏈方案,構(gòu)建區(qū)塊鏈主子鏈體系架構(gòu),通過中繼方式實現(xiàn)跨鏈,各子鏈之間通過主鏈實現(xiàn)互聯(lián)互通、跨鏈數(shù)據(jù)交互共享,可以針對不同業(yè)務(wù)場景獨立運行,為區(qū)塊鏈生態(tài)發(fā)展提供一個數(shù)據(jù)共享平臺,進一步豐富區(qū)塊鏈跨鏈生態(tài)系統(tǒng)。期望這項研究設(shè)計可以為下一步的深入研究提供一個穩(wěn)健可靠的起點,相關(guān)開發(fā)者和研究人員可以重點關(guān)注星火區(qū)塊鏈跨鏈技術(shù)在供應(yīng)鏈管理、聯(lián)合溯源等場景的應(yīng)用,并結(jié)合應(yīng)用場景對跨鏈機制進行優(yōu)化升級,進一步完善跨鏈流程與標準,為區(qū)塊鏈行業(yè)的發(fā)展作出貢獻。

猜你喜歡
公證人主鏈星火
“鹵代烴”知識概要
基于PageRank改進的公證人節(jié)點信用排序算法
WDC主鏈正式啟動創(chuàng)世區(qū)塊已誕生
有機化合物命名易錯題直擊
“烷烴”的五字命名方針
一慢改寫星火繪畫
民間借貸公證辦理中公證人的職責(zé)
域外公證監(jiān)督制度之比較考察及對我國的借鑒
遺產(chǎn)
会泽县| 延安市| 政和县| 社旗县| 杭锦后旗| 老河口市| 肇州县| 北碚区| 太仆寺旗| 自治县| 呼图壁县| 海口市| 长白| 金坛市| 宜丰县| 筠连县| 白河县| 洛浦县| 乌拉特中旗| 茂名市| 宜阳县| 伊川县| 泉州市| 伊金霍洛旗| 锡林郭勒盟| 中阳县| 武穴市| 临武县| 翁牛特旗| 隆昌县| 砀山县| 绥德县| 辉南县| 禹城市| 汉阴县| 沿河| 万荣县| 沙河市| 巩留县| 石屏县| 双牌县|