LOADING...
LOADING...
LOADING...
当前位置: 玩币族首页 > 新闻观点 > 波卡入门系列丨XCMP番外篇

波卡入门系列丨XCMP番外篇

2021-01-14 BluemountainLabs 来源:区块链网络

摘要

XCMP是平行链之间的信息传递流程,需要两条平行链达成合作意愿,并押定一定DOT在中继链上才能进行,且此部分DOT无收益。整个过程需要两条链的收集人、验证者共同参与。传递信息时,传送链的状态也会保存在中继链上,以备链出问题需要回滚恢复状态。

上一篇文章《波卡入门系列丨波卡上的角色介绍及如何确保波卡网络安全?》,我们在前半段解释清楚了信息是如何传递跨链的,但是后半段的内容,对很多刚开始了解的朋友来说,有点晦涩抽象,今天我们把抽象具体化,用比喻说明,看不完就看最后总结部分以及可以先收藏。

不想看为什么、怎么实现的伙伴,也可以直接跳到最后看总结。

好,开始了。

首先跨链,就是两条平行链之间要合作项目,押定的DOT就是诚意金,信息跨链就是合作过程中的沟通

既然是沟通,那么想想生活、工作中,怎样才算有效沟通?需要至少满足三个基本因素。

1、沟通到位:说完整且直接说给需要了解信息的人。若第三方传达,可能出现没有传达、没传达完整、或意思有偏差。

2、沟通清晰明了有次序:有逻辑或时间顺序,或其它你们习惯的次序。

3、准确,无篡改。(当然每次最好别说太多,不好表达也不好消化)

波卡在帮助平行链传递信息的时候也要做到这三点,信息跨链传递到位、有序、准确,这样网络里的交易才能更加有效率。XCMP 的设计便是围绕这个观点来设计的。

1、传递到位

2、传递有序公平

3、传递快速安全

一、传递到位

SPREE模块&Cumulus模块,两者本质上都是Wasm Blob。波卡的跨链信息解读转换是通过Wasm来完成的。

通俗地说,信息传递到位需要双方直接沟通,避免第三方带来的遗漏或者没传达。SPREE在这个过程中实现了信息的点对点通信传达,Cumulus则实现了信息的转换。

就像一个中国人和韩国人聊天,他们直接对话是SPREE;两人用非母语英语沟通使双方都听得懂,这个非母语转换就是Cumulus。

1、SPREE

XCMP流程保证了信息从A传到B,但不确保信息会在B链上被准确解读和执行。SPREE提供了这个保证。

所以,XCMP是通过中继链的共享安全实现了无信任的消息传递,而SPREE是实现了消息在链之间的无信任执行。怎么做到的呢?

SPREE是独立的,一个链的SPREE可以向其他链的SPREE发送消息,且它的执行和状态,不受平行链其余部分逻辑的影响。这确保了消息的准确到达。

②?SPREE模块会上传到中继链,平行链加入共享该模块就会被强制执行该模块的逻辑。这确保了只知道SPREE模块的代码就能完成信息的解读和执行。

2、Cumulus

Cumulus是一个数据库,相当于是一个转换器,会把各链不同的Runtime逻辑转换为中继链验证者可以验证的函数。

二、传递有序

沟通的时候表达有一定的逻辑,会让听者更容易理解沟通的内容。

链A会接收其它很多条链B\C\D等发送过来的信息,波卡为了避免这些信息被不公平处理(被挑着优先处理或不处理),波卡设定了两个规则:

1、所有信息有次序排入接收链的输入队列

来自不同发送链的信息,会根据系统预先设定好的规则被有序识别处理。即:多个接收通道的信息,会融合到一个单独的输入序列里,一起传递给接收链。融合的规则是系统提前设置好的,接收链只需要按序处理这个输入序列的信息就行。

2、接收链每次必须至少验证一个块里的一条新信息

强制按顺序处理?+ 每次至少处理一个信息?= 所有消都会被处理。如此就保证了发送链的信息一定会被接收方处理,不会有信息因为无穷的延迟而留下不被处理。

相比之下,虽然 Cosmos 也允许选择有序发送,但由于缺乏用于此目的的通用激励模型,可能无法保证消息一定会到达。

三、传递快速安全

这部分有点复杂,我们休息5秒钟,深呼吸~

先放专业点的解释,看不下去就直接跳过,这部分是很多条链一起工作,相互存在交易依赖时需要考虑的。

Polkadot的共享安全性确保了平行链上传递过来消息的正确性和真实性。但当某条平行链出现问题时要怎么确保恢复到之前的数据,确保后面的交易不会因为链出问题而发生问题呢?

验证历史一致性

①平行链的运行本身会成为中继链历史状态的一部分,因为跨链信息传递过程中,平行链状态会以元数据形式存储在中继链上。

②中继链上的一个分叉可能会改变整个波卡网络历史,以及连接到波卡网络的平行链的历史。

③因此,对于会引用中继链中特定历史状态的平行链来说(即对引用存储在中继链上的这些交易信息的平行链来说),中继链上信息的稳定和准确就特别重要。

④所以,波卡希望对这些在特定历史状态中交互的信息采取措施,保证它们的稳定准确,以确保所有平行链的安全稳定。

我们来类比以上4句话。

先有个前提,比如现在A、B、C互相之间做一笔交易。A是个商人,要卖一批货赚差价,他找了很多制造商一起供货,其中包括B。B制作商品时需要原料供应商就找到了C。现在A能获得多少成品取决B能生产多少,B能生产多少取决于C能提供多少原料。

也就是这个过程需要B和C先交易,然后才有B和A交易。为了保证整个合作流程诚实、准确,整个过程的所有交易会有一个中立的备案公司介入,用于记录交易和提供给ABC查阅,备案公司和各方自己记录的信息一致则整个交易无误。

所以,初级学者注意,开始对应上面4句话。

①无论A和B,还是B和C的交易,都会被写入备份公司的记录系统里。所以A和B、B和C的交易信息,都是这个备份公司记录系统里信息的一部分。

②备份公司记录系统出错会影响自己的业务信誉,也会影响实际交易方的交易。因为A和B的交易基于B和C,若记录的BC交易有误,会导致信息不对称,A就可能做出错误的最终交易数,或无法确认最终的交易数也无法确认B信息的真实度。

③因此,对需要引用这个备份公司记录系统里交易信息的商家来说,备份公司系统里信息的准确、真实就显得特别的重要。

④所以,现在备份公司需要做的事情时把这些信息保存好,不丢失、不被更改。这才会有益所有的商家,同时自己也才有生意可以做。

波卡中继链就相当于这个备份公司的记录系统。跨链信息就是这些备份的信息。整个中继链的稳定安全就是这些信息的稳定安全,也是这些交易商交易的安全保障。波卡通过NPOS机制+插槽拍卖+混合共识GRANDPA & BABE来保证网络的安全稳定。

网络的稳定安全,就是信息传递的稳定安全,就是网络信息存储的稳定安全。这意味着必须使用中继链对消息进行验证,因为消息传递和记录是发生在中继链上的。

为了保证中继链的传递高效传递和可伸缩性,波卡使处理这些信息所需的算力和数据存储在中继链上尽可能的轻。这就包括了最小化中继链上数据的存储,以及特别的,需要不变的或者近乎不会变的信息大小。

所以,一方面限制了通道数量,另一方面限制了XCMP每次传递的信息的大小。如此,当有100个平行链在一个单独的中继链块上发送信息到10000个目的链的时候,才不会因为不堪重负而出现问题。

—-

编译者/作者:BluemountainLabs

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

LOADING...
LOADING...