EVMbenchは、OpenAIとParadigmが2026年2月18日に公開したベンチマークです。AIエージェントがスマートコントラクトの高重大度脆弱性を「見つける(Detect)」「直す(Patch)」「突いて資金を抜く(Exploit)」の3つをどこまでこなせるかを測ります。本記事では、採点の仕組み、公開時と現行版で数値が食い違う理由、第三者による再評価の結果、GitHubのハーネスを動かす手順を、論文とリポジトリの一次情報に沿って整理します。
まとめ:EVMbenchの要点
- OpenAI・Paradigm・OtterSecの共同研究。Code4renaの監査コンテストを中心とする40リポジトリから、資金流出につながる高重大度の脆弱性を集めたベンチマークです。
- 件数は公開時の120件から、2026年3月4日のTempoタスク更新で117件に変わりました。GPT-5.3-CodexのExploitスコアも72.2%から71.0%に変わっています。
- 現行版(117件)では、GPT-5.3-CodexがExploit 71.0%・Patch 41.7%で首位、DetectはClaude Opus 4.6の45.9%が首位です。発見の網羅性が最大のボトルネックです。
- BlockSecと浙江大学の再評価では、2026年2月中旬以降に起きた実インシデント22件に対し、端から端までの攻撃に成功したエージェントはゼロでした(110組中0)。
- コードと課題はApache-2.0で公開されています。評価ハーネスはopenai/frontier-evals、Detect専用の監査UIはparadigmxyz/evmbenchで、2026年4月8日以降の保守先は後者です。
EVMbenchの概要:40リポジトリの実脆弱性でAIエージェントを採点
EVMbenchの論文著者はOpenAIの5名、Paradigmの2名、OtterSecの1名です。OpenAIの発表は、オープンソースのスマートコントラクトには常時1,000億ドル超の資産が置かれていると述べ、そこでのAIの攻撃力と防御力を測る必要性を公開の理由に挙げています。
課題の大半は、監査コンテストのプラットフォームCode4renaが公開している監査レポートから取られています。各レポートの指摘のうち、ユーザーやプラットフォームの資金喪失に直結する高重大度(High)のものだけを残し、さらに人手でふるいにかけています。これに、ステーブルコイン決済向けL1ブロックチェーンTempoのセキュリティ監査で見つかった脆弱性シナリオが加わります。
対象リポジトリの規模はまちまちです。監査範囲のコード行数(sLOC)は中央値1,296行、最小106行、最大10,108行で、コントラクト数は中央値7本、最大116本です。
エージェントは、Foundry等の開発ツールを入れた隔離済みのUbuntu 24.04 Dockerコンテナで動きます。渡されるのは、人間の監査人が受け取るのと同じリポジトリ一式です(ソースコード、監査範囲のファイル一覧、既知の指摘、スポンサーが書いた「どこを見るべきか」のメモ)。Web検索とインターネット接続は無効化され、採点はエージェントから触れない別コンテナで行われます。
Detect・Patch・Exploitの採点方法と対象件数
3モードは、渡すもの・提出物・採点方法がそれぞれ違います。件数は現行版(117件版)の値です。
| モード | 提出物 | 採点方法 | 対象 |
|---|---|---|---|
| Detect | 監査レポート | LLM採点で正解の再現率 | 117件・40リポジトリ |
| Patch | 修正差分 | 既存テスト通過+非公開の攻撃テストが失敗 | 44件・22リポジトリ |
| Exploit | トランザクション列 | 再実行後のチェーン状態と残高 | 23件・16リポジトリ |
Detectは、監査レポートを書かせて、正解レポートの脆弱性をいくつ拾えたかを測ります。判定はモデルベースの採点器が1件ずつ行います。過去のコンテストで実際に支払われた報奨金も脆弱性ごとに紐づけてあり、見つけた分の合計額も「Detect報酬」として出します。
Patchは、エージェントにコードを直接書き換えさせます。採点では、まずエージェントが触ってはいけないテストファイルを元に戻し、既存のテストが通るかを確認します。脆弱なロジックに依存したテストが落ちるのは減点しません。そのうえで、エージェントに見せていない攻撃テストを流し、脆弱性が塞がれたかを判定します。
Exploitは最も実戦に近いモードです。脆弱なコントラクトをローカルのAnvilチェーンにデプロイし、エージェントにはRPCエンドポイント、資金入りの秘密鍵、コントラクトアドレスを渡します。エージェントが送ったトランザクションは、Rust製のハーネス(ploit)が採点用コンテナで再デプロイ・再実行し、脆弱性ごとの採点スクリプトが残高やイベントを確認します。再実行方式とRPC制限により、評価環境を不正操作して得点する抜け道を抑えています。危険なRPCメソッドも制限されています。
公開時の120件版と現行の117件版で数値が違う理由
EVMbenchの数値は、引用元によって「120件・72.2%」と「117件・71.0%」の2系統があります。公開日(2026年2月18日)に出た論文PDFは前者、3月に投稿されたarXiv版(2603.04915v1)と現在のOpenAI発表ページは後者です。
差を生んだのは、openai/frontier-evalsで2026年3月4日に入ったコミット「update Tempo tasks」です。Tempo由来の課題のうち、tempo-mpp-streamsのH-01・H-02と、tempo-stablecoin-dexのH-03の指摘ファイルが削除されています。3件減って120件が117件になり、Patch対象とExploit対象もそれぞれ1件ずつ減りました。
| 項目 | 2月版(120件) | 現行版(117件) |
|---|---|---|
| Detect対象 | 120件 | 117件 |
| Patch対象 | 45件 | 44件 |
| Exploit対象 | 24件 | 23件 |
| GPT-5.3-Codex Exploit | 72.2% | 71.0% |
| GPT-5.3-Codex Patch | 41.5% | 41.7% |
| Claude Opus 4.6 Detect | 45.6% | 45.9% |
| GPT-5 Exploit | 31.9% | 33.3% |
社内資料や提案書でスコアを引用するときは、どちらの版かを併記してください。版を書かずに混ぜると、同じモデルの同じモードなのに数値が合わない資料になります。以下、本記事のスコアは現行版の値です。
主要モデルの結果:Exploit 71.0%とDetect 45.9%の開き
各モデルは原則として開発元のCLIエージェントで動かしています(GPT系はCodex CLI、ClaudeはClaude Code、GeminiはGemini CLI)。OC-GPT-5.2だけは、オープンソースのOpenCodeで動かした比較用の構成です。各エージェントは設定可能な最大の推論強度で評価され、表のGPT-5.2とGPT-5.3-Codexはxhighの結果です。
| エージェント | Detect | Patch | Exploit |
|---|---|---|---|
| GPT-5.3-Codex | 40.7% | 41.7% | 71.0% |
| GPT-5.2 | 40.7% | 39.4% | 65.2% |
| Claude Opus 4.6 | 45.9% | 25.8% | 60.9% |
| OC-GPT-5.2(OpenCode) | 31.1% | 34.1% | 53.6% |
| Claude Opus 4.5 | 36.2% | 22.0% | 53.1% |
| Gemini 3 Pro | 21.4% | 11.4% | 36.2% |
| GPT-5 | 23.9% | 20.5% | 33.3% |
| o3 | 11.1% | 15.2% | 18.8% |
出典はarXiv 2603.04915v1のTable 9です。表の値は3回の独立実行に基づく推定値で、単一実行の成功率ではありません。OpenAIの発表は、約半年前に出たGPT-5のExploit 33.3%からGPT-5.3-Codexの71.0%への伸びを強調しています。Paradigmのブログも、開発を始めた時点の上位モデルは致命的なCode4renaバグの2割未満しか突けなかったと書いています。GPT-5.3-Codexのモデルそのものの仕様と料金はGPT-5.3-Codexとは?性能・API料金と2027年4月の提供終了・移行先で扱っています。
モード別に見ると、Exploitが一番高く、DetectとPatchは半分にも届きません。OpenAIは理由を2つ挙げています。Exploitは「資金を抜き切るまで続ける」という終点が明確です。一方Detectでは、1件見つけた時点で監査をやめてしまうエージェントがいます。
Detect報酬:上限218,434ドルに対して首位でも37,824ドル
Detect報酬は、Claude Opus 4.6が平均37,824.52ドルで首位でした。2位はOC-GPT-5.2の31,623.98ドル、3位はGemini 3 Proの25,112.46ドルで、GPT-5.3-Codexは19,915.38ドルにとどまります。満額は218,434ドルなので、首位でも2割に届きません。
再現率と報酬額で順位が入れ替わるのは、報酬が一部の脆弱性に偏っているためです。支払額の上位10件だけで報酬総額の72.94%を占めます。なお、論文の報酬分布図は120件版の集計で、支払額が非公開の28件を0ドルとして扱っています。この図の母数は117件版とは異なります。報酬額は、各脆弱性を発見した監査人への過去の支払額の中央値を合算する指標です。脆弱性の重大度や、攻撃によって得られる金額を直接表すものではありません。
ヒントと推論強度:修正・攻撃スコアの改善と残る課題
GPT-5.2(xhigh)にヒントを段階的に与えた実験では、怪しい仕組みを教える中ヒントで、Detectが40.7%から92.6%、Patchが39.4%から90.2%に跳ね上がりました。Exploitは、採点内容まで教える高ヒントで95.7%に達します。論文はここから、多くのリポジトリでは修正やトランザクション作成ではなく「発見」がボトルネックだと結論づけています。
推論強度の影響も大きく、GPT-5.3-CodexのExploitはlowで36.1%、xhighで71.0%と約2倍の差があります。同じGPT-5.2でも、Codex CLI(65.2%)とOpenCode(53.6%)でExploitに11.6ポイントの差が出ました。モデル名だけでスコアを比べず、エージェントの実行環境と推論強度をそろえて読む必要があります。
第三者の再評価:実インシデント22件ではExploit成功ゼロ
EVMbenchの結果を実運用へ一般化できるかについて、外部の再評価研究が異議を示しています。浙江大学とBlockSecの研究者が2026年3月11日にarXivで公開した「Re-Evaluating EVMBench」(2603.10795)です。EVMbenchの課題基盤と採点方法をそのまま使い、4モデル系統と3種類の実行環境に推論強度などの違いを組み合わせ、Detectを26構成、Exploitを15構成で再評価しています。Patchは対象外です。
この論文が問題にしたのは、学習データへの混入です。EVMbenchの40リポジトリのうち約36は2025年8月より前の監査で、評価対象のモデルが学習時に見ていた可能性があります。そこで、評価した全モデルのリリース後(2026年2月中旬以降)に起きた実際のセキュリティインシデント22件で、別のデータセットを作りました。こちらはフォークしたチェーンから状態を取得し、ヒントなしで利益の出る攻撃を組む必要があり、EVMbenchより条件が厳しい設定です。
- Exploitは0件:Detect首位のClaude Opus 4.6は採点できた20件中13件(65%)を検出しましたが、Exploitでは5エージェント×22件の110組を評価し、各組の制限時間6時間以内に利益の出る攻撃を完遂した例はありませんでした。再評価の著者らは、この結果を「発見が主なボトルネック」という結論の一般化への反例と位置付けています。
- 順位が安定しない:EVMbenchの課題でのDetectの最高値はClaude Opus 4.6の47.5%で、EVMbench(45.6%)とほぼ同じです。ただし構成やデータセットを変えると順位が大きく入れ替わり、ExploitではClaude Sonnet 4.6(61.1%)がGPT-5.3-Codexを上回りました。
- 実行環境の効果:同じモデルを比べた6組のうち5組で、オープンソースの実行環境が開発元のものを1.7〜5.0ポイント上回りました。
- 検出レポートの偽陽性率は評価対象外:EVMbenchも再評価も再現率しか見ておらず、誤検知の多さは減点されません。実務での差はスコアの見た目より大きい可能性があります。
なお、再評価論文は2月版(120件)を基準に比較しています。EVMbenchのスコアは「既知のコンテスト課題に対する上限に近い値」と読み、実運用での攻撃・防御力の見積もりにそのまま使わないのが妥当です。
公式が認める制約:タイミング依存・単一チェーン・偽陽性
EVMbenchの論文とOpenAIの発表は、制約を自ら明記しています。スコアを読む前に押さえておくべき点です。
- 実戦より易しい可能性:課題はCode4renaの指摘から選んだもので、実世界のバグ全体を代表しません。広く使われる本番コントラクトはもっと厳しく監査されており、突くのも難しいとOpenAIは書いています。
- Detectの加点と減点の穴:過去レポートにない正しい指摘は加点されず、逆にレポートにない誤った指摘も減点されません。
- タイミング依存の攻撃は対象外:採点時の再実行は逐次で、元のタイムスタンプを正確には再現しません。
- 空のローカルチェーン:Exploitの各課題は空のAnvilチェーンから始まります。メインネットのフォーク、プリコンパイル、過去のトランザクションは扱えません。
- 単一チェーンのみ:クロスチェーンの攻撃は範囲外です。メインネットにしかない資産はWETHのモック等で代用しており、エージェントがモックの権限を調べて推論を浪費する場面が観察されています。
EVMbenchを動かす手順:評価ハーネスと監査UI
公開物は2つのリポジトリに分かれています。どちらもライセンスはApache-2.0です。
| リポジトリ | 中身 | 使う場面 |
|---|---|---|
| openai/frontier-evals | 課題データと評価ハーネス | モデルを3モードで採点 |
| paradigmxyz/evmbench | Detect専用の監査UI | 自社コードをアップロードして診断 |
frontier-evals側のREADMEには、2026年4月8日以降はparadigmxyz/evmbenchを保守先とし、新しいissueやプルリクエストはそちらへ出すよう書かれています。paradigmxyz/evmbenchは評価コードをサブモジュール(frontier-evals/)として固定参照しており、最後の更新は2026年9月18日です。
評価ハーネス:uvとDockerによる3モードの実行手順
frontier-evalsのproject/evmbenchディレクトリで、uvとDockerを使います。課題ごとに専用のDockerイメージを作る構成です。READMEの手順は次のとおりです。
uv sync
docker build -f ploit/Dockerfile -t ploit-builder:latest --target ploit-builder .
uv run docker_build.py --split all
uv run python -m evmbench.nano.entrypoint \
evmbench.audit_split=debug \
evmbench.mode=detect \
evmbench.apply_gold_solution=False \
evmbench.log_to_run_dir=True \
evmbench.solver=evmbench.nano.solver.EVMbenchSolver \
evmbench.solver.agent_id=human
最後のコマンドは、何もしないhumanエージェントで1監査分(debug分割)だけを流し、ハーネスとDockerが端から端まで動くかを確かめるものです。主な設定は次のとおりです。
evmbench.mode:detect・patch・exploitのいずれかevmbench.audit_split:debug(1監査)、detect-tasks(40)、patch-tasks(22)、exploit-tasks(16)evmbench.hint_level:noneからmaxまで5段階evmbench.solver.agent_id:codex-default・claude-default・gemini-default・opencode-defaultなど。OPENAI_API_KEY、ANTHROPIC_API_KEY、GEMINI_API_KEY、OPENROUTER_API_KEYのうち使うものを設定evmbench.apply_gold_solution=True:模範解答を当てて満点になるかを確認(課題自体が解けることの検証)
採点対象は、Detectがsubmission/audit.md、Patchがsubmission/agent.diff、Exploitがsubmission/txs.jsonです。並列数の既定は5で、結果はruns/以下に出力されます。
Paradigmの監査UI:自社コントラクトをDetectで診断
paradigmxyz/evmbenchは、ハーネスを監査エージェントとして使えるようにしたWebアプリです。コントラクトのソースをzipでアップロードし、モデルを選ぶと、Codexが「Detectのみ」のモードで監査し、脆弱性の一覧をUIに表示します。構成はNext.jsのフロントエンド、FastAPIのバックエンド、PostgreSQL、RabbitMQで、ワーカーはDocker(任意でKubernetes)上で起動します。ローカルで動かすにはDockerとBunが必要です。
運用で押さえる点は3つあります。OpenAIのAPIキーは利用者持ち込み(BYOK)で、既定ではワーカーに平文で渡ります。キーをワーカーの外に置く代理トークン方式(proxy-token mode)も選べます。1回の監査の上限時間は既定10,800秒(3時間)で、EVM_BENCH_CODEX_TIMEOUT_SECONDSで変えられます。また、READMEは信頼できないコードに対してLLMエージェントを走らせる前提であり、ワーカーの実行環境(ファイル・ログ・出力)を信頼しない領域として扱うよう求めています。2026年9月18日時点のモデル対応表には、gpt-6-astraからgpt-5.2までの8モデルが登録されています。
監査実務での使いどころ:デプロイ前の一次スクリーニング
EVMbenchと再評価の結果から言えるのは、AIエージェントは監査人の代わりではなく、監査前のふるいとして使える段階にあるということです。Detectの首位でも既知の高重大度脆弱性の半分以上を取りこぼし、偽陽性の確認には人手が残ります。
避けるべきなのは「AIのDetectを通したので外部監査を省く」判断です。取りこぼしが半分ある検査を保証として扱うと、誤った安心感を生みます。効果が見込めるのは、デプロイ前の自己点検で、アクセス制御の欠落、リエントランシー、算術オーバーフローといった典型パターンを先に潰す使い方です。再評価でも、22件のうち6件はほぼ全エージェントが検出していました。
ヒント実験の結果は、人が文脈を渡す価値も示しています。監査範囲や、価格オラクル・清算ロジックなど「疑わしい仕組み」を人が先に絞ってからエージェントに渡すと、修正と攻撃再現の精度は大きく上がります。Solidityの開発環境の整え方はSolidity入門|開発環境の選び方・基本構文・Sepoliaデプロイまで【2026年版】とHardhatの基本概要とEthereum開発環境として選ばれる理由で扱っています。
同時発表:1,000万ドルのAPIクレジットとAardvark
OpenAIはEVMbenchの発表に合わせて、防御側への支援策も示しました。2023年に始めたCybersecurity Grant Programを土台に、最上位モデルによるサイバー防御を加速させるため、1,000万ドル分のAPIクレジットを拠出するとしています。重点はオープンソースソフトウェアと重要インフラで、善意のセキュリティ研究に取り組む組織が申請できます。
同じ発表では、セキュリティ研究エージェントAardvarkのプライベートベータ拡大と、広く使われるOSSのメンテナーへの無償コードスキャン提供にも触れています。Aardvarkはその後「Codex Security」の名称で研究プレビューとして公開され、OpenAIの発表ページには「Formerly known as Aardvark」と記されています。製品としての機能と料金はCodex Securityとは?仕組み・料金・Claude Code Securityとの違い【2026年7月版】、OpenAIのサイバー特化モデルの提供方針はOpenAI Daybreakとは?GPT-5.5-Cyberの実力と日本企業の現実的な対応【2026年6月】を参照してください。
EVMbenchに関するよくある質問
EVMbenchは誰が作ったベンチマークですか?
OpenAIとParadigmの共同開発です。論文の著者にはOpenAIの5名、Paradigmの2名、OtterSecの1名が名を連ねています。OtterSecは監査UIのフロントエンド実装にも協力しています。
EVMbenchのGitHubリポジトリはどこですか?
課題データと評価ハーネスはgithub.com/openai/frontier-evalsのproject/evmbench、Detect専用の監査UIはgithub.com/paradigmxyz/evmbenchです。2026年4月8日以降は、paradigmxyz/evmbenchが保守先になっています。
GPT-5.3-CodexのExploitスコアは72.2%と71.0%のどちらが正しいですか?
どちらも正しく、版が違います。72.2%は2026年2月の公開時(120件版)、71.0%は3月4日のTempoタスク更新後(117件版)の値です。現在のOpenAI発表ページとarXiv版は71.0%を載せています。
Code4renaとはどのようなサービスですか?
スマートコントラクトの監査コンテストを運営するプラットフォームです。監査人が報奨金をめぐってコードを調べ、終了後に指摘と修正案をまとめたレポートが公開されます。EVMbenchの論文は、これまでに450件超のコードベース監査が行われたと紹介しています。
自社のスマートコントラクトをEVMbenchで監査できますか?
paradigmxyz/evmbenchの監査UIを自前で立ち上げれば、ソースをzipでアップロードしてDetectモードの監査をかけられます。利用には自分のOpenAI APIキーが必要です。結果は一次スクリーニングとして扱い、デプロイ前の判断は人による監査で行ってください。