AI 代理安全
PACE、AIエージェントの取引承認をオンチェーンのバイト列に紐付け――サンドボックス試験で危険な実行率を0.80からゼロへ
PACEは、取引が安全かどうかを言語モデル自身に判断させるのではなく、取引意図、シミュレーション結果、実際のcalldataを決定論的ルールで検証する。署名済みのPolicy Decision Recordは実行前にスマートアカウントによって再検証されるが、現時点で失敗ゼロという結果が得られているのは、単純化されたDeFiサンドボックスに限られる。

新たに提案された[Policy-Attested Contract Execution(PACE)](https://arxiv.org/abs/2608.17220)は、DeFiエージェントを信頼できない提案者として扱う。LLMはスワップ、レンディング、トークン承認を計画できるが、取引を実際に送信するかどうかを直接決定することはできない。その狙いは、プロンプトインジェクション、悪意あるコントラクト、あるいはエージェントプログラムによるシミュレーション後のcalldata差し替えを防ぎ、モデル層の確率的な防御を取引層の決定論的な認可へ置き換えることにある。
エージェントはまず、chain ID、送信元・送信先アドレス、ETH金額、関数selector、calldata、トークン承認、スリッページなどのフィールドを含む型付きのTransactionIntentを出力する。オフラインシミュレーターが実行結果を生成すると、ステートレスなverifierがユーザーポリシーに基づき、アドレスおよび関数のallowlist、支出上限、無制限承認、スリッページ、health factor、シミュレーションの鮮度、実際にアクセスしたコントラクトを検証する。承認結果は署名済みのPolicy Decision Record(PDR)としてパッケージ化され、intent、ポリシー、シミュレーション、calldataのハッシュに紐付けられる。
オンチェーンのSolidityスマートアカウントは、外部呼び出しの前に署名者、chain ID、アカウント、ターゲット、金額、calldata hash、nonce、有効期限を再検証する。これは、スマートアカウントが独自の検証ロジックを定義できる[ERC-4337](https://eips.ethereum.org/EIPS/eip-4337)の機能を利用している。そのため、エージェントがプロンプトインジェクションによって完全に侵害されたとしても、あらかじめ定められたポリシーに適合するバイト列しか送信できない。
著者らは、7種類の防御構成、40件のタスク、10個のseedを用いて2,800回のテストを実施した。無防備なベースラインの危険な実行率は0.80だったのに対し、完全なPACEではサンドボックス内で0となり、正常なタスクの誤ブロック率も0だった。アブレーション実験では、ポリシーを緩和すると危険な実行率が57.5パーセントポイント上昇し、touched-contract allowlistを削除すると12.5ポイント上昇した。オンチェーンでのPDR検証には、さらに29,826~31,822 gasを要した。
ただし、これは資金をそのまま預けられることを示す安全性の証明ではない。主要な実験ではregexベースのmock LLMとインメモリのDeFiシミュレーターが使用され、コードartifactも論文の採択後に公開される予定だ。PDRが保証するのは、承認されたバイト列と実行されるバイト列が一致することだけであり、シミュレーション後もオンチェーンの状態、価格、アップグレード可能なコントラクトが変化しないことまでは保証しない。ポリシー、verifier、シミュレーター、署名鍵もすべてtrust boundaryの内側にある。次の段階では、実際のABI、プロキシコントラクト、異常な挙動をするトークン、state drift、適応的攻撃を用いて再検証する必要がある。