AD
首页 > 数字货币 > 正文

QTech|走进Cosmos之入门_数字货币

[2021-01-31 21:33:54] 来源: 编辑:wangjia 点击量:
评论 点击收藏
导读: 跨链作为近两年来区块链技术一个炙手可热的方向,吸引了许多人的目光。从技术层面看,Cosmos无疑可以与Polkadot并称“跨链双雄”,两者的技术路线并无明显的优劣之分,只是开发理念各有千秋。 区块
跨链作为近两年来区块链技术一个炙手可热的方向,吸引了许多人的目光。从技术层面看,Cosmos无疑可以与Polkadot并称“跨链双雄”,两者的技术路线并无明显的优劣之分,只是开发理念各有千秋。

区块链百科合集 之 层 级 架 构

如果我们将区块链想像成洋葱,各类技术组件就像洋葱一层紧挨一层的组织,但在实现衔接上要更为复杂,这些相邻层次的组件需要通过接口交互和支撑。

导 读

跨链作为近两年来区块链手艺一个炙手可热的偏向,吸引了许多人的眼光。

从手艺层面看,Cosmos无疑可以与Polkadot并称“跨链双雄”,两者的手艺门路并无显著的优劣之分,只是开发理念各有千秋。

Cosmos最初是由Tendermint团队构建的开源社区项目,它将自己界说为“一个由多条自力平行区块链组成的去中央化网络”,和Polkadot一样,也由中继手艺实现。

Cosmos到底是若何解决跨链历程中遇到的各项问题的,本文通过对其架构和跨链买卖流程的解读,带我们进一步领会Cosmos。

什么是Cosmos

Cosmos作为跨链双雄之一,定位为一个可扩展、易用、互操作的区块链互联网。

首先先容Cosmos的三个主要组成部分

Hub:本质上是一条中继链,由官方举行维护,被看成跨链新闻的信托中央;

Zone:介入到Cosmos网络中的应用链,允许差别类型的区块链加入进来;

IBC(Inter-Blockchain Communication Protocol):链间通讯协议。

他们三者的关系我们从上面的简图中看到,位于中央的是Hub。

Hub治理着许多被称为“Zone”的应用链,在Cosmos网络中,由Hub来追踪纪录各个Zone的状态,而每一个Zone有义务不停地把自身产出的新区块反向汇报给Hub。

Hub与Zone直接通讯,而Zone与Zone之间通过IBC(跨链协议) 间接通讯。

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

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

为什么Cosmos不直接行使IBC确立Zone与Zone之间的毗邻?

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

Cosmos架构

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

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

概率链(Probabilistic chain)是指只能凭据区块链网络介入者在差别分叉链上的比例,而以一定概率以为某条链是主链(例如比特币和以太坊)。一般来说比特币通过6个区块以上来到达确认,而以太坊通过15个区块以上来到达确认。

确定性链(Determinmistic chain)指的是每个区块的状态都是确定的(finalized),在未来的随便时刻你都可以从首创块最先复现推演每个区块的状态(例如基于 Tendermint和BFT共识的区块链)。

Cosmos中的Hub理论上可以接入上述两者,只不过对于概率链的支持在实践中要相对贫苦一些。这是由于从底层设计来讲,IBC跨链通讯协议发挥作用的条件在于区块链的不可逆。

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

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

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

买卖流程

接下来先容Cosmos的买卖流程,Cosmos的买卖分为通俗买卖和跨链买卖,通俗买卖通过应用链内的共识上链,跨链买卖通过IBC跨链协议举行买卖。

▲ 通俗买卖

Cosmos的通俗买卖和以太坊类似,也是一个帐户模子,有着From,To和Amount要害字段。

通俗买卖Msg:

type MsgSend struct { FromAddress github_com_cosmos_cosmos_sdk_types.AccAddress ToAddress github_com_cosmos_cosmos_sdk_types.AccAddress Amount github_com_cosmos_cosmos_sdk_types.Coins }
买卖流程

接下来先容一笔通俗买卖的流程,例如Alice转给Bob 100atom代币。

1. Tendermint收到该笔买卖,挪用BaseApp的CheckTx校验该笔买卖的有效性;

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

3. Tendermint挪用BaseApp的DeliverTx,执行区块中的买卖;

4. 削减Alice 100atom,增添Bob 100atom,存储Alice和Bob的账本。

5. 区块内买卖所有执行完成后,Tendermint挪用BaseApp的EndBlock收尾,包罗执行完成后的事宜和相关的验证者聚集等等;

6. Tendermint挪用BaseApp的Commit,IavlStore构建Merkle Tree;

7. 通过返回的MerkleTree Root天生区块哈希,举行一下轮出块。

▲ 跨链买卖

买卖结构

IBC协议中包罗了三个主要的买卖类型:

MsgPacket:界说了IBC协议的跨链买卖数据包,包罗跨链买卖、目的链的超时高度和时间戳(Port和Channel会在下一期的IBC协议中先容)。

/ IBC 数据包type MsgPacket struct { Packet Proof commitmentexported.Proof ProofHeight uint64 Signer sdk.AccAddress }// 数据包界说了一种通过IBC跨差别链传输数据的类型type Packet struct { // 跨链买卖数据 Data []byte // number对应于发送和吸收的顺序,必须按序发送和吸收 Sequence uint64 // 标识泉源链上的端口 SourcePort string // 标识泉源链上的通道 SourceChannel string // 标识目的链上的端口 DestinationPort string // 标识目的链上的通道 DestinationChannel string // 符号数据包超时的区块高度 TimeoutHeight uint64 // 数据包超时的区块时间戳 TimeoutTimestamp uint64 }

MsgAcknowledgement:界说IBC协议的响应数据包,包罗跨链买卖执行乐成或者失败的状态。

/ IBC响应数据包type MsgAcknowledgement struct { Packet Acknowledgement []byte Proof commitmentexported.Proof ProofHeight uint64 Signer sdk.AccAddress }

MsgTimeout:界说IBC协议的超时数据包,包罗下一个吸收包的序列号。

// IBC超时数据包type MsgTimeout struct { Packet NextSequenceRecv uint64 Proof commitmentexported.Proof ProofHeight uint64 Signer sdk.AccAddress }

当应用链双方在Hub注册后,相互发现就可以通过路由举行跨链买卖。

IBC跨链流程

我们通过一个例子来先容IBC的跨链买卖,ChainA和ChainB都是基于CosmosSDK搭建的应用链,Relayer作为一个链下中继卖力轮询和路由IBC的数据包,这里的大致流程如下所示:

ChainA -  relayer -  hub -  relayer -  ChainB

为了加倍清晰的形貌ChainA的跨链买卖是若何到达ChainB的,relayer和hub之间只是卖力路由,这里简化了relayer到hub之间的历程。

ChainA的Alice转给ChainB的Bob 100atom

1. ChainA的Tendermint收到该笔买卖,挪用BaseApp的BeginBlock,检查区块的高度、Gas消耗情形和节点投票情形;

2. 执行区块中的买卖,削减Alice 100atom,增添托管账户Escrow 100atom,存储Alice和Escrow的账本(若是不是原生代币,则销毁Alice 100代币)。

3. 构建跨链买卖MsgPackage数据包,凭据DestinationChannel和DestinationPort定位Outgoing行列,将MsgPackage存入该行列;

4. 区块内买卖所有执行完成后,Tendermint挪用BaseApp的EndBlock收尾,包罗执行完成后的事宜等等, 再挪用BaseApp的Commit,挪用IavlStore持久化等操作;

5. IavlStore通过当前所有的Iavl Tree Root构建Merkle Tree;

6. ChainA的Tendermint通过Tree root天生区块哈希;

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. 托管账户Escrow mint 100atom,然后向Bob发送100 atom;

12. ChainB构建MsgAcknowledgement数据包,中继器Relayer轮询ChainB的Incomming行列,将其放入ChainB的Outgoing行列;

13. ChainA收到ChainB的MsgAcknowledgement或者MsgTimeout数据包,若是MsgAcknowledgement包罗执行失败的状态或者存在MsgTimeout数据包,则凭据数据包内的信息举行向托管账户赎回对应的金额。

跨链难题

▲ Relayer 作恶问题

场景形貌:Relayer是链下的一个通报跨链新闻的组件,任何人可以启动Relayer来通报新闻。

方案:所有验证在链上举行,Relayer只做新闻通报。

效果:可多个Relayer同时事情,跨链新闻的有效性和有序性的保证和Relayer无关,至少一个不作恶Relayer即可事情

▲ 跨链存在性证实

我们可以看到,在每个IBC数据包的结构中都包罗:

struct { Proof commitmentexported.Proof ProofHeight uint64 Signer sdk.AccAddress }

其中ProofHeight是对应的区块高度,Proof是Merkle Proof,Signer是发送者的地址,跨链双方维护对方的轻节点,提供类似SPV证实的机制。

▲ 跨链买卖事务

IBC跨链协议中界说了两种关于包罗状态的跨链买卖数据包:

MsgAcknowledgement:界说IBC协议的响应数据包,包罗跨链买卖执行乐成或者失败的状态。

// MsgAcknowledgement receives incoming IBC acknowledgementtype MsgAcknowledgement struct { Packet Acknowledgement []byte Proof commitmentexported.Proof ProofHeight uint64 Signer sdk.AccAddress }

MsgTimeout:界说IBC协议的超时数据包,包罗下一个吸收包的序列号。

// MsgTimeout receives timed-out packettype MsgTimeout struct { Packet NextSequenceRecv uint64 Proof commitmentexported.Proof ProofHeight uint64 Signer sdk.AccAddress }

泉源链通过MsgAcknowledgement数据包,可以判断跨链买卖是否执行乐成,若是执行失败泉源链做出相对的回滚。

泉源链通过MsgTimeout数据包,可以判断一个跨链买卖的数据包是否超时,若是超时泉源链做出相对的回滚。

结论

总体来说,Cosmos作为与Polkadot齐名的跨链双雄之一,在架构设计和IBC跨链协议上有许多值得我们学习借鉴的地方。

加入新手交流群:每天早盘分析、币种行情分析

添加助理微信,一对一专业指导:chengqing930520

上一篇:如何在IPFS 上存储署名和加密的数据
下一篇: 区块链百科合集 之 层 级 架 构

加入新手交流群:每天早盘分析、币种行情分析,添加助理微信

一对一专业指导:chengqing930520

最新资讯
提供比特币数字货币以太坊eth,莱特币ltc,EOS今日价格、走势、行情、资讯、OKEX、币安、火币网、中币、比特儿、比特币交易平台网站。

2021 数字货币 网站地图

查看更多:

为您推荐