作为一条专注于 USDT 的稳定币区块链,Stable 旨在为用户提供无缝高效的使用体验。其中一项关键创新是:用户可以在不支付任何 Gas 费用的情况下,完成 USDT0 的转账和将其转换为 gasUSDT(原生 Gas Token)的操作

核心特性

  • USDT0 免 Gas 转账:用户无需持有或消耗 Gas 代币,即可将 USDT0 转账给其他地址。
  • USDT0 免 Gas 转换:用户可将 USDT0(封装的 ERC-20 风格 USDT 代币)无 Gas 费用转换为 gasUSDT(原生 Gas Token),用于参与更多链上交互。
注意:为防止误操作导致资产丢失,gasUSDT禁止在账户间转账,防止转入中心化交易所。

实现机制

免 Gas 的操作基于 EIP-2612 Permit 扩展,允许用户通过链下签名授权代币花费。交易的 Gas 费用由可升级的智能合约支付,该合约由 Stable DAO 管理。

免 Gas 的 USDT0 转账

基础的 USDT0 转账完全免 Gas,流程如下: 免 Gas 的 USDT0 转账流程
  1. 用户发起转账交易 用户在 Stable Wallet 发起免 Gas 的 USDT0 转账请求。
  2. 用户签署授权消息 前端提示用户签署一条 permit 消息,授权 GaslessTxExecutor 合约花费其 USDT0。
  3. 前端将签名消息发送至后端 签名消息被转发至 Stable 后端。
  4. 后端提交交易 后端将交易发送至 GaslessTxExecutor 合约,由 Stable 后端账户支付 Gas 费用。
  5. 合约调用 permittransferFrom 方法 合约使用签名授权:
    • 调用 permit() 执行支出权限;
    • 调用 transferFrom() 完成转账。
  6. USDT0 成功转入接收方账户 无需 Gas 费用,USDT0从发送方账户转移至接收方地址。

免 Gas 的 USDT0 转换

要使用 USDT0 支付 Gas,需将其转换为 gasUSDT。该过程无需 Gas,流程如下: 免 Gas 的 USDT0 转换流程
  1. 用户通过前端发起解封请求 用户在 Stable Wallet 发起免 Gas 的 USDT0 转换请求。
  2. 用户签署授权消息 前端提示用户签署一条 permit 消息,授权 GaslessTxExecutor 合约花费其 USDT0。
  3. 前端将签名消息发送至后端 签名消息被转发至 Stable 后端。
  4. 后端提交交易 后端将交易发送至 GaslessTxExecutor 合约,由 Stable 后端账户支付 Gas 费用。
  5. 合约调用 USDT0 合约的 permit 方法 GaslessTxExecutor 合约使用签名授权调用 USDT0 合约的 permit()
  6. 合约调用 OStableWrapper 合约的 withdrawTo() 方法 合约调用 OStableWrapperwithdrawTo() 方法启动转换流程。
  7. Wrapper 调用 approvetransferFrom OStableWrapper 合约:
    • 批准自身提取用户 USDT0;
    • 通过 transferFrom() 转移指定数量的 USDT0。
  8. USDT0 被转入 Wrapper 合约 用户账户中的 USDT0 转入 OStableWrapper
  9. Wrapper 调用bank预编译模块铸造原生 USDT Wrapper 调用 Stable 链的 bank预编译模块(bank precompile)mint() 方法。
  10. 原生 USDT 转入用户账户 铸造的原生 USDT 存入用户账户,用户可立即使用该代币进行任意链上交互。
Stable 通过移除 USDT0 转账和转换的 Gas 成本,大幅简化用户体验。凭借 EIP-2612 和安全的中继设计,Stable 实现了无摩擦、无门槛的链上交互,全程由免 Gas 的基础设施支持。