波卡上各个平行链的资产是如何传输的?
2022-05-16 19:00
链读ChainInside
2022-05-16 19:00
订阅此专栏
收藏此文章


波卡知识图谱是我们针对波卡从零到一的入门级文章,我们尝试从波卡最基础的部分讲起,为大家提供全方位了解波卡的内容,当然这是一项巨大的工程,也充满了挑战,然而我们希望通过这样的努力让大家能够正确认知波卡,也让不了解波卡的人方便快速掌握波卡相关知识,今天是该栏目的第46期,XCM已经正式启用,意味着资产的可以在链间传输,因此本期一起来了解平行链的资产是如何传输的。



当前,XCM已经正式启用,这意味着程序能从一个链到另一个链,执行、分叉、分支、调度、转账了,也同样意味着资产能在平行链与平行链之间传输,进一步提升了波卡网络中的互操作性。

 

而Statemint作为波卡上的第一条平行链,同时也是只用于创建和管理资产的链,目前已经有14种资产在Statemint上创建。

 

随着XCM允许资产传输,波卡生态上将会创建越来越多的资产。那么这些资产是如何在链与链之间传输的?

 

Polkadot和Kusama为生态系统带来的主要属性之一是去中心化区块链互操作性

 

这种互操作性允许资产远程传输:在平行链(Parachains)之间移动资产(例如Coin、Token或NFT)的过程,以便像使用该链的任何其他原生资产一样使用它们。

 

通过XCM和SPREE模块可以实现互操作性,它们共同确保资产不会在多个链上丢失或重复。




传输是如何实现的?




从上图中可以看出,该模型中只有2个角色:来源链(Source)和目标链(Destination)

 

我们在来源链和目标链之间转移资产的方式在图上的数字标签中进行了简要总结,并在下面进行了更详细的解释:



1

发起传输(Initiate Teleport)


来源链从发送账户收集要传输的资产,并将其从流通供应中取出,同时记下被取出的资产总量。



2

接收远程传输的资产(Receive Teleported Assets)


然后,来源链创建一个名为ReceiveTeleportedAssets的XCM指令,并将从流通中取出的资产数量和接收账户作为该指令的参数。

 

然后,它将这条指令发送到目标链,在那里进行处理,并相应地将新资产重新投入流通供应中。



3

存放资产(Deposit Asset)


然后,目标链将资产存入资产的接收账户。

 

上面强调了从流通供应中取出和放回流通供应中这两个短语,首先是为了说明XCM执行者在实现将资产从流通供应中取出和放回流通供应的语义方面有多大的灵活性

 

直截了当的办法是把资产烧掉,让它们退出流通,但可以想象,确实有多种方法可以实现同样的目的,比如将资产转移到本地无法访问的账户,同样可以将资产重新流通,接收共识系统可以自由选择通过从预先填充且无法访问的资产库中释放资产来实现这种语义,或者对资产进行铸币。

 

因此,上面也提示了这种模式的缺点——它要求来源链和目标链都具有高度的相互信任。

 

目标链必须相信来源链已经适当地移除了从流通供应中发送过来的资产,并且来源链还必须相信目标链能够将退出流通的资产重新投入流通。资产传输的结果应该导致资产的相同流通供应。

 

如果未能支持这两个条件中的任何一个,都将导致资产的总发行量发生变化(在同质化通证的情况下)或者完全损失/复制一个NFT。




使用Polkadot-JS

应用程序用户界面的远程传输令牌



 
在提交传输(Teleport)交易之前,您需要了解以下几点:

 

  • 将对源链征收交易费用。此费用不会从你计划发送的传输金额中自动扣除。你的账户余额应大于传输金额和交易费用。如果你没有考虑到发送费用,则传输交易将失败。发送费用将从你的账户余额中扣除。

现有存款
在传输之后,如果你的账户余额低于1.000DOT的现有存款,那么该余额将被烧毁并丢失。要么计划传输你所有的余额,要么留下足够的余额,这样账户就不会被收割。

 

  • 目标链将收取交易费用。此费用会自从你发送的传输金额中自动扣除。扣除此费用后,目标链上的剩余账户余额应大于其现有存款。否则,传输交易将失败,发送费用和传输金额将从你的账户余额中扣除。

远程传输可以通过PolkadotJS应用程序接口或通过xcmPallet.limitedTeleportAssets()外部来完成。

 

在以下的示例中,我们将使用PolkadotJS接口将DOT从Polkadot传输到Statemint。

 

1.导航到PolkadotJS应用程序,并使用你想传输的通证连接到链上。

 


2.导航到“Accounts > Teleport”。这将打开“teleport assets”界面:

 


3.填写交易内容:
“send from account”——选择来源链有通证的账户。
“destination chain”——选择要将资产发送到的平行链。
“send to address”——选择您想控制目标链上货币的账户。
“amount”——插入要传输的通证数量。这不包括转移费。

 

4.审查完交易信息和费用后,点击“Teleport”按钮。请记住,目标链对传输的金额收取接收费。(目前在Statemint为0.0032 DOT。)

 

5.点击“Sign and Submit”。

 

6.输入你的密码,然后点击“Sign the transaction”。

 

交易将被签署和广播,通证很快就会出现在目标链上。

 


下面提供了一个有关传输(在Kusama上)的视频教程以供参考:
https://www.youtube.com/watch?v=PGyDpH2kad8




疑难解答



如果你在PolkadotJS应用程序中没有看到 "Accounts > Teleport",则你所选择的来源链还不支持Teleportation。

 

XCM是一种消息格式,它还需要搭配消息传递协议使用,比如HRMP协议,平行链可以开启与其他平行链的HRMP通道,进行跨链的消息传递。

 

而XCM与HRMP的组合,能让波卡的平行链实现跨链的可组合性,实现平行链间的互惠互利,为波卡生态赋能。










精选文章



民主治 | 经济模型 | Slash | 通货膨胀 | NPoS | Web3基金
Staking
| Gavin Wood | 跨链 | 平行链 | 国库 | Parity
KSM | Web3.0 | Kusama | Grant指南
Statemint | 区块链 | SBP计划 | NFT
XCVM | BEEFY | XCM
Wasm



 


相关Wiki

【免责声明】市场有风险,投资需谨慎。本文不构成投资建议,用户应考虑本文中的任何意见、观点或结论是否符合其特定状况。据此投资,责任自负。

链读ChainInside
数据请求中
查看更多

推荐专栏

数据请求中
在 App 打开