什么是 Relayer
Relayer 是 BTTC 上资产跨链后的自动提款服务,用户将资产从 BTTC 上转移到其他链后,Relayer 会在接收链上帮助用户自动完成提款操作。
在没有使用 Relayer 服务的情况下,用户提交资产从 BTTC 链转移到其他链的请求,等待 15~30 分钟后资产达到目标链,需要用户在目标链调用跨链桥合约
来提取资产。由于调用合约需要支付 Gas 费用,所以通常用户需要提前在目标链上创建了账户并确保账户中有足够的原生链代币来支付 Gas 费用。
使用 Relayer 服务后,当资产达到目标链后, Relayer 会帮助用户将跨链资产从跨链桥合约
提取到用户接收地址
,简化了用户的跨链操作。
Relayer 的原理
下图是 Relayer 工作机制:
如上图所示,用户在 bt.io 上提交 BTTC 到 Ethereum 的资产跨链请求时, 可以选择 Fast 模式或 Classic 模式,如果选择 Classic 模式,即不使用 Relayer 服务,bt.io 会直接调用跨链桥合约
执行跨链操作,当资产达到Ethereum链的跨链桥合约
时,需要用户手动调用跨链桥合约
将资产提到用户接收地址
中。
如果用户选择了 Fast 模式,即使用 Relayer 服务,用户可以根据 Relayer 服务商的费用报价选择一个合适的服务商,用户跨链资产首先被转移给 Relayer 合约,Relayer 合约对资产进行切分,从跨链资产转移一部分给 Relayer 服务商作为费用报酬,然后将剩余部分提交给跨链桥合约
进行跨链操作。
由于用户在 BTTC 链上提交跨链请求时指定了用户接收地址
,该用户接收地址
会被包含在跨链消息中一起到达 Ethereum 链,任何人都可以调用跨链桥合约
触发提取资产行为,但是资产只会被提取到跨链消息中指定的用户接收地址
。当 Relayer 合约提交跨链请求后,Relayer 服务商部署的服务程序会监听到跨链事件,当资产到达 Ethereum 链后,Relayer 服务程序会自动通过它的一个外部地址调用 Ethereum 链上的跨链合约将资产提取到接收者地址,并通过该外部地址支付 Gas 费用。
用户在选择快速模式时,可以选择将少量转出资产转换成相应的目标链汽油费,以满足用户在目标链接收跨链资产后需要支付汽油费转账的场景。Relayer 将承担因汇率波动造成的额外费用。
Relayer 费用
目前的 Relayer 服务收取实际提款 Gas 费120%,Relayer 会从用户跨链的资产中扣除部分作为费用,实际扣除数量的计算公式如下:
(跨链消耗的 Gas 费用 / 跨链代币的单价)* 120%
Relayer 从当前跨链的代币中扣除部分作为手续费,即跨什么币,收什么币, 计算费用时会将上述 Gas 费用和跨链代币转化成同一个记价单位进行计算。
未来 bt.io 将开启 Relayer 申请通道, 任何人都可以申请成为 Relayer 服务商,Relayer 服务商会根据自己的运营成本和不同目标链的提款 Gas 消耗来设定合理的费用。用户会根据费用、服务稳定性、用户评价等因素选择一个 Relayer 服务商。