LOADING...
LOADING...
LOADING...
当前位置: 玩币族首页 > 币圈百科 > 解读XCMP协议帮助波卡的消息和资产跨链实现过程

解读XCMP协议帮助波卡的消息和资产跨链实现过程

2020-11-12 币圈小雪 来源:区块链网络


今天看了一个波卡的平行链是如何通过XCMP来进行跨链消息传递的视频,来理一理波卡的跨链过程。

首先我们需要弄清楚波卡的大体结构。

1. 波卡整个体系可以理解为由很多不同的区块链组成的一个区块链网络,这些区块链可以分成三种不同的类型。分别是中继链,平行链以及转接桥平行链。

这些叫法很复杂,我们可以用其他区块链的常用叫法来比喻。


中继链:就是波卡的主链,相当于以太坊的第一层网络主链,或者Nervos的底层CKB这样的意思;

平行链:是基于波卡的底层区块链框架搭建出来的链,也就是在Substrate框架上开发出来的区块链。他们是同构链,因为都是从Substrate这个底层框架上搭起来的,拥有相同的底层设计。

转接桥平行链:他们不是基于波卡的Substrate框架开发的区块链,而是独立于波卡设计的其他外部链,比如以太坊,比特币,Cosmos,EOS等等,与Substrate框架上面搭建的区块链相比,他们具有不同的底层架构,因此他们是异构链。

这些链要跟波卡主链,其他平行链,或者其他异构链进行沟通交流,波卡会给他们之间先架起一座桥,叫做转接桥,用来在他们之间传递信息。因此这些外部异构链在波卡的术语中叫做转接桥平行链。


2. 波卡的网络中主要有如下几种角色在维持网络的运行。

收集人:他们负责收集平行链上新的消息和交易;并把来自平行链的候选区块发送给中继链的验证人。

验证人:他们负责验证平行链上提交的区块;打包区块,并在中继链上生成区块。类似于比特币网络中的记账矿工。

钓鱼人: 网络监督者,负责监督和举报作恶的节点。


弄清楚了波卡网络的整体结构,接下来要来说一下波卡实现跨链的一个协议,叫做XCMP。

它的基本原理是由XCMP向两个不同的链搭建一座沟通的桥来传递消息,在消息被另一方接收到,并执行了相关操作之后,由中继链帮助验证执行的结果,同时对验证结果的提供共识的安全保障。

跨链传递消息的具体过程如下:

假设你准备从以太坊上(平行链A)发动一条消息到EOS(平行链B)的一个地址上。

在你向B发送消息之前,实际是任何两个异构的平行链之间发送消息之前,XCMP都需要在你们之间开启一条单向通道,建一座临时的转接桥。用来在你和B之间传递消息。


1. 有了这个桥, 你就可以从以太坊地址通过它将你想要向B传递的消息发布出来。

2. 这时候,在以太坊上面服务的收集人就会把这条消息向中继链上的所有节点(包括轻节点和全节点)进行广播,相当于向全网络公开宣布以太坊上有这样一条消息发给了B。

在每一条跨链消息中,都会包含一个目的地和时间戳,用来辨认每条消息的唯一性。

3. 你发的这条消息也会带着这些信息,被中继链上的节点在网络中点对点地传播。最终,会被EOS(平行链B)上的收集者看到,因为他们的工作就是随时都在监听网络中有没有新消息,他们就是一群到处探听消息的八卦婆。


而这些收集人既是中继链上的全节点,也是平行链上的全节点。所以他们之间时刻都处于相互联系的状态之中。

4. 平行链B,也就是EOS上的收集人收集到来自你从以太坊链上发来的新信息之后,会对这条消息进行初步的检验,没有问题之后会加上自己的签名,打包进一个新提议的区块之中,这个区块被称为候选区块。

5. 然后把这个候选区块发送到中继链上,提交给中继链上的验证人,让他们去做验证。


5. 区块提议包含了想要放到中继链上去的新消息和交易,一旦EOS上的收集人创建了一个新提议的去留,并提交给了中继链上的验证人,验证人就会验证该区块。

6. 如果中继链上验证人认为区块没有问题,会,那么验证人就会把EOS收集人提交的这个区块提议通过算法生成一个哈希值,并把它打包成区块,发给其他验证人进行验证。

7. 中继链上超过一半的验证人确认之后,这个新区块就会被加入到中继链的区块链上去。

这样平行链A的消息就传递到平行链B上去了。


如果你从A发往B的是一笔资产,波卡的处理流程为

1. 你从A链(以太坊)发起一笔10ETH的转账,转给B在以太坊链上的地址;

2. 以太坊上的收集人收到这条消息,验证交易没有问题,会把相关交易和信息打包成区块放在以太坊链上的输出队列中,等待中继链上的验证者来传递;

3. 中继链上的验证者会将这条信息传递到B(EOS链),并放到B的输入队列;

4. EOS链上的收集人收集到这条信息并验证没有问题之后,会怎么做呢?

如果你在A链上的转账要求是跨链到EOS上,那么EOS链上的收集人会帮你在EOS链上铸造与10个ETH相同价值的10个OETH(EOS上锚定ETH的代币名称),并发到你在EOS链上的地址。如果你的要求是兑换,那么EOS链上的收集人会帮你把10个ETH对应的EOS数量发到你灾难EOS上的地址。

当然这里面的转账实际操作都是智能合约,而非真实的人在操作。

从这个过程,我们能看出波卡的资产跨链,实质是把一个链上的资产转换成了另一个链上的资产。

这应该是目前绝大部分跨链方案都采用的方法。

—-

编译者/作者:币圈小雪

玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。

LOADING...
LOADING...