计算机系统应用教程网站

网站首页 > 技术文章 正文

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

btikc 2024-09-10 11:39:17 技术文章 15 ℃ 0 评论


跨链作为区块链一种不可或缺的技术,我们研究跨链,以更好地了解区块链之间是如何相互通信。

最初构建区块链时,他们设想能够提供“一刀切”的解决方案,这意味着所有交易,智能合约或其他任何事物都在单个链上执行。 但是,现在很明显,这样的系统不太实用,尤其是在存在可伸缩性限制和创新约束的情况下。

跨链是两个相对独立的区块链之间的互操作性。换句话说,由于区块链是以标准化的方式构建的,因此它允许区块链彼此通信。跨链实施主要以资产交换和资产转移为代表,既是区块链世界的重要组成部分,也是PPIO的重要研究方向。使用交叉链,可以避免单链的局限性。今天,我们将探讨Cosmos跨链协议的逻辑结构。

根据不同的基础技术,跨链的相互作用可以分为同构的跨链和异类的跨链。对于同构链,安全机制,共识算法,网络拓扑和块生成验证逻辑是一致的,它们之间的跨链交互相对简单。

另一方面,异构链的跨链交互相对复杂,并且包括诸如针对比特币的PoW算法和针对Tendermint的PBFT共识算法之类的技术。区块组成和确定性保证机制差异很大,因此直接设计跨链交互机制并不容易。异构链之间的跨链交互通常需要第三方辅助服务。

如何实现跨链同构?


基于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的交易成本。

链B接收到IBCPacketPostTx事务后,它首先通过该链中的验证器检查IBCUpdateChainTx中的区块头是否为链A的一部分,然后验证IBCPacketPostTx中跨链事务的Merkle证明是否等于该区块IBCUpdateChainTx中的头哈希。当所有支票都通过时,B链开始执行相关操作(对于B链,这意味着生成相关资产等)。


同构跨链实现方法


Cosmos中的跨链由IBC协议实现。 Cosmos生态系统中定义了以下IBC协议软件包:IBCRegisterChainTx,IBCUpdateChainTx,IBCPacketCreateTx,IBCPacketPostTx。

IBCRegisterChainTx

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表