The Sandbox Oracle:EVMリバートを“逆コンパイル”して自己修復するWeb3エージェントを設計する

Dev.to / 2026/5/8

💬 オピニオンDeveloper Stack & InfrastructureSignals & Early TrendsIdeas & Deep Analysis

要点

  • この記事は、スマートコントラクトの静的解析だけでは不十分であり、構文的に正しい取引でも隠れたロジックや不利な実行条件によって失敗し得ると主張している。
  • Lirixは「Shadow Oracle(影のオラクル)」と呼ばれるサンドボックスにより、AIが危険な現実世界の操作を行わないようにし、仮想的に並列なEVM環境でペイロードを実行する方針を取る。
  • 署名の前に、Lirixは最終的に検証された最高ブロック高に基づく`eth_call`の読み取り専用シミュレーションを作成し、さらに`state_overrides`で状態トライを操作して(例:残高、ERC20の承認、ブロックタイムスタンプなど)ガスを一切消費せずに検証できるようにしている。
  • EVMの実行結果とLLM駆動エージェントの推論をつなぐために、Lirixには「16進デコンパイラ」が含まれ、敵対的な状況下での堅牢性検証を可能にする。
  • 目的は、資本を投下する前に取引が頑健であることを証明し、自己修復するWeb3エージェントの“ゼロガス”検証パイプラインを実現することだ。

スマートコントラクトのセキュリティの世界では、静的解析は安全の幻想です。

AIが生成したトランザクションペイロードがLirixのアーキテクチャのレイヤー4で生き残るまでには、構造的に完全な状態になっています。意図(intents)は整合されます。ネストされたプロキシは数学的に貫通されます。RPCノードのコンセンサスは分散的に検証されます。

しかし、トランザクションは完璧にフォーマットされ、暗号的に署名され、構文エラーが完全にないとしても、それでも休眠状態のロジックボムを作動させたり、流動性の壁にぶつかったり、実行時に99%のスリッページに苦しんだりすることがあります。

スマートコントラクトが何をするかは、その実行コンテキストを評価するまで分かりません。しかしWeb3では、メインネットでトランザクションを実行するにはガスがかかり、失敗すれば資本が失われます。

これを解決するために、LirixはAIが現実世界と対話することを許しません。代わりに、レイヤー5(The Shadow Oracle)が、エージェントに対して、そのペイロードを儚い(エフェメラルな)並列EVMの現実の中で実行させます。

以下は、究極のゼロガス・サンドボックスをどう設計し、LLM向けの16進デコンパイラを作り、最終形の経済ギロチンをどう捻り出したかです。

The Sandbox: 状態トライを操作する

暗号署名のために、最初の1 weiでさえ許可される前に、Lirixはeth_callのペイロードを構築します。これは読み取り専用のシミュレーションであり、レイヤー4のビザンチン・コンセンサス機構によって検証された、疑いのない最高ブロック高に対して実行されます。

しかし、標準的なシミュレーションだけでは自律エージェントには不十分です。Lirixはstate_overridesを注入することで未来を実現しています。

AIエージェントが複雑な裁定(アービトラージ)のループや、多段階の実行を評価している場合、Lirixはサンドボックス内でローカルの状態トライ(state trie)を変更できます。ウォレット残高を改変したり、ERC20の承認をなりすまししたり、ブロックのタイムスタンプを高速送りしたり—ガスを1滴も消費せずに—できます。エージェントは、極端で敵対的な条件下でもトランザクションが数学的に健全であることを証明するために、超現実的で改変されたマトリクスの中でロジックを実行せざるを得ません。

16進デコンパイラ: EVMとAIをつなぐ

EVMのトランザクションが失敗すると、なぜ失敗したのかは丁寧には説明されません。激しくリバートし、整形されていない生の16進バイト配列を実行トレースに投げ込みます。

標準的なAIエージェントはリバートに遭遇するとクラッシュします。大規模言語モデルは、なぜ0x08c379a0...が実行計画を台無しにしたのかを、そのままでは理解できません。実行コンテキストがないのです。

Lirixは、EVMの実行レイヤーとAIの認知レイヤーの間のロゼッタストーンとして機能します。サンドボックスのシミュレーションがリバートした場合、Lirixエンジンは生のペイロードを検知し、先頭4バイト(エラーセレクタ)を切り出して、決定論的なデコンパイラに通します:

  • 標準エラー: 08c379a0を検出した場合、ABIをアンパックして標準のError(string)を抽出します。

  • Solidityのパニック: 4e487b71を検出した場合、SolidityのPanic(uint256)コード(例:ゼロ除算、算術オーバーフロー、配列アクセスの範囲外など)をデコードし、人間が読める診断に変換します。

Lirixは、敵対的なマシンコードを自然言語のフィードバックループへ変換します。これはログのためだけではありません。このテレメトリは積極的にLLMへフィードバックされ、壊れたコードを書き直して自己修復するよう強制します。

ギロチン: The Shadow Auditor

シミュレーションは完了です。EVMはリバートしませんでした。ノードはSuccess = Trueを返します。

ペイロードは安全ですか? 絶対に違います。

アーキテクチャ上の原則: EVMはコードの実行にしか関心がありません。金融的な破滅には関心がありません。完璧に実行されるスワップでも、50%のスリッページになれば、技術的にはブロックチェーンにとって「成功」でも、ユーザーにとっては大惨事です。

The Shadow Auditorの登場です。これは、Lirixパイプラインの最後の、逃れられない法廷です。

サンドボックスが成功するシミュレーションを返した後、生成されたテレメトリはShadowPolicySchemaに渡されます。ここで私たちは、コードだけでなく物理と経済を強制します。

ハードコードされたポリシーがmax_slippage_bps = 50を定めており、サンドボックスのテレメトリが51 basis pointsのスリッページを検出したなら—Shadow Auditorはギロチンを落とします。ブロックチェーンがトランザクションの有効性を示していても、Lirixは物理的に実行をブロックします。

EVMができない絶対的な財務上の境界を、私たちは強制します。

談話は安い。コードを見せろ。

以下は、レイヤー5の奥深くで動作する生のPythonロジックです。LirixがどのようにしてEVMのメモリからエラーシグネチャを外科的に抽出し、それをデコンパイルして、ブロックチェーンの物理とAIの認知のギャップを埋めるのかを確認してください。

# レイヤー5から抽出された中核ロジック: SandboxSimulator

_ERROR_STRING_SELECTOR = bytes.fromhex("08c379a0")
_PANIC_SELECTOR = bytes.fromhex("4e487b71")

def evm_revert_to_natural_language(data: Optional[Union[str, dict]]) -> str:
    """
    普遍的な翻訳者として振る舞い、EVMのマシンコードを
    AIエージェント向けの自然言語のフィードバックへ変換します。
    """
    raw = _normalize_revert_payload(data)

返却形式: {"translated": "翻訳されたHTML"}# コントラクトがデータなしでサイレントに失敗した場合
    if raw is None or len(raw) < 4:
        return "The contract reverted without machine-readable revert data."

    # 4バイトの実行セレクタを切り出す
    selector = raw[:4]
    body = raw[4:]

    # 標準のSolidityエラーをデコンパイルする
    if selector == _ERROR_STRING_SELECTOR:
        return _decode_error_string(body)

    # Solidityのパニックをデコンパイルする(例:オーバーフロー、ゼロ除算)
    if selector == _PANIC_SELECTOR:
        return _decode_panic(body)

    # カスタムエラーを適切に扱う
    return (
        f"The contract reverted with a custom error (selector 0x{selector.hex()}); "
        "no standard Error(string)/Panic(uint256) payload."
    )

トランザクションがレイヤー5を生き延びるころには、それは数学的に檻に閉じ込められ、再帰的に展開され、分散的に検証され、並列現実の中でシミュレーションされています。

それは間違いなく安全です。

次は?

L1〜L5の実行パイプラインはこれで完了です。しかし、Lirixは人間の開発者が手動でスクリプトを起動するために作られたものではありません。LangChainやAutoGenのような自律AIフレームワークのための中枢神経系として作られました。

この建築シリーズの次のパートでは、全知のマトリクス(レイヤー6)を明らかにします。 LLMに「自己修復ループ」に入らせる、正確なプロンプトエンジニアリングとツール結合のアーキテクチャをお見せします。そこでは、レイヤー5でデコンパイルしたエラーを使って、LLM自身が自律的に壊れたトランザクションを書き換え、修復します。

AIが目を覚まそうとしています。エンジニアリングの旅を追うために登録してください。

#web3 #ai #security #ethereum #developers #python #langchain #autogen #pydantic #devops

返却形式: {"translated": "翻訳されたHTML"}