资产转移是一种基于Uniswap V2(详情请参见:
https://github.com/Uniswap/v2-core)逻辑的简单自动做市商(AMM)机制,作为一个模块(pallet,详情请参见:
https://github.com/paritytech/polkadot-sdk/tree/master/substrate/frame/asset-conversion)部署波卡在Asset Hub上。在AMM模型中,通证的价格由流动性池中通证比例的数学公式决定,这与使用订单簿的传统交易所不同。这将是一个通过Polkadot OpenGov控制的“无需信任”的去中心化交易所(DEX)。
注:AssetHub的流动性池的资产对将始终包含中继链的原生通证作为其中一种资产。不允许为任意资产对组成的池提供流动性。
只要存在流动性池,Asset Hub上的资产转移就允许使用任何资产支付费用,这样费用处理者(在这种情况下是Collator)只接收原生资产。
资产转移模块允许:
- 使用中继链的原生通证和某一资产创建流动性池,详情请参见:
- 提供流动性并获得相应的流动性提供者(Liquidity Provider,LP)通证,详情请参见:
- 将LP通证换回资产,详情请参见:
- 如果已创建了流动性池,则可以交换资产,详情请参见:
- 通过运行时调用端点查询交换价格,详情请参见:
- 查询流动性池的大小,详情请参见:
资产转移的用户指南和教程可在此处获取,详情请参见:https://wiki.polkadot.network/docs/learn-guides-asset-conversion
用任意资产支付费用-钱包
没有资产转移模块,只能使用DOT和足够的资产(详情请参见:
https://wiki.polkadot.network/docs/learn-assets#sufficient-assets)来支付交易费用。在部署了资产转移模块后,钱包可以让用户通过池中的DOT或足够的任意资产来支付交易费用。更具体地说,这一功能是通过资产转移交易支付模块(Asset Conversion Transaction Payment Pallet,详情请参见:
处理低流动性池:钱包和用户界面应确保向用户发出必要的警告信息,以防止用户意外地花费全部资金在一个没有流动性或流动性低的池上进行交换。
用任意资产支付费用-平行链
平行链可以使用AssetHub上具有流动性池的任意资产来支付其跨链消息传递(XCM)执行费用。
用外来资产创建流动性池-平行链
资产模块使用XCM的多重位置(MultiLocations)来表示资产,并使用它们相应的来源来控制这些资产。
钱包和交易所原生集成平行链通证的痛点之一在于,它们需要运行单独的平行链基础设施(如全节点)来处理存款,并且需要额外的代码来处理提款,因为它们需要在每个平行链上构建和广播交易。这些平行链可能会使用不同的余额模块或不同的排序方式。当波卡托管数百条(甚至可能数千条)平行链时,从网络支持的角度来看,这将成为一个巨大的负担。这与增加对额外ERC20通证的支持形成鲜明对比;由于以太坊节点已经提供了所需的所有数据,因此增加对ERC20通证支持的边际工作量非常小。
在Asset Hub对这些资产的支持,交易所/托管机构可以监控一条链上的存款(应用程序和用户界面需要提供转移到Asset Hub的选项)。对于提款,用户可以选择将资金提取到他们在Asset Hub上的地址。这里有两个提升用户体验的好处:
- 交易所/托管机构只需在一条平行链上进行交易,并且无需提升任何基础设施,就可以访问其他所有的平行链。
- 对于用户来说,他们实际上根本不需要“看到”AssetHub。它完全隐藏在平行链钱包/应用程序或交易所/托管机构之后。
原文出自Polkadot Wiki,详情可査看:
https://wiki.polkadot.network/docs/learn-asset-conversion-assethub