SLPx Pallet 实现 vToken 远程铸造,全链 LST 迈出重要一步
什么是 SLPx
Bifrost 链上用于处理 vToken 铸造和赎回的模块被称为 SLP,而想要通过 SLP 铸造和赎回 vToken,用户必须把资产先转入 Bifrost 链,这带来了用户体验上的问题。
SLPx 是近期我们在 SLP 的基础上,开发的一个扩展模块,该模块将允许用户在远程链上调用 SLP 的功能,而不必将资产转入 Bifrost 链。
具体来说,SLPx 将允许你
在远程链上铸造 vToken
在远程链上赎回 vToken
在远程链上进行 vToken/Token 的 Swap,但背后使用的是 Bifrost 链上的流动性。
你将可以直接把 Moonbeam/Moonriver/Astar 链的 DOT 铸造为 vDOT,原始资产和目标资产都在 Moonbeam/Moonriver/Astar 上,你将感觉到所有事情就像在 Moonbeam/Moonriver/Astar 本地链上完成,而对背后的跨链交互过程完全无感。同样,你可以在 Moonbeam/Moonriver/Astar 链上直接将 vDOT 赎回为 DOT。
远程铸造和远程赎回为远程链上的用户操作提供了便利,而远程 Swap,除了给远程用户提供便利,还有更加深远的意义,那就是“统一流动性”
你可以在 Moonbeam/Moonriver/Astar 上进行 vDOT/DOT 之间的兑换,背后的流动性由 Bifrost 链上的池子支撑。这样一来,Bifrost 不需要把 vDOT/DOT 的流动性分割到不同链上,就可以让用户在不同链上进行 vDOT/DOT 的兑换,来自所有链的 vDOT/DOT 兑换都共享同一个池子的深度,这将带来更小的 Price Impact 和更好的交易体验。
与此同时,如果远程链上的借贷协议使用 vDOT 作为抵押品,涉及到清算环节时,就可以直接调用 Bifrost 上的统一流动性池,以完成清算。倘若在远程链上建流动池以执行清算,很有可能因为深度不足而让清算过程产生更高的折损率。
SLPx 的意义
对用户而言,vToken 的铸造、赎回、Swap 变的更简单了,可以在 Moonbeam/Moonriver/Astar 直接完成,而省去了繁冗的跨链操作步骤。此外,统一流动性的特点也会给用户带来更好的 Swap 体验。
对于 Moonbeam/Moonriver/Astar 上的应用程序而言,可以通过集成 SLPx,给自身用户带来更多重的收益,比如借贷协议可以把用户抵押的 DOT 远程转化为 vDOT,用户则不需要额外操作就可以获取多一份的 Staking 收益,此其一。
其二,统一流动性则会给借贷协议的清算带来更小的折算率。
其三,只需要集成 SLPx,就可以远程铸造、赎回、Swap 所有类型的 vToken,而无需一一适配不同类型的 vToken。
对于 Moonbeam/Moonriver/Astar 的生态建设来说,SLPx 可以为其引入来自不同链的 LST 资产,而远程服务的方式,可以让用户不离开链的情况下,享受来自其他链的全链服务。
对于 Bifrost 而言,SLPx 所实现的远程调用功能,是 vToken 迈向 Onmi-LST 的重要里程碑。
如何实现?
SLPx 分为两个部分,一个部分是 Bifrost 链上的 local pallet,另一部分是远程链上部署的 remote pallet/contract。
以 Moonbeam 为例,当 Moonbeam 上的用户想要把 DOT 铸造为 vDOT,实际上 DOT 先会被发送到 Bifrost 链上,被铸造为 vDOT 之后,再被发送回 Moonbeam。在此过程中,用户需要和 remote contract 交互,远程调用 local pallet 完成相关操作。整个操作包含三个步骤:
① 将 DOT 发送到 Bifrost
② 将 DOT 铸造为 vDOT
③ 将 vDOT 发送回 Moonbeam
但这三个步骤只需要用户发起一次交互(支付一次费用),即可全部自动完成。远程赎回和远程 Swap 的逻辑也是如此。
该流程之所以能够实现,是因为 SLPx 使用了最新的 XCM V3 作为跨链指令格式。XCM V3 规定了 XCM V2 所不具备的指令格式,其中很重要的一类指令就是”多跳执行。
源链可以发送一个 XCM V2 消息给目标链,并在其中定义目标链如何执行它,但 XCM V2 中没有相关指令能够支持目标链以发起一个新 XCM 消息的方式执行该消息。
但 XCM V3 中增加了该类型的指令,源链可以发送一个 XCM-001 消息给目标链,并让目标链做一系列执行之后,发起一个新的 XCM-002 消息给任意第三条链(第三条链也可以是源链自身)。简单来说,就是 XCM V3 允许一个 XCM 消息指挥另一条链发起另一个 XCM 消息。
不仅如此,XCM-002 消息抵达第三条链之后,根据消息指令,还可以继续发起新的 XCM-003 消息,这就是多跳传递,这个多跳链条理论上是可以无限的。只要源链上用户支付了足够多的费用,消息就可以完成多跳执行,直到其逻辑终止。
在 SLPx 的远程铸造用例中,实际上就是用户在 Moonbeam/Moonriver/Astar 上销毁 DOT 后,调用 remote contract,向 local pallet 发出了包含以下指令的 XCM 消息:
① 在 Bifrost 铸造 DOT(Burn-Mint 逻辑传递资产)
② 在 Bifrost 链上将 DOT 铸造为 vDOT
③ 在 Bifrost 链上锁定 vDOT
④ 向 remote contract 发出 XCM 指令,令其在 Moonbeam/Moonriver/Astar 上铸造 vDOT(Lock-Mint 逻辑传递资产)
从第④步,我们可以清晰的看到,一个 XCM 指令在指挥目标链上的 Pallet 发起另一个 XCM 指令。
SLPx 实施进度
目前我们已经在 Moonbeam、Moonriver、Astar 上部署了 SLPx 的 remote pallet/contract,后续我们会陆续在 Interlay、Filecoin、Ethereum、HydraDX 上部署。
remote pallet/contract 已经完成代码审计,审计报告:
https://www.commonprefix.com/projects/bifrost
此外,基于 SLPx 扩展模块开发的 Omni LS Dapp,用户将可以体验远程铸造、远程赎回、远程 Swap 这一系列功能。
Omni LST Dapp:
https://omni.ls
小结
总之,SLPx 是 Bifrost 实现全链 LST 愿景的技术方法。部署 SLPx 远程模块的链将可以远程调用 Bifrost 链上的 SLP 模块,实现远程铸造、赎回 vToken。这种全新的交互方式,给用户带来了便利,也给远程链的开发者提供了便捷的跨链集成路径。
Bifrost 是什么?
Bifrost 是基于 Polkadot 构建的模块化、可拓展、非托管的全链 LST 平行链,通过 XCM 为 Web3 提供标准化、高收益、安全可靠的底层附息资产,正在实现任意链使用任意 LST 的全链愿景(Omnichain LST)。
往期文章
官网 https://bifrost.finance
白皮书 https://whitepaper.bifrost.finance
Github https://github.com/bifrost-finance
Twitter https://twitter.com/BifrostFinance
Telegram https://t.me/bifrost_finance