跨链:详解Cosmos跨链间是如何相互通信( 四 )

如何实现跨链同构?

基于Tendermint开发的链可以采用同构跨链 。  Cosmos中同构链之间的资产转移原理如下 。

由于Tendermint使用PBFT+POS共识算法 , 因此只有在2/3个验证者同意的情况下 , 才会将区块提交到网络 。 可以通过检查区块头以验证区块头在特定链中是否合法来验证验证器信息 。 例如Tendermint正在开发两条链:链A和链B 。 现在假设资产需要在链上转移 。 首先 , 两个链A和B将相互注册 。 在注册过程中 , A和B认识到它们的独立性 。 然后链将相互发送各自的创世块和ChainID(用于表示不同的链) 。 由于创世块包含验证者信息 , 因此在注册后 , A和B链将具有另一条链的验证者信息以及区块头信息 。

现在 , 需要将A中的资产转移到B 。 首先用户可以将跨链交易包Tx发送到A 。 A执行packageTx , 销毁或锁定相关资产 , 然后将packageTx写入出口 。 出口可视为放置所有外部通知的跨链交易的邮箱 。

为了将在链A中发生的事件通知链B , 需要一个中继器 。 中继器负责将跨链消息从链A的出口转发到链B的出口 。 在这种情况下 , 中继器在链A的出口中查询packageTx , 并获得packageTx的Merkle证明 。 该信息被打包到IBC Package PostTx事务中并发送到链B , 链B查询关于packageTx位置的区块头信息 。 它还将区块头信息打包到IBCUpdate Chain Tx中 , 并将其发送到链B 。 注意中继器支付了IBC Package PostTx和IBCUpdate Chain Tx的交易成本 。

推荐阅读