区块见闻 区块见闻
Ctrl+D收藏区块见闻

区块链:科普 | 走进Cosmos之入门_ACK

作者:

时间:

作者简介

江哲

来自数据网格实验室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间接通信。

IMF今日发布的加密货币科普视频实为两年前旧闻,且存在诸多疏漏:国际货币基金组织IMF今日在推特上发布了一条关于加密货币的科普视频,这段时长两分钟的视频最初发布于2018年6月。该视频称加密货币是“货币进化的下一步”,但没有特别提到DLT、区块链,甚至是代币名称等术语。BTC、XRP和ETH只出现在说明加密交易的图形中。尽管这段视频到目前为止已经获得了超过13.7万的点击量和2900个赞,但来自加密社区的许多反应都是批评的,他们指出了信息中的漏洞和似乎具有误导性的措辞。

Reddit用户nanooverbtc称:“他们犯了很多错误,比如把私钥称为密码。”该视频也没有讨论挖矿或加密货币供应。Kraken策略师Pierre Rochard等知名人士表示:“可证明的稀缺性是比特币有趣的原因,你忘了提这一点。”(Cointelegraph)[2020/8/24]

当Zone对Hub建立起一个IBC连接,它可以自动访问其他连接到该Hub上的Zone,这意味着Zone无需与其他Zone连接,而仅仅连接到Hub上即可。

当一个Zone通过Hub收到来自其他Zone的代币时,它只需要信任Hub,而不需要信任网络中所有其它的Zone。

为什么Cosmos不直接利用IBC建立Zone与Zone之间的连接?

事实上,随着接入到网络中Zone的数量上升,以直连方式实现通信会导致链路数量呈平方级上升,如此快速的增长显然会令网络不堪重负。

Cosmos架构

Cosmos作为一个多链互操作的跨链平台,支持不同种类应用链接入到Cosmos的网络,如图所示:

一般来说,应用链可以分成两种类型:概率链和确定性链。

人大附中物理老师李永乐科普拜占庭将军问题和区块链:5月14日,人大附中物理老师、科普视频网红李永乐在其公众号发布视频《拜占庭将军问题是什么?区块链如何防范恶意节点?》。李永乐老师在视频中对拜占庭将军问题和区块链进行了讲解,他表示,拜占庭将军问题本质上指的是,在分布式计算机网络中,如果存在故障和恶意节点,是否能够保持正常节点的网络一致性问题。在近40年的时间里,人们提出了许多方案解决这一问题,称为拜占庭容错法。例如兰波特自己提出了口头协议、书面协议法,后来有人提出了实用拜占庭容错PBFT算法,在2008年,中本聪发明比特币后,人们又设想了通过区块链的方法解决这一问题。区块链通过算力证明来保持账本的一致性,也就是必须计算数学题,才能得到记账的权力,其他人对这个记账结果进行验证,如果是对的,就认可你的结果。与拜占庭问题比起来,就增加了叛徒的成本。[2020/5/14]

概率链是指只能根据区块链网络参与者在不同分叉链上的比例,而以一定概率认为某条链是主链。一般来说比特币通过6个区块以上来达到确认,而以太坊通过15个区块以上来达到确认。

确定性链指的是每个区块的状态都是确定的,在未来的任意时刻你都可以从创始块开始复现推演每个区块的状态。

Cosmos中的Hub理论上可以接入上述两者,只不过对于概率链的支持在实践中要相对麻烦一些。这是因为从底层设计来讲,IBC跨链通信协议发挥作用的前提在于区块链的不可逆。?

所以Cosoms试图通过“PegZone”桥接链来实现概率链的互操作性。PegZone是追踪记录另一条区块链状态的区块链,它要将自己桥接的某条概率链上的状态确定为不可逆的,使得这些状态得以与IBC兼容。

其中这里的ABCI是应用层的区块链如何与共识层交互的接口,共识层和网络层是由CosmosSDK底层实现,只需实现相关的ABCI接口即可自行搭建一条链。

现场 | 火币中国推出数字经济及区块链产业科普新书:金色财经现场报道,12月6日,由海南省工业和信息化厅主办,南南合作金融中心协办,海南生态软件园、火币中国承办的“海南自贸港数字经济和区块链国际合作论坛”在海口举行,这是全球首次区块链部长级论坛。

在本次论坛上,火币中国举行了“数字经济及区块链产业科普系列新书发布”仪式,希望通过教材、专业教育、培训等多种方式,帮助从业者、高校、研究机构深入了解区块链,从而建立起区块链全局性知识模型,真正推动区块链应用落地。火币中国CEO袁煜明介绍,将联合机械工业出版社面向普通高等教育推出《区块链导论》、《区块链系统设计与应用》和《区块链新商业模式分析》系列教材,这是国内最早推动的区块链教材之一;火币中国还积极参与数字经济的研究,由中信出版社出版的新书《读懂Libra》已经上市;由火币中国负责编写的区块链技术科普读物《区块链技术进阶指南》将于12月面世;首本行业内最全的区块链应用案例集《区块链产业应用100例》在本次论坛进行了首次刊印。[2019/12/6]

ABCI接口和CosmosSDK会在接下来的Cosmos系列中会详细介绍。

交易流程

接下来介绍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}交易流程

声音 | ETC Labs主管:科普教育是未来几年公链面临的巨大挑战:ETCLabs主管Darin Kotalik认为,科普教育是未来几年公链面临的巨大挑战,人们必须要对区块链有基本的认识,分清楚公链和私链的区别。[2019/8/25]

接下来介绍一笔普通交易的流程,例如Alice转给Bob100atom代币。

1.Tendermint收到该笔交易,调用BaseApp的CheckTx校验该笔交易的有效性;

2.Tendermint出块,调用BaseApp的BeginBlock,检查区块的高度、Gas消耗情况和节点投票情况;

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/9/18]

/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共识详解,敬请期待!

标签:区块链ACKBAREND玩区块链的都是什么人群ACK价格Shibarium DAOpendle币

以太坊价格热门资讯
ROCK:又有巨头入场!资管巨头贝莱德可能通过某些基金购买比特币期货_Jack Raffle

特币在2021年开年接连创下历史新高,资管巨头贝莱德可能成为下一个进入加密市场的巨头。 根据向美国证券交易委员会(SEC)提交的两份文件,贝莱德可能将通过旗下的部分基金对比特币期货进行配置.

比特币:摩根士丹利旗下投资部门考虑押注比特币_ROCK币

北京时间2月14日凌晨消息,据彭博社报道称,摩根士丹利旗下投资部门CounterpointGlobal正在探讨是否押注比特币.

BAR:BarnBridge公布2021年路线图:将启动BarnBridge DAO并发布SMART Yield Bonds_END

风险分级衍生品协议BarnBridge公布2021年路线图,根据该路线图,2021年的工作重点是启动BarnBridgeDAO,与此同时将启动协议Bond.Bet.

COS:狂欢盛宴继续!比特币日内突破37700美元 加密货币市值首超1万亿美元_msg币怎么交易

来源:FX168财经报社随着加密货币的大规模反弹继续,比特币周四突破37700美元,创下新的历史新高。自2021年初以来,这种加密货币上涨了约29%,在过去12个月飙升超过380%.

比特币:MicroStrategy筹集9亿美元购买更多比特币_RAT

在周二宣布MicroStrategy计划通过出售可转换债券购买6亿美元的比特币之后,这家商业情报公司又将金额增加了3亿美元.

比特币:国内首个自主可控区块链软硬件技术体系长安链在京发布_ASTROLION

1月27日下午,由国家发展改革委、科技部、工业和信息化部、中国人民银行、国务院国资委、国家税务总局、国家市场监管总局、北京市人民政府联合指导.