跳至主要内容
本页面使用机器翻译自英语,可能包含错误或不清楚的语言。如需最准确的信息,请参阅英文原文。由于更新频繁,部分内容可能与英文原文有出入。请加入我们在 Crowdin 上的努力,帮助我们改进本页面的翻译。 (Crowdin translation page, Contributing guide)

2. GA 如何工作:技术深挖

本节从技术角度详细介绍了气体抽取在 Kaia 网络中的运行方式,包括事务捆绑、原子性和关键组件的作用。

2.1 结构概述

GA 基于去中心化架构,利用智能合约和交易捆绑来确保无缝的用户体验。

主要组成部分

  • KIP-247(无气交易): 定义了网络可识别为符合气体抽象条件的特定交易格式("GaslessApproveTx"、"GaslessSwapTx")。
  • KIP-245(交易捆绑) 保证必要的交易序列(借贷、审批、交换)在**上得到执行--它们要么全部成功,要么全部失败。
  • GaslessSwapRouter(GSR): 一个核心智能合约,执行代币与 KAIA 的交换,并向区块提议者偿还初始天然气贷款,所有这些都在同一个区块内完成。

主要演员

下图说明了大会进程中的主要参与者及其互动关系:

  • 钱包:启动无煤气交易的用户钱包或 dApp 界面。
  • 用户账户:发起无煤气交易的钱包或 dApp 用户。
  • 区块提议者:提出区块的节点,临时借出 KAIA 以收取燃气费。
  • GaslessSwapRouter (GSR):处理交换和偿还逻辑的智能合约。
  • DEX 路由器:执行实际代币交换的底层去中心化交易所。

2.2 交易包组件

GA 通过交易捆绑进行操作,即区块链客户端将_只_ LendTx +(可选)ApproveTx + SwapTx组合成一个原子捆绑。 这三者要么全部成功,要么全部失败。 紧随捆绑后发送的任何 AppTx 都在捆绑之外,可以独立恢复。

LendTx(借贷交易)

  • 签署人:整块提案人
  • 目的:临时将 KAIA 借给用户以支付天然气费
  • 创建:在区块构建过程中动态生成
  • 金额:计算用于支付 ApproveTx + SwapTx 的气体费用

ApproveTx(审批交易)- 可选

  • 签署人:用户
  • 目的:批准 GaslessSwapRouter 的 ERC-20 代币支出
  • 需要时:如果用户之前未批准令牌
  • 格式:必须遵循 KIP-247 规格

SwapTx(掉期交易)

  • 签署人:用户
  • 目的:将用户令牌交换为 KAIA 并偿还提议者
  • 合同:调用 GaslessSwapRouter.sol
  • 验证:确保 amountReceived >= minAmountOut >= amountRepay 金额接收 >= minAmountOut >= amountRepay

2.3 原子性和故障处理

KIP-245软件包属性:

  • 全有或全无执行:如果任何事务失败,整个捆绑包将还原
  • 超时豁免:捆绑包不受每块 250 毫秒执行限制的约束
  • 状态回滚:失败的捆绑触发完全状态回滚

常见故障情况:

  • 代币余额不足 → 恢复捆绑,无气体损失
  • 超出价格滑点 → SwapTx 失败,捆绑恢复
  • 缺少令牌批准 → 验证失败,交易仍在池中

2.4 网络级处理

交易池验证

无气交易可绕过交易池中的正常余额检查。 验证逻辑可检测无煤气交易,并跳过煤气费账户余额检查。

推广和捆绑逻辑

  • 如果没有相应的 GaslessSwapTx,则无法推广 GaslessApproveTx
  • 如果令牌已获批准,GaslessSwapTx 可独立推广
  • 当两个交易都存在时,两个交易同时进行

阻止提案人注入和执行

区块提议者在检测到无气交易时会自动注入 LendTx。 LendTx 在区块生成过程中即时创建,并置于用户的无气交易之前。

2.5 改变平衡的工作流程示例

让我们来看看用户拥有 1.00 BORA0 KAIA 的情况。

步骤行动提案人余额用户余额说明
1. 初始-10.00 KAIA0.00 Kaia, 1.00 Bora用户希望支付 Tx 费用。
2. **借给我投标人出借 0.02 KAIA。9.97 KAIA0.02 kaia, 1.00 bora投标人自付燃气费。
3. ApproveTx用户为 GSR 批准 BORA。9.97 KAIA0.01 kaia, 1.00 bora天然气 (0.01 KAIA) 由贷款支付。
4. SwapTx用户用 0.06 BORA 交换 0.04 KAIA。10.00 卡亚0.01 kaia,0.94 bora向投标人偿还 0.03 KAIA。
5. AppTx用户执行主 tx。10.00 KAIA0.00 kaia, 0.94 bora汽油费由换来的 KAIA 支付。
让这个页面变得更好