作者簡介
江哲
來自數據網格實驗室BitXHub團隊主要負責區塊鏈賬本互操作技術相關研究工作
導讀
跨鏈作為近兩年來區塊鏈技術一個炙手可熱的方向,吸引了許多人的目光。
從技術層面看,Cosmos無疑可以與Polkadot并稱“跨鏈雙雄”,兩者的技術路線并無明顯的優劣之分,只是開發理念各有千秋。
Cosmos最初是由Tendermint團隊構建的開源社區項目,它將自己定義為“一個由多條獨立平行區塊鏈組成的去中心化網絡”,和Polkadot一樣,也由中繼技術實現。
Cosmos到底是如何解決跨鏈過程中遇到的各項問題的,本文通過對其架構和跨鏈交易流程的解讀,帶我們進一步了解Cosmos。
什么是Cosmos
Cosmos作為跨鏈雙雄之一,定位為一個可擴展、易用、互操作的區塊鏈互聯網。
首先介紹Cosmos的三個重要組成部分
Hub:本質上是一條中繼鏈,由官方進行維護,被當作跨鏈消息的信任中心;
Zone:參與到Cosmos網絡中的應用鏈,允許不同類型的區塊鏈加入進來;
IBC:鏈間通信協議。
他們三者的關系我們從上面的簡圖中看到,位于中心的是Hub。
Hub管理著許多被稱為“Zone”的應用鏈,在Cosmos網絡中,由Hub來追蹤記錄各個Zone的狀態,而每一個Zone有義務不停地把自身產出的新區塊反向匯報給Hub。
Hub與Zone直接通信,而Zone與Zone之間通過IBC間接通信。
民盟中央建議加速元宇宙科普和立法:3月4日消息,民盟中央已起草了《關于“元宇宙”技術發展的提案》,并將提交全國政協十三屆五次會議。在提案中,民盟中央建議,在科普層面需加速知識傳播,法律層面則需加快立法步伐。民盟中央擬提交的提案指出,目前,在新興網絡層面,相關政策法規相對缺失。“元宇宙”在未來將會帶動形成全新的網絡形態,當遇到突發輿情,全虛擬的環境、場景將更難進行源頭追蹤、問題疏導。因此建議應盡早加快立法研究,盡快形成與技術、市場發展相適應的治理模式和法律基礎,全面提升我國社會治理的水平。建議組織相關部門,針對“元宇宙”相關需求、風險進行立法研究,并盡快發布。此前消息,民進中央擬向全國政協十三屆五次會議提交《關于積極穩妥推進元宇宙技術和產業發展的提案》。建議推進元宇宙技術產業發展,建立相關監管治理體系。(華夏時報)[2022/3/4 13:37:12]
當Zone對Hub建立起一個IBC連接,它可以自動訪問其他連接到該Hub上的Zone,這意味著Zone無需與其他Zone連接,而僅僅連接到Hub上即可。
當一個Zone通過Hub收到來自其他Zone的代幣時,它只需要信任Hub,而不需要信任網絡中所有其它的Zone。
為什么Cosmos不直接利用IBC建立Zone與Zone之間的連接?
事實上,隨著接入到網絡中Zone的數量上升,以直連方式實現通信會導致鏈路數量呈平方級上升,如此快速的增長顯然會令網絡不堪重負。
Cosmos架構
Cosmos作為一個多鏈互操作的跨鏈平臺,支持不同種類應用鏈接入到Cosmos的網絡,如圖所示:
一般來說,應用鏈可以分成兩種類型:概率鏈和確定性鏈。
歐科云鏈集團正式啟動區塊鏈科普行動“星途計劃”:歐科云鏈集團于4月26日,正式宣布啟動了區塊鏈科普行動——“星途計劃”,行動包括將在全國范圍展開系列沙龍,加大力度推進區塊鏈科普進機關、進國企、進校園等,聯合政府部門、行業協會等共同構建起更加完善和有效的區塊鏈科普教育生態,與此同時,直擊區塊鏈科普現存痛點,推出簡單易懂的“秒懂區塊鏈”公益短視頻課。
該計劃旨在全維度推動社會建立對產業更清晰的認知,與“鯤鵬計劃”一道助力數字經濟及區塊鏈產業本身健康發展夯實“人才”和“產業認知”兩大基礎。[2021/4/26 20:59:37]
概率鏈是指只能根據區塊鏈網絡參與者在不同分叉鏈上的比例,而以一定概率認為某條鏈是主鏈。一般來說比特幣通過6個區塊以上來達到確認,而以太坊通過15個區塊以上來達到確認。
確定性鏈指的是每個區塊的狀態都是確定的,在未來的任意時刻你都可以從創始塊開始復現推演每個區塊的狀態。
Cosmos中的Hub理論上可以接入上述兩者,只不過對于概率鏈的支持在實踐中要相對麻煩一些。這是因為從底層設計來講,IBC跨鏈通信協議發揮作用的前提在于區塊鏈的不可逆。?
所以Cosoms試圖通過“PegZone”橋接鏈來實現概率鏈的互操作性。PegZone是追蹤記錄另一條區塊鏈狀態的區塊鏈,它要將自己橋接的某條概率鏈上的狀態確定為不可逆的,使得這些狀態得以與IBC兼容。
其中這里的ABCI是應用層的區塊鏈如何與共識層交互的接口,共識層和網絡層是由CosmosSDK底層實現,只需實現相關的ABCI接口即可自行搭建一條鏈。
ABCI接口和CosmosSDK會在接下來的Cosmos系列中會詳細介紹。
動態 | 人民日報官方微博科普區塊鏈 強調區塊鏈不等于比特幣:人民日報官方微博今早發表9圖科普區塊鏈。其中涉及區塊鏈的特點有:1、安全;2、不可篡改;3、可訪問;4、無第三方。區塊鏈對未來的影響:1、不需繁瑣個人證明;2、看病避免反復檢查;3、旅行消費更加便捷;4、交易無需第三方。同時強調,區塊鏈不等于比特幣。比特幣只是區塊鏈技術的一種應用,區塊鏈還有醫療衛生、食品安全、版權保護等諸多應用領域。[2019/10/28]
交易流程
接下來介紹Cosmos的交易流程,Cosmos的交易分為普通交易和跨鏈交易,普通交易通過應用鏈內的共識上鏈,跨鏈交易通過IBC跨鏈協議進行交易。
▲?普通交易
Cosmos的普通交易和以太坊類似,也是一個帳戶模型,有著From,To和Amount關鍵字段。
普通交易Msg:
typeMsgSendstruct{FromAddressgithub_com_cosmos_cosmos_sdk_types.AccAddressToAddressgithub_com_cosmos_cosmos_sdk_types.AccAddressAmountgithub_com_cosmos_cosmos_sdk_types.Coins}交易流程
接下來介紹一筆普通交易的流程,例如Alice轉給Bob100atom代幣。
1.Tendermint收到該筆交易,調用BaseApp的CheckTx校驗該筆交易的有效性;
2.Tendermint出塊,調用BaseApp的BeginBlock,檢查區塊的高度、Gas消耗情況和節點投票情況;
聲音 | 中科院姚建銓:要加快推進區塊鏈與物聯網融合的科普 培訓:據新華網消息,日前,在區塊鏈與物聯網融合發展峰會上,中國科學院院士姚建銓說,關注區塊鏈技術里面的大數據,跟區塊鏈技術結合起來進行測量和檢測,能更好地提升激光清洗技術。姚建銓建議,無錫今后要加快推進區塊鏈與物聯網融合的科普、培訓,正確引導廣大人民群眾對技術的認知;同時,建立專業、權威,但又普適、成套的理論體系和標準,以此切入區塊鏈的實際應用。[2018/9/18]
3.Tendermint調用BaseApp的DeliverTx,執行區塊中的交易;
4.減少Alice100atom,增加Bob100atom,存儲Alice和Bob的賬本。
5.區塊內交易全部執行完成后,Tendermint調用BaseApp的EndBlock收尾,包含執行完成后的事件和相關的驗證者集合等等;
6.Tendermint調用BaseApp的Commit,IavlStore構建MerkleTree;
7.通過返回的MerkleTreeRoot生成區塊哈希,進行一下輪出塊。
▲?跨鏈交易
交易結構
IBC協議中包含了三個主要的交易類型:
MsgPacket:定義了IBC協議的跨鏈交易數據包,包含跨鏈交易、目的鏈的超時高度和時間戳。
/IBC數據包typeMsgPacketstruct{PacketProofcommitmentexported.ProofProofHeightuint64Signersdk.AccAddress}//數據包定義了一種通過IBC跨不同鏈傳輸數據的類型typePacketstruct{//跨鏈交易數據Databyte//number對應于發送和接收的順序,必須按序發送和接收Sequenceuint64//標識來源鏈上的端口SourcePortstring//標識來源鏈上的通道SourceChannelstring//標識目的鏈上的端口DestinationPortstring//標識目的鏈上的通道DestinationChannelstring//標記數據包超時的區塊高度TimeoutHeightuint64//數據包超時的區塊時間戳TimeoutTimestampuint64}MsgAcknowledgement:定義IBC協議的響應數據包,包含跨鏈交易執行成功或者失敗的狀態。
金色財經獨家分析 監管機構、媒體、業界提示詐騙風險 區塊鏈科普道阻且長:新華社今日發文表示,近來“區塊鏈”類詐騙案件頻發,不法分子以“投資虛擬貨幣周期短、收益高、風險低”為借口,騙取用戶信任并誘使其轉賬進行投資。無獨有偶,同日消息,騰訊手機管家安全專家也提醒此類風險,并從技術上提出防騙建議。在美國,監管機構警示加密貨幣欺詐現象普遍承諾高收益而不披露潛在風險。金色財經獨家分析,不法分子假借新技術之名進行詐騙,一方面是抓住民眾趨利的心理,一方面反映出區塊鏈科普的欠缺。區塊鏈是新興科技和底層技術并有改變社會生產關系的潛力,應該進行系統性的科普教育,當前,部分大學已經開始設置了區塊鏈課程,但對于普通民眾仍然有科普的需求,人們應該了解到系統和正確的知識,不僅要了解區塊鏈的好,也要明確局限和弊端,以在高收益的誘惑下,保持清醒客觀。[2018/4/11]
/IBC響應數據包typeMsgAcknowledgementstruct{PacketAcknowledgementbyteProofcommitmentexported.ProofProofHeightuint64Signersdk.AccAddress}MsgTimeout:定義IBC協議的超時數據包,包含下一個接收包的序列號。
//IBC超時數據包typeMsgTimeoutstruct{PacketNextSequenceRecvuint64Proofcommitmentexported.ProofProofHeightuint64Signersdk.AccAddress}當應用鏈雙方在Hub注冊后,彼此發現就可以通過路由進行跨鏈交易。
IBC跨鏈流程
我們通過一個例子來介紹IBC的跨鏈交易,ChainA和ChainB都是基于CosmosSDK搭建的應用鏈,Relayer作為一個鏈下中繼負責輪詢和路由IBC的數據包,這里的大致流程如下所示:
ChainA->relayer->hub->relayer->ChainB為了更加清晰的描述ChainA的跨鏈交易是如何到達ChainB的,relayer和hub之間只是負責路由,這里簡化了relayer到hub之間的過程。
ChainA的Alice轉給ChainB的Bob100atom
1.ChainA的Tendermint收到該筆交易,調用BaseApp的BeginBlock,檢查區塊的高度、Gas消耗情況和節點投票情況;
2.執行區塊中的交易,減少Alice100atom,增加托管賬戶Escrow100atom,存儲Alice和Escrow的賬本。
3.構建跨鏈交易MsgPackage數據包,根據DestinationChannel和DestinationPort定位Outgoing隊列,將MsgPackage存入該隊列;
4.區塊內交易全部執行完成后,Tendermint調用BaseApp的EndBlock收尾,包含執行完成后的事件等等,?再調用BaseApp的Commit,調用IavlStore持久化等操作;
5.IavlStore通過當前所有的IavlTreeRoot構建MerkleTree;
6.ChainA的Tendermint通過Treeroot生成區塊哈希;
7.ChainA的Tendermint準備進行下一輪出塊;
8.中繼器Relayer輪詢ChainA的Out隊列,發現Outgoing隊列存在MsgPackag;
9.中繼器Relayer解析MsgPackage數據包來源和目的;如果發現ChainB的區塊高度大于超時高度,移除ChainA的MsgPackage,向ChainA的inComming隊列發送MsgTimeout數據包;
10.中繼器Relayer向ChainB的Incomming隊列發送包含MsgPackage數據包,ChainB隨后解析MsgPackage,驗證MsgPackage的有效性;
11.托管賬戶Escrowmint100atom,然后向Bob發送100atom;
12.ChainB構建MsgAcknowledgement數據包,中繼器Relayer輪詢ChainB的Incomming隊列,將其放入ChainB的Outgoing隊列;
13.ChainA收到ChainB的MsgAcknowledgement或者MsgTimeout數據包,如果MsgAcknowledgement包含執行失敗的狀態或者存在MsgTimeout數據包,則根據數據包內的信息進行向托管賬戶贖回對應的金額。
跨鏈難題
▲?Relayer作惡問題
場景描述:Relayer是鏈下的一個傳遞跨鏈消息的組件,任何人可以啟動Relayer來傳遞消息。
方案:所有驗證在鏈上進行,Relayer只做消息傳遞。
效果:可多個Relayer同時工作,跨鏈消息的有效性和有序性的保證和Relayer無關,至少一個不作惡Relayer即可工作
▲?跨鏈存在性證明
我們可以看到,在每個IBC數據包的結構中都包含:
struct{Proofcommitmentexported.ProofProofHeightuint64Signersdk.AccAddress}其中ProofHeight是對應的區塊高度,Proof是MerkleProof,Signer是發送者的地址,跨鏈雙方維護對方的輕節點,提供類似SPV證明的機制。
▲?跨鏈交易事務
IBC跨鏈協議中定義了兩種關于包含狀態的跨鏈交易數據包:
MsgAcknowledgement:定義IBC協議的響應數據包,包含跨鏈交易執行成功或者失敗的狀態。
//MsgAcknowledgementreceivesincomingIBCacknowledgementtypeMsgAcknowledgementstruct{PacketAcknowledgementbyteProofcommitmentexported.ProofProofHeightuint64Signersdk.AccAddress}MsgTimeout:定義IBC協議的超時數據包,包含下一個接收包的序列號。
//MsgTimeoutreceivestimed-outpackettypeMsgTimeoutstruct{PacketNextSequenceRecvuint64Proofcommitmentexported.ProofProofHeightuint64Signersdk.AccAddress}來源鏈通過MsgAcknowledgement數據包,可以判斷跨鏈交易是否執行成功,如果執行失敗來源鏈做出相對的回滾。
來源鏈通過MsgTimeout數據包,可以判斷一個跨鏈交易的數據包是否超時,如果超時來源鏈做出相對的回滾。
結論
總體來說,Cosmos作為與Polkadot齊名的跨鏈雙雄之一,在架構設計和IBC跨鏈協議上有許多值得我們學習借鑒的地方。
接下來的Cosmos系列文中會詳細介紹IBC協議和Tendermint共識詳解,敬請期待!
Web3APIDAO宣布完成了100萬美元的種子輪融資。參投方包括RarestoneCapital、TRGC、Gnosis、AutarkVentures、MANTRADAO、ZMTCapital.
1900/1/1 0:00:0012月23日,由中國電子技術標準化研究院牽頭制定的IEEE2418.2-2020《區塊鏈系統的數據格式標準》正式發布實施.
1900/1/1 0:00:00北京時間1月8日凌晨2點左右,比特幣價格一度突破了4萬美元關口,再度刷新歷史紀錄,而根據NVT比率等數據分析顯示,這輪牛市尚未結束.
1900/1/1 0:00:00現在比特幣的4千4百億美元市值已經超過了Visa的美元市值,更是遠遠超過了大通摩根的3千8百億美元的市值。比特幣同這兩個公司相比,它同Visa的可比性更強.
1900/1/1 0:00:00Brave瀏覽器用戶人數已經超過2000萬,并且已經開始支持本地IPFS協議,讓人們可以更輕松簡單的使用分布式網絡,這一實現標志著更具彈性、用戶至上的互聯網發展的邁出重要一步.
1900/1/1 0:00:00風險分級衍生品協議BarnBridge公布2021年路線圖,根據該路線圖,2021年的工作重點是啟動BarnBridgeDAO,與此同時將啟動協議Bond.Bet.
1900/1/1 0:00:00