當(dāng)前位置:首頁(yè) > 物聯(lián)網(wǎng) > 區(qū)塊鏈
[導(dǎo)讀] 跨鏈作為區(qū)塊鏈一種不可或缺的技術(shù),我們研究跨鏈,以更好地了解區(qū)塊鏈之間是如何相互通信。 最初構(gòu)建區(qū)塊鏈時(shí),他們?cè)O(shè)想能夠提供“一刀切”的解決方案,這意味著所有交易,智能合約或其他任何事物都

跨鏈作為區(qū)塊鏈一種不可或缺的技術(shù),我們研究跨鏈,以更好地了解區(qū)塊鏈之間是如何相互通信。

最初構(gòu)建區(qū)塊鏈時(shí),他們?cè)O(shè)想能夠提供“一刀切”的解決方案,這意味著所有交易,智能合約或其他任何事物都在單個(gè)鏈上執(zhí)行。 但是,現(xiàn)在很明顯,這樣的系統(tǒng)不太實(shí)用,尤其是在存在可伸縮性限制和創(chuàng)新約束的情況下。

跨鏈?zhǔn)莾蓚€(gè)相對(duì)獨(dú)立的區(qū)塊鏈之間的互操作性。換句話說(shuō),由于區(qū)塊鏈?zhǔn)且詷?biāo)準(zhǔn)化的方式構(gòu)建的,因此它允許區(qū)塊鏈彼此通信??珂湆?shí)施主要以資產(chǎn)交換和資產(chǎn)轉(zhuǎn)移為代表,既是區(qū)塊鏈?zhǔn)澜绲闹匾M成部分,也是PPIO的重要研究方向。使用交叉鏈,可以避免單鏈的局限性。今天,我們將探討Cosmos跨鏈協(xié)議的邏輯結(jié)構(gòu)。

根據(jù)不同的基礎(chǔ)技術(shù),跨鏈的相互作用可以分為同構(gòu)的跨鏈和異類的跨鏈。對(duì)于同構(gòu)鏈,安全機(jī)制,共識(shí)算法,網(wǎng)絡(luò)拓?fù)浜蛪K生成驗(yàn)證邏輯是一致的,它們之間的跨鏈交互相對(duì)簡(jiǎn)單。

另一方面,異構(gòu)鏈的跨鏈交互相對(duì)復(fù)雜,并且包括諸如針對(duì)比特幣的PoW算法和針對(duì)Tendermint的PBFT共識(shí)算法之類的技術(shù)。區(qū)塊組成和確定性保證機(jī)制差異很大,因此直接設(shè)計(jì)跨鏈交互機(jī)制并不容易。異構(gòu)鏈之間的跨鏈交互通常需要第三方輔助服務(wù)。

如何實(shí)現(xiàn)跨鏈同構(gòu)?

基于Tendermint開(kāi)發(fā)的鏈可以采用同構(gòu)跨鏈。 Cosmos中同構(gòu)鏈之間的資產(chǎn)轉(zhuǎn)移原理如下。

由于Tendermint使用PBFT+POS共識(shí)算法,因此只有在2/3個(gè)驗(yàn)證者同意的情況下,才會(huì)將區(qū)塊提交到網(wǎng)絡(luò)??梢酝ㄟ^(guò)檢查區(qū)塊頭以驗(yàn)證區(qū)塊頭在特定鏈中是否合法來(lái)驗(yàn)證驗(yàn)證器信息。例如Tendermint正在開(kāi)發(fā)兩條鏈:鏈A和鏈B?,F(xiàn)在假設(shè)資產(chǎn)需要在鏈上轉(zhuǎn)移。首先,兩個(gè)鏈A和B將相互注冊(cè)。在注冊(cè)過(guò)程中,A和B認(rèn)識(shí)到它們的獨(dú)立性。然后鏈將相互發(fā)送各自的創(chuàng)世塊和ChainID(用于表示不同的鏈)。由于創(chuàng)世塊包含驗(yàn)證者信息,因此在注冊(cè)后,A和B鏈將具有另一條鏈的驗(yàn)證者信息以及區(qū)塊頭信息。

現(xiàn)在,需要將A中的資產(chǎn)轉(zhuǎn)移到B。首先用戶可以將跨鏈交易包Tx發(fā)送到A。A執(zhí)行packageTx,銷毀或定相關(guān)資產(chǎn),然后將packageTx寫(xiě)入出口。出口可視為放置所有外部通知的跨鏈交易的郵箱。

為了將在鏈A中發(fā)生的事件通知鏈B,需要一個(gè)中繼器。中繼器負(fù)責(zé)將跨鏈消息從鏈A的出口轉(zhuǎn)發(fā)到鏈B的出口。在這種情況下,中繼器在鏈A的出口中查詢packageTx,并獲得packageTx的Merkle證明。該信息被打包到IBC Package PostTx事務(wù)中并發(fā)送到鏈B,鏈B查詢關(guān)于packageTx位置的區(qū)塊頭信息。它還將區(qū)塊頭信息打包到IBCUpdate Chain Tx中,并將其發(fā)送到鏈B。注意中繼器支付了IBC Package PostTx和IBCUpdate Chain Tx的交易成本。

鏈B接收到IBCPacketPostTx事務(wù)后,它首先通過(guò)該鏈中的驗(yàn)證器檢查IBCUpdateChainTx中的區(qū)塊頭是否為鏈A的一部分,然后驗(yàn)證IBCPacketPostTx中跨鏈?zhǔn)聞?wù)的Merkle證明是否等于該區(qū)塊IBCUpdateChainTx中的頭哈希。當(dāng)所有支票都通過(guò)時(shí),B鏈開(kāi)始執(zhí)行相關(guān)操作(對(duì)于B鏈,這意味著生成相關(guān)資產(chǎn)等)。

同構(gòu)跨鏈實(shí)現(xiàn)方法

Cosmos中的跨鏈由IBC協(xié)議實(shí)現(xiàn)。 Cosmos生態(tài)系統(tǒng)中定義了以下IBC協(xié)議軟件包:IBCRegisterChainTx,IBCUpdateChainTx,IBCPacketCreateTx,IBCPacketPostTx。

IBCRegisterChainTx

在跨鏈的開(kāi)頭使用以下代碼注冊(cè)和發(fā)送創(chuàng)世紀(jì)區(qū)塊。驗(yàn)證者會(huì)將其交給另一方。此代碼只能執(zhí)行一次,多次執(zhí)行將報(bào)告錯(cuò)誤。

type IBCRegisterChainTx struct {

BlockchainGenesis

}

type BlockchainGenesis struct {

ChainID string

Genesis string

}

IBCUpdateChainTx

用于將當(dāng)前鏈上的最新區(qū)塊信息,區(qū)塊高度和區(qū)塊頭信息傳輸?shù)搅硪粋€(gè)鏈。

type IBCUpdateChainTx struct {

Header tm.Header

Commit tm.Commit

// TODO: NextValidators

}

IBCPacketCreateTx

當(dāng)鏈條接收到交易包時(shí),它將執(zhí)行跨鏈交易并將相關(guān)信息放入出口。

type IBCPacketCreateTx struct {

Packet

}

type Packet struct {

SrcChainID string

DstChainID string

Sequence uint64

Type string // redundant now that Type() is a method on Payload ?

Payload Payload

}

IBCPacketPostTx

跨鏈交易執(zhí)行后,此軟件包包含Merkle證明,然后由中繼器將其發(fā)送到另一個(gè)鏈。

type IBCPacketPostTx struct {

FromChainID string

// The immediate source of the packet, not always Packet.SrcChainID

FromChainHeight uint64

// The block height in which Packet was committed, to check Proof

Packet

Proof *merkle.IAVLProof // Merkle證明

}

plugin

從上面的協(xié)議我們可以看到,這些協(xié)議包實(shí)際上是一個(gè)事務(wù)。Tendermint有一個(gè)plugin模塊,以方便我們擴(kuò)展。 我們可以在plugin中實(shí)現(xiàn)接口,并使用IBC plugin執(zhí)行跨鏈交易。

type Plugin interface {

// Name of this plugin, should be short.

Name() string

// Run a transaction from ABCI DeliverTx

RunTx(store KVStore, ctx CallContext, txBytes []byte) (res abci.Result)

// Other ABCI message handlers

SetOpTIon(store KVStore, key, value string) (log string)

InitChain(store KVStore, vals []*abci.Validator)

BeginBlock(store KVStore, hash []byte, header *abci.Header)

EndBlock(store KVStore, height uint64) abci.ResponseEndBlock

}

上面的代碼是plugin接口的定義??梢钥闯?,該plugin與ABCI接口非常相似,因此IBC事務(wù)在deliverTx處交給了該plugin。

// ABCI::DeliverTx

func (app *BaseApp) DeliverTx(txBytes []byte) (res abci.Result) {

// Exec tx

switch tx := tx.(type) {

case *types.SendTx:

// 執(zhí)行正常交交易

case *types.AppTx:

// 執(zhí)行plugin中的交易

plugin := pgz.GetByName(tx.Name)

res = plugin.RunTx(cache, ctx, tx.Data)

return res

default:

return abci.ErrBaseEncodingError.SetLog(“Unknown tx type”)

}

return res

}

異構(gòu)跨鏈PegZone

對(duì)于使用POW共識(shí)算法的鏈,例如比特幣和以太坊,它們?nèi)绾问褂肨endermint的IBC協(xié)議跨鏈運(yùn)作?由于這些鏈中使用了POW算法,因此我們無(wú)法通過(guò)驗(yàn)證器驗(yàn)證這些鏈的區(qū)塊。我們也無(wú)法使用Merkle證明來(lái)證明這些鏈上跨鏈交易的合法性。此外,POW共識(shí)算法生成的區(qū)塊是概率性最終的,并且有可能被回滾。我們需要確??珂溄灰资钦嬲淖罱K交易,并且不會(huì)回滾。

基于以上考慮,我們使用PegZone方案執(zhí)行異構(gòu)跨鏈。PegZone本身實(shí)際上是Tendermint開(kāi)發(fā)的代理鏈,它實(shí)時(shí)跟蹤原始鏈的狀態(tài),并設(shè)置安全閾值以等待原始鏈塊的增長(zhǎng)。當(dāng)數(shù)字達(dá)到安全閾值時(shí),原始鏈狀態(tài)被視為具有偽實(shí)時(shí)終結(jié)性(回滾概率?。@與輕客戶端錢(qián)包驗(yàn)證的原理相同。例如比特幣安全閾值通常設(shè)置為6,而ETF安全閾值可以設(shè)置為20或100。PegZone本身具有實(shí)時(shí)確定性,可以通過(guò)IBC連接到Cosmos Hub以實(shí)現(xiàn)跨鏈。

下圖使用PegZone或Peggy以及以太坊作為跨鏈接的示例。

從上圖可以看出,PegZone可分為五個(gè)部分:

1. smart contract:資產(chǎn)托管在以太坊和Cosmos中代幣托管中的作用。它主要提供四種方法:鎖定,解鎖,鑄造和銷毀。

2. witness:這是一個(gè)完整的以太坊節(jié)點(diǎn),它監(jiān)視以太坊合約的事件并等待生成100個(gè)區(qū)塊。封裝的見(jiàn)證人Tx被提交給PegZone以證明以太坊區(qū)塊鏈上的狀態(tài)變化。

3. PegZone:PegZone是基于Tendermint的區(qū)塊鏈,可維護(hù)用戶帳戶信息,允許用戶之間進(jìn)行資產(chǎn)轉(zhuǎn)移并提供交易查詢。

4. signer:Secp256k1用于簽名交易,以便可以通過(guò)智能合約有效地驗(yàn)證簽名;這對(duì)應(yīng)于智能合約的驗(yàn)證者公鑰集。

5. relay:relay負(fù)責(zé)所有事務(wù)轉(zhuǎn)發(fā)。該角色將已簽名的SignTx轉(zhuǎn)發(fā)到智能合約。

Cosmos Hub角色

在Cosmos中的basecoin跨鏈演示中,兩個(gè)鏈(鏈A和鏈B)被跨鏈接,并相互發(fā)送IBC注冊(cè)鏈Tx進(jìn)行注冊(cè)。 跨鏈時(shí),將直接發(fā)送IBC協(xié)議包以執(zhí)行資產(chǎn)的跨鏈操作。但是這種直接連接有問(wèn)題。隨著訪問(wèn)網(wǎng)絡(luò)的區(qū)域(相當(dāng)于一個(gè)獨(dú)立的區(qū)塊鏈)的數(shù)量增加,如果直接實(shí)現(xiàn)通信,鏈接的數(shù)量將以平方的順序增加。以連接到網(wǎng)絡(luò)的100個(gè)區(qū)域?yàn)槔?果每個(gè)區(qū)域直接需要建立IBC連接,則網(wǎng)絡(luò)需要n(n-1)/ 2 = 4950個(gè)通信鏈路。如此快速的增長(zhǎng)顯然將壓倒整個(gè)網(wǎng)絡(luò)。

Hub的概念可以解決有關(guān)此問(wèn)題的問(wèn)題。在Cosmos生態(tài)系統(tǒng)中,所有區(qū)域都將注冊(cè)并向集線器發(fā)送IBC軟件包。

Hub運(yùn)行模式

Hub管理許多區(qū)域。所有區(qū)域都需要向Hub注冊(cè)。Hub跟蹤每個(gè)區(qū)域的狀態(tài)。每個(gè)區(qū)域?qū)⑵洚a(chǎn)生的所有新區(qū)塊信息報(bào)告給Hub。同時(shí)每個(gè)區(qū)域還需要同步Hub的狀態(tài)。每個(gè)區(qū)域不是通過(guò)區(qū)域之間直接通信,而是通過(guò)將IBC發(fā)送到Hub進(jìn)行間接通信。

當(dāng)區(qū)域建立與Hub的IBC連接時(shí),它可以自動(dòng)訪問(wèn)連接到Hub的其他區(qū)域,這意味著一個(gè)區(qū)域不需要連接到其他區(qū)域。

當(dāng)一個(gè)區(qū)域從連接到Hub的另一個(gè)區(qū)域接收令牌時(shí),它只需要信任Hub和該區(qū)域,而不必信任網(wǎng)絡(luò)中的所有其他區(qū)域。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉