导读
跨链作为近两年来区块链技术一个炙手可热的方向,吸引了许多人的目光。
从技术层面看,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间接通信。
Bitfinex Alpha:比特币链上活动急剧增加,市场出现多项看涨指标:5月9日消息,根据Bitfinex Alpha最新报告,由于Meme币的火爆和BRC-20代币交易的增加,比特币网络交易费用达到了两年来的最高水平。BRC-20代币标准,类似于以太坊的ERC-20,自3月份推出以来迅速引发关注。
比特币网络统计数据也接近历史新高,每日比特币交易数量超过68万,超过了2017年和2021年牛市期间创下的纪录。
我们看到的比特币看涨情况是,市场波动在短期内可能会受到抑制。在美联储上周加息后,流动性非常低,仅为3400万美元,而资金费率基本保持中性。此外,7天至180天到期的BTC期权的25% delta斜度几乎都接近于零,表明投资者没有为看跌期权或看涨期权支付溢价。
然而,历史趋势表明,这种平静的市场局面不会持续太久。预计清算引发的波动很快就会出现,可能会延续比特币今年以来的上涨趋势。
通常可靠的MVRV(市场价值与实现价值之比)Z得分指标也支持看涨的论点。该指标为0.7,并没有受到最近3万美元阻力位的太大影响,这表明投资者仍更有可能购买和积累。[2023/5/9 14:51:22]
当Zone对Hub建立起一个IBC连接,它可以自动访问其他连接到该Hub上的Zone,这意味着Zone无需与其他Zone连接,而仅仅连接到Hub上即可。
当一个Zone通过Hub收到来自其他Zone的代币时,它只需要信任Hub,而不需要信任网络中所有其它的Zone。
为什么Cosmos不直接利用IBC建立Zone与Zone之间的连接?
事实上,随着接入到网络中Zone的数量上升,以直连方式实现通信会导致链路数量呈平方级上升,如此快速的增长显然会令网络不堪重负。
Cosmos架构
Cosmos作为一个多链互操作的跨链平台,支持不同种类应用链接入到Cosmos的网络,如图所示:
已有超1800个地址向土耳其捐助价值约350万美元的加密货币:2月8日消息,据 Dune Analytics 数据显示,截至目前已有 1,826 个独立地址通过多个网络(BSC、ETH、AVAX),向土耳其捐助价值 3,512,155 美元的加密货币。[2023/2/8 11:55:14]
一般来说,应用链可以分成两种类型:概率链和确定性链。
概率链是指只能根据区块链网络参与者在不同分叉链上的比例,而以一定概率认为某条链是主链。一般来说比特币通过6个区块以上来达到确认,而以太坊通过15个区块以上来达到确认。
确定性链指的是每个区块的状态都是确定的,在未来的任意时刻你都可以从创始块开始复现推演每个区块的状态。
Cosmos中的Hub理论上可以接入上述两者,只不过对于概率链的支持在实践中要相对麻烦一些。这是因为从底层设计来讲,IBC跨链通信协议发挥作用的前提在于区块链的不可逆。?
所以Cosoms试图通过“PegZone”桥接链来实现概率链的互操作性。PegZone是追踪记录另一条区块链状态的区块链,它要将自己桥接的某条概率链上的状态确定为不可逆的,使得这些状态得以与IBC兼容。
其中这里的ABCI是应用层的区块链如何与共识层交互的接口,共识层和网络层是由CosmosSDK底层实现,只需实现相关的ABCI接口即可自行搭建一条链。
ABCI接口和CosmosSDK会在接下来的Cosmos系列中会详细介绍。
DigiDaigaku Genesis系列NFT近24小时交易额增幅达300%:金色财经报道,OpenSea数据显示,DigiDaigaku Genesis系列NFT近24小时交易额为200 ETH,24小时交易额增幅达300%,24小时交易额排名位列OpenSea第6。[2022/10/20 16:32:01]
交易流程
接下来介绍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消耗情况和节点投票情况;
Cool Cats Group任命迪士尼资深人士Stephen Teglas为首席执行官:金色财经报道,蓝筹NFT项目Cool Cats 母公司Cool Cats Group LLC今天宣布, Stephen Teglas已加入公司担任首席执行官。在过去的25年中,斯蒂芬一直致力于为华特迪士尼公司和华纳兄弟公司领导消费品品牌管理和商业化,最近在NFT技术公司RECUR领导品牌合作伙伴关系。
作为首席执行官,Teglas将利用他丰富的领导经验来执行Cool Cats的使命,成为全球最大的NFT品牌和媒体公司。该公司将通过在动画内容、游戏、现场活动、消费品和出版领域等方面的合作,将Cool Cats品牌带给全球粉丝。(prnewswire)[2022/9/22 7:12:30]
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协议的响应数据包,包含跨链交易执行成功或者失败的状态。
跨链桥Stargate将建立ETH跨链流动性池并为其设置激励措施:5月30日消息,跨链桥 Stargate SIP 7 已由社区投票通过。该提案提出在以太坊主网、Optimism 和 Arbitrum 上建立 ETH 流动性池,并为其设置激励措施。提案通过后,项目团队将花费数周时间进行合约部署等工作,完成后用户可通过 Stargate 实现 ETH 的跨链转账。[2022/5/30 3:50:22]
/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共识详解,敬请期待!
作者简介
江哲
来自数据网格实验室BitXHub团队主要负责区块链账本互操作技术相关研究工作
12月19日,2020CCF区块链技术大会暨首届中国济南区块链产业发展高峰论坛在山东济南举行。在《区块链基础设施与自主创新》圆桌论坛上,重庆电信区块链负责人张璐、桂林电子科技大学教授丁勇、微众银行区块链科学家严强、浙江大学教授尹可挺和.
1900/1/1 0:00:00行情概述: 比特币于昨日凌晨再次创出新高,但没有真正意义上突破前高;比特币在23000平台之上震荡期间,主流相继轮动,从XRP、LTC至BCH,资金轮动效应逐渐减弱,同时大盘走至收敛末端,需警惕风险.
1900/1/1 0:00:00据格隆汇消息,隔夜美股区块链股集体大涨,带动今早港股区块链概念股集体高开。其中,雄岸科技高开11.68%,柏能集团高开4.42%,BC科技集团高开近3%.
1900/1/1 0:00:00巴比特消息,中国邮政集团有限公司北京市分公司即将推出基于区块链技术的生肖纪念章。该纪念章的主题为《生机》,采用AU999黄金制作而成,第一期发行2000枚,每?枚纪念章均拥有唯?编号,并运用区块链技术,将纪念章的制作、加工、运输、销售.
1900/1/1 0:00:00据比推数据,在经历了本周初的下跌之后,比特币市场周四反弹突破4万美元,重新向4万美元上方的历史高点发起挑战.
1900/1/1 0:00:00据Cointelegraph报道,被曝丢失内含7500枚BTC硬盘的IT工作者JamesHowells最近再次请求挖掘一个垃圾填埋场,以期把硬盘设备找回来.
1900/1/1 0:00:00