Bifrost 链上用于处理 vToken 铸造和赎回的模块被称为 SLP,而想要通过 SLP 铸造和赎回 vToken,用户必须把资产先转入 Bifrost 链,这带来了用户体验上的问题。
SLPx 是近期我们在 SLP 的基础上,开发的一个扩展模块,该模块将允许用户在远程链上调用 SLP 的功能,而不必将资产转入 Bifrost 链。
具体来说,SLPx 将允许你
你将可以直接把 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 上的统一流动性池,以完成清算。倘若在远程链上建流动池以执行清算,很有可能因为深度不足而让清算过程产生更高的折损率。
对用户而言,**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 指令。
目前我们已经在 Moonbeam、Moonriver、Astar 上部署了 SLPx 的 remote pallet/contract,后续我们会陆续在 Interlay、Filecoin、Ethereum、HydraDX 上部署。
remote pallet/contract 已经完成代码审计,审计报告
此外,基于 SLPx 扩展模块开发的 Omni LS Dapp,用户将可以体验远程铸造、远程赎回、远程 Swap 这一系列功能。
Omni LST Dapp:https://omni.ls
总之,SLPx 是 Bifrost 实现全链 LST 愿景的技术方法。部署 SLPx 远程模块的链将可以远程调用 Bifrost 链上的 SLP 模块,实现远程铸造、赎回 vToken。这种全新的交互方式,给用户带来了便利,也给远程链的开发者提供了便捷的跨链集成路径。