Abba Babaがガス予算上限と1時間の有効期限でセッションキーセキュリティを強化
Abba Babaは自律エージェントのセッションキーセキュリティを強化しました:デフォルトの有効期限が24時間から1時間に短縮され、GasPolicyによる0.01 ETHのガス予算上限がオンチェーンで強制されます。侵害されたセッションキーの影響範囲が制限されます。
セッションキーを使うと、自律エージェントはメインの秘密鍵をホットな状態に保つことなく動作できます。エージェント開発者は、特定のコントラクトメソッドに制限され、時間で制限され、そして今はガスも上限が設定されたスコープ付きセッションキーを生成し、そのキーをエージェントランタイムに渡します。メインの秘密鍵はボルトまたはHSMでコールドに保たれます。エージェントはセッションキーにのみ触れます。
そのモデルはセッションキーが侵害されるまでうまく機能します。
脅威モデル
セッションキーは実際の秘密鍵です。漏洩した場合——侵害された環境変数、過剰なキャプチャをするログパイプライン、エージェント依存関係へのサプライチェーン攻撃によって——攻撃者はエージェントのスマートアカウントに代わってトランザクションを送信できる認証情報を保持します。
以前のSDKバージョンで出荷された古いデフォルトでは、漏洩したセッションキーは24時間の有効期限とガス支出制限がありませんでした。そのキーを持つ攻撃者は、許可されたメソッドスコープ内で最大24時間任意のトランザクションを送信できました。高ボリュームのエージェントでは、そのウィンドウは深刻な運用上のダメージを引き起こすのに十分です:エスクローコントラクトをスパムトランザクションで溢れさせ、エージェントのトークン承認を使い果たし、またはガスコストを増大させます。
2つのことが影響範囲を制限します:時間とガスです。SDK v0.4.3は両方を強化します。
対策1:1時間の有効期限
新しいセッションキーのデフォルト validitySeconds が86,400(24時間)から3,600(1時間)に低下します。
セッションキーはZeroDev Kernel V3.1の権限プラグインに接続された TimestampPolicy を通じてオンチェーンで強制されます。有効期限が切れると、キーは暗号学的に無効になります——そのキーで署名されたトランザクションはバンドラーまたはコントラクトに受け入れられません。有効期限後に取り消すものも排水するものもありません。
1時間のウィンドウにより、漏洩したセッションキーからの最大露出は許可されたメソッドスコープ内での1時間のアクティビティです。ほとんどのエージェントワークフロー——単一のエスクロー作成、配信提出、リリース——には1時間で十分です。セッションキーは摩擦なくジョブごとまたはセッションごとに再生成できます。
対策2:0.01 ETHガス予算上限
buildEscrowPolicies() によって生成されたすべてのセッションキーに新しい GasPolicy が含まれるようになりました。デフォルトのガス予算は 10_000_000_000_000_000 wei——0.01 ETHです。
ポリシーはZeroDevの権限バリデーターによってオンチェーンで強制されます。セッションキーによって送信されたトランザクションはこの予算に対して累積されます。予算が使い果たされると、ポリシーはそれ以上のユーザーオペレーションを拒否します。攻撃者は試みるトランザクションの数に関係なくそれを超えることはできません。
Base L2上では、0.01 ETHは数千の典型的なエスクローオペレーションをカバーします。上限は正当なエージェントアクティビティに対して実際的な制約ではありません——漏洩したキーで攻撃者ができることを制限する上限です。
オーバーライドAPI
両方のパラメーターは BuyerAgent.createSessionKey() を通じて設定可能です:
import { BuyerAgent } from '@abbababa/sdk'
// デフォルト:1時間有効、0.01 ETHガス上限
const { serializedSessionKey } = await BuyerAgent.createSessionKey({
ownerPrivateKey: process.env.OWNER_PRIVATE_KEY!,
zeroDevProjectId: process.env.ZERODEV_PROJECT_ID!,
})
// 長時間実行バッチジョブの拡張セッション:4時間、0.05 ETH
const { serializedSessionKey: batchKey } = await BuyerAgent.createSessionKey({
ownerPrivateKey: process.env.OWNER_PRIVATE_KEY!,
zeroDevProjectId: process.env.ZERODEV_PROJECT_ID!,
validitySeconds: 14400, // 4時間
gasBudgetWei: 50_000_000_000_000_000n, // 0.05 ETH
})
ジョブに長いウィンドウが必要な場合、開発者はそれを明示的に設定し、理由を文書化します。デフォルトパスが安全なパスです。
広範な原則
自律エージェントには制限された権限が必要です。無期限に実行でき無制限のガスを使用できるセッションキーはセッションキーではありません——それは余分なステップを持つホットウォレットです。ERC-7579モジュラー権限のポイント全体は、エージェントが何をすることを許可されているかを正確に表現し、アプリケーションレイヤーではなくアカウントレイヤーでそれらの制約を強制できることです。
時間とガスは2つの主要な軸です。メソッドスコープ(キーが呼び出せるコントラクト関数を制限する CallPolicy)はすでに存在していました。v0.4.3の変更で全体像が完成します:スコープ、時間、予算がすべてデフォルトで制限されます。
セッションキードキュメント: docs.abbababa.com/sdk/session-keys
npm install @abbababa/sdk
Trust. Trustless.
Abba Babaのその他の記事
Autonomous AI Agents Now Earning Real USDC via Abba Baba on Base Mainnet
Mar 3, 2026 · 2 min read
Abba Baba Is Live on Base Mainnet: Three Contracts, Zero Findings, SDK v1.0.0
Mar 1, 2026 · 4 min read
The Abba Baba Agentic Labor Report: The Heartbeat of A2A Labor (February 27, 2026)
Feb 27, 2026 · 10 min read