TxRCA-Bench
收藏TxRCA-Bench 数据集概述
数据集简介
TxRCA-Bench 是一个用于评估 AI 代理在 DeFi 漏洞利用交易层面根因分析能力的基准测试。据我们所知,这是首个提出单一问题的基准:仅给定一个交易哈希,前沿 AI 代理能否仅使用链上数据识别 DeFi 漏洞利用的根本原因?
数据集构成
- 评估案例数量:70 个真实世界的漏洞利用交易。
- 区块链网络:涵盖以太坊和币安智能链。
- 漏洞类别:8 个类别。
- 标注内容:每个案例均标注有真实根本原因、易受攻击的代码以及丰富的链上证据。
- 评估规模:已评估七种前沿 AI 代理配置,产生了 490 次评分运行,由两个独立的 LLM 法官评分。
数据内容与结构
数据集主要文件位于 data/ 目录下:
eval_set.json:包含 70 个评估案例及其真实标签。pilot_set.json:包含 11 个试点案例(不用于评估)。benchmark_pool.json:完整的过滤后候选池。selectors.json:本地 4byte 函数选择器快照。phase1_stats.json:数据集构建统计信息。
每个评估案例在 transactions/<chain>/<tx_hash>/ 目录下包含一个自包含的分析工作空间:
raw/:交易数据、收据、解码后的日志。trace/:完整的调用追踪。contracts/:每个合约的 ABI 和元数据。contract_sources/:可用的已验证 Solidity 源代码,否则为反编译的字节码。workspace_summary.md:上述内容的人工可读摘要。analysis_prompt.txt:提供给每个代理的确切提示。
评估案例详情
每个案例在 eval_set.json 中包含以下字段:
json
{
"case_id": "案例标识符",
"chain": "区块链网络",
"tx_hash": "交易哈希",
"canonical_category": "标准漏洞类别",
"root_cause_narrative": "根本原因叙述",
"vulnerable_code": "易受攻击的代码",
"flash_loan_used": "是否使用闪电贷",
"multi_step": "是否为多步骤攻击",
"profile": "案例档案"
}
漏洞类别分布
| 类别 | 数量 | 以太坊 | BSC | 高关注度 | 闪电贷 |
|---|---|---|---|---|---|
| 价格操纵 | 10 | 4 | 6 | 0 | 10 |
| 闪电贷 | 10 | 2 | 8 | 0 | 10 |
| 重入攻击 | 9 | 9 | 0 | 3 | 0 |
| 访问控制 | 10 | 4 | 6 | 0 | 0 |
| 业务逻辑缺陷 | 10 | 4 | 6 | 0 | 0 |
| 验证不足 | 10 | 5 | 5 | 0 | 0 |
| 精度损失 | 8 | 7 | 1 | 2 | 0 |
| 配置错误 | 3 | 2 | 1 | 2 | 0 |
| 总计 | 70 | 37 | 33 | 7 | 20 |
代理输出与评分
已评估的代理配置
七种配置,两种代理运行时:
| 配置 | 模型 | 努力程度 |
|---|---|---|
gpt5_high |
gpt-5 |
高 |
gpt53codex_high |
gpt-5.3-codex |
高 |
gpt54_high |
gpt-5.4 |
高 |
gpt54_xhigh |
gpt-5.4 |
极高 |
sonnet46_high |
claude-sonnet-4-6 |
高 |
opus46_high |
claude-opus-4-6 |
高 |
opus46_max |
claude-opus-4-6 |
最大 |
评分标准
每次运行由两个独立的 LLM 法官(Claude Opus 4.6 和 GPT-5.4)按 0–7 分进行评分:
| 分数 | 标准 |
|---|---|
| 0 | 无输出,或与交易完全无关 |
| 1 | 错误的根因类别;分析模糊或泛泛 |
| 2 | 类别错误但有一些正确观察 |
| 3 | 类别正确;机制模糊,无具体证据 |
| 4 | 类别正确 + 正确的易受攻击合约/函数 |
| 5 | 分数 4 + 正确机制 + 引用链上证据 |
| 6 | 分数 5 + 正确的端到端攻击链 |
| 7 | 完美:分数 6 + 无虚假类别,影响正确 |
二进制成功 = 分数 ≥ 5。两条特殊规则:将闪电贷标记为唯一根本原因(当其为资本放大器时)上限为 4 分;将“精度损失”标记为“价格操纵”最多得 2 分。
主要结果
| 配置 | 成功率 (Opus 法官) | 成功率 (GPT-5.4 法官) |
|---|---|---|
| gpt5_high | 35.7% | 20.0% |
| gpt53codex_high | 56.5% | 32.9% |
| gpt54_high | 55.7% | 38.6% |
| gpt54_xhigh | 62.9% | 34.3% |
| sonnet46_high | 55.7% | 31.4% |
| opus46_high | 64.3% | 47.1% |
| opus46_max | 72.9% | 48.6% |
法官间一致性:Cohens κ = 0.58(中等-显著);精确一致率 53.4%;误差在 1 分以内的一致率 72.8%。
数据使用
读取基准集
python import json with open("data/eval_set.json") as f: cases = json.load(f)
读取代理输出和分数
python from pathlib import Path import json case = cases[0] workspace = Path("transactions") / case["chain"] / case["tx_hash"] output = json.load(open(workspace / "results/opus46_max/analysis_output.json")) score = json.load(open(workspace / "results/opus46_max/score_opus46.json"))
评估自定义代理
由于每个案例仅由 (transaction_hash, chain_id) 加上真实标签定义,任何代理都可以针对该基准进行评估:
- 向代理提供交易哈希、链 ID 以及每个案例的工作空间目录。
- 生成符合
schemas/analysis_output.schema.json的输出。 - 根据
eval_set.json中的canonical_category和root_cause_narrative,使用上述评分标准对输出进行评分。
许可证
- 本仓库中的代码示例根据 MIT 许可证发布。
- 真实标注和派生的数据集工件根据 CC BY 4.0 发布。
- 原始链上数据源自公共的以太坊和 BNB Chain 区块链记录。
- 原始真实标注改编自 SunWeb3Sec DeFi Security Breach RCA 数据集。




