このページは英語からの機械翻訳を使用しており、誤りや不明瞭な表現が含まれている可能性があります。最も正確な情報については、オリジナルの英語版をご覧ください。頻繁な更新のため、一部のコンテンツはオリジナルの英語になっている可能性があります。Crowdinでの取り組みに参加して、このページの翻訳改善にご協力ください。 (Crowdin translation page, Contributing guide)
2. GAの仕組みテクニカル・ディープ・ダイブ
このセクションでは、トランザクションのバンドル、アトミック性、主 要コンポーネントの役割など、Kaiaネットワーク内でGas Abstractionがどのように機能するかについて、詳細な技術的概要を説明する。
2.1 アーキテクチャの概要
GAは、スマートコントラクトとトランザクションバンドリングを活用した分散型アーキテクチャ上に構築されており、シームレスなユーザー体験を保証する。
主要コンポーネント
- KIP-247 (Gasless Transaction): ネットワークがガス抽象化の対象として認識する特定のトランザクション形式 (
GaslessApproveTx
,GaslessSwapTx
) を定義する。 - KIP-245 (Transaction Bundle)](https://kips.kaia.io/KIPs/kip-245): 必要な一連のトランザクション(貸出、承認、スワップ)が 解剖学的に実行されることを保証する。
- GaslessSwapRouter(GSR)](https://github.com/kaiachain/kaia/blob/v2.0.3/contracts/contracts/system_contracts/kip247/GaslessSwapRouter.sol): トークンからKAIA へのスワップを行い、ブロック提案者に最初のガスローンを返済するコアスマートコントラクトで、すべて同じブロック内で行われる。
主な出演者
次の図は、GAプロセスにおける主要なアクターとその相互作用を示したものである:
- ウォレット:ガスレス取引を開始するユーザーのウォレットまたはdAppインターフェース。
- ユーザーアカウント:ユーザーアカウント**:ガスレス取引を開始するウォレットまたはdAppユーザー。
- ブロック提案者:ブロックを提案するノードで、ガス料金のために一時的にKAIAを貸し出す。
- GaslessSwapRouter(GSR):スワップと返済のロジックを処理するスマート・コントラクト。
- DEXルーター:実際のトークンスワップを行う分散型取引所。
2.2 トランザクション・バンドル・コンポーネント
GAはトランザクションバンドルによって動作し、ブロックチェーンクライアントはLendTx + (オプションの) ApproveTx + SwapTxのみをアトミックバンドルにグループ化する。 この3つはすべて成功するか、すべて失敗するかのどちらかだ。 バンドルの直後に送信されたAppTxは、バンドルの_外部_にあり、独立して元に戻すことができる。
LendTx(レンド・トランザクション)
- **署名者ブロック提案者
- **目的KAIAをガス料金のために一時的に使用者に貸す。
- 作成:ブロック構築時に動的に生成
- **金額ApproveTx+SwapTxのガスをカバーするために計算される。
ApproveTx(承認トランザクション) - オプション
- **署名者ユーザー
- **目的GaslessSwapRouterのERC-20トークン支出を承認する。
- **必要な場合ユーザーがトークンを承認していない場合
- **フォーマットKIP-247仕様](https://kips.kaia.io/KIPs/kip-247) に従うこと。
SwapTx(スワップ取引)
- **署名者ユーザー
- 目的:ユーザートークンをKAIAと交換し、提案者に返済する。
- **契約GaslessSwapRouter.sol]を呼び出す(https://github.com/kaiachain/kaia/blob/v2.0.3/contracts/contracts/system_contracts/kip247/GaslessSwapRouter.sol)
- バリデーション:amountReceived >= minAmountOut >= amountRepay`であることを確認する。
2.3 原子性と故障処理
KIP-245バンドル・プロパティ:.
- オール・オア・ナッシング実行:いずれかのトランザクションが失敗した場合、バンドル全体が元に戻る
- タイムアウト免除:バンドルは250ms/ブロックの実行制限が免除されます。
- 状態のロールバック:失敗したバンドルは状態を完全に戻す
一般的な故障シナリオ:*。
- トークンの残高不足 → バンドル復帰、ガスは失われない
- 価格スリッページ超過 → SwapTx失敗、バンドル戻し
- トークンの承認がない → バリデーションに失敗、トランザクションはプールに残る
2.4 ネットワークレベルの処理
トランザクション・プールの検証」。
ガス抜き取引は、取引プールにおける通常の残高チェックをバイパスする。 検証ロジックはガスなし取引を検出し、ガス料金の口座残高チェックをスキップする。
**プロモーションとバンドル・ロジック
- GaslessApproveTx は、対応する GaslessSwapTx なしでは昇格できない。
- GaslessSwapTxは、トークンがすでに承認されていれば、単独で昇格できる
- 両方の取引が存在する場合、両方の取引が同時に促進される
ブロック・プロポーザーのインジェクションと実行」。
ブロック提案者は、ガスなし取引を検出すると自動的にLendTxを注入する。 LendTxはブロック生成時にオンザフライで作成され、ユーザーのガス抜きトランザクションの前に置かれる。
2.5 バランス変更を伴うワークフロー例
あるユーザーが「1.00 BORA」と「0 KAIA
」を持っているシナ リオを見てみよう。
ステップ | アクション | 提案者バランス | ユーザーバランス | 備考 |
---|---|---|---|---|
1. 初回 | - | 10.00 KAIA | 0.00カイア、1.00ボラ | 利用者は治療費を払いたい。 |
2. **レンドテックス | 提案者は0.02 KAIAを貸す。 | 9.97 KAIA | 0.02カイア、1.00ボラ | ガスは提案者が自己負担する。 |
3. ApproveTx`。 | ユーザーがGSRのBORAを承認する。 | 9.97 KAIA | 0.01カイア、1.00ボラ | ガス(0.01 KAIA)はローンから支払われる。 |
4. **スワップトックス | ユーザーは0.06 BORAと0.04 KAIAを交換する。 | 10.00 KAIA | 0.01カイア、0.94ボラ | 提案者には0.03 KAIAが支払われる。 |
5. *AppTx` | ユーザーは自分のメインTXを実行する。 | 10.00 KAIA | 0.00カイア、0.94ボラ | ガソリン代はスワップからKAIAで支払う。 |