ai-auditing-benchmark
收藏AI 智能合约审计基准数据集
这是一个面向 AI 智能合约审计 的基准数据集。它从真实世界中由智能合约漏洞导致的历史攻击事件中,整理并提取了存在漏洞的合约源码,旨在评估和训练 AI 的审计能力。
数据来源与目标
- 来源:公开的链上/安全事件报告和代码仓库快照,对应每个事件中被利用或发现缺陷的合约。
- 目标:
- 提供可复现、可比较的真实漏洞样本。
- 支持在 完整上下文 和 缩小攻击面 两种粒度下评估 AI 审计性能。
目录结构
数据位于 dataset/ 目录下,按事件组织。每个事件目录的命名规则为:{事件日期YYYYMMDD}_{项目或协议名}。
dataset/ ├── benchmark_complete/ # 被利用合约的完整代码(包括依赖/库),尽可能接近可审计/可编译的快照 └── benchmark_simplified/ # 仅保留与漏洞相关的函数及最小必要依赖,移除明显无关逻辑
benchmark_complete
- 包含被利用合约的 完整源码树(包括接口、库、第三方依赖等),适用于:
- 跨合约和跨模块交互分析
- 需要完整调用图和状态流上下文的审计工作流
benchmark_simplified
- 基于 同一事件 的代码,仅保留漏洞函数(以及编译和语义理解所需的最小依赖),移除与漏洞无关的函数,适用于:
- 集成到类似
ai-auditing-engine的引擎时 缩小输入范围,更容易 精确定位漏洞 - 降低 Token 和计算成本,加快迭代评估
- 集成到类似
注意:
benchmark_simplified可能仍包含一些库文件或接口,因为漏洞函数可能通过类型、常量或数学库耦合。指导原则是“最小必要”,而非“仅单文件 (.sol)”。
事件索引(CSV 文件)
仓库根目录下的 CSV 文件列出了 dataset/ 中当前包含的 所有事件,应视作元数据的权威来源:
- 中文版:
ai-auditing-benchmark_cn.csv - 英文版:
ai-auditing-benchmark_en.csv
两个 CSV 文件行数相同,仅字段语言不同。列含义说明:
- Attack date(攻击日期):事件日期(
YYYY.MM.DD)。 - Project(项目):被利用的项目或协议(显示名称可能与目录名略有差异,例如带有
@或括号注释)。 - Vulnerability(漏洞类型):漏洞类型的简短描述。
- Vulnerability details(漏洞详情):利用技术和缺陷描述。
- Attack transaction(攻击交易):代表性的链上交易哈希。
- Vulnerable contract address(漏洞合约地址):相关的合约地址(一个单元格内可能跨多行)。
- Loss (10k USD)(损失,万美元):报告或估计的损失金额。
目录命名映射:dataset/benchmark_complete 和 benchmark_simplified 下的事件文件夹均采用 {事件日期YYYYMMDD}_{项目或协议名} 格式。日期从 Attack date(攻击日期) 推导为 8 位数字(例如 2025.05.28 → 20250528)。{项目或协议名} 对应 Project(项目) 列,通常是文件系统安全的短横线/驼峰式名称。如果 Project(项目) 列包含额外注释,目录名称仍使用简短的协议标识符,以仓库中的实际文件夹名称为准。
快速开始(按事件定位代码)
- 在 CSV 中查找目标事件行(按 Attack date(攻击日期) / Project(项目))。
- 将 Attack date(攻击日期) 转换为
YYYYMMDD,并与项目名组合:{YYYYMMDD}_{ProjectSlug}。 - 选择一种粒度:
dataset/benchmark_complete/{目录}/...:完整上下文(更接近真实审计输入)。dataset/benchmark_simplified/{目录}/...:最小必要切片(更少 Token,更快回归)。
示例:2025.05.28 + @Corkprotocol → dataset/benchmark_simplified/20250528_Corkprotocol/
建议与 AI 审计引擎配合使用
- 回归与对比:对同一事件,在
benchmark_complete和benchmark_simplified上运行相同的审计提示/流程,比较检出率、误报率和成本。 - 日常迭代:开发期间使用
benchmark_simplified进行快速验证;发布前使用benchmark_complete进行更贴近生产环境的抽样检查。
许可与免责声明
- 本仓库中的代码片段来自公开项目源码或事件相关公开材料;版权归原作者所有。它们仅用于安全研究和基准评估。
- 漏洞代码可能具有 破坏性。请勿将其用于非法目的。如果在论文或产品中使用本数据集,请引用数据集名称和版本/提交信息。
贡献与更新
欢迎通过 Issue 和 PR 添加新事件、修复路径或改进“漏洞函数”切片规则。对于新增条目,请维护 benchmark_complete 和 benchmark_simplified 之间的映射关系,并更新 CSV 元数据(ai-auditing-benchmark_cn.csv、ai-auditing-benchmark_en.csv)。在 PR 中简要描述事件来源和漏洞类型。




