SC-Bench
收藏arXiv2024-10-09 更新2024-10-11 收录
下载链接:
https://github.com/system-pclub/SC-Bench
下载链接
链接失效反馈官方服务:
资源简介:
SC-Bench是由宾夕法尼亚州立大学创建的第一个用于自动化智能合约审计的大规模数据集。该数据集包含5377个运行在以太坊上的真实智能合约和15975个ERC标准违规记录。数据集内容丰富,涵盖了多种ERC规则的违规情况,包括139个真实开发者犯下的违规和15836个系统注入的违规。数据集的创建过程包括手动检查和自动错误注入,旨在为智能合约审计研究提供高质量的数据支持。SC-Bench的应用领域主要集中在智能合约的安全审计和自动化技术改进,旨在解决智能合约在区块链平台上的合规性和安全性问题。
SC-Bench is the first large-scale dataset for automated smart contract auditing, developed by Pennsylvania State University. This dataset contains 5,377 real smart contracts running on Ethereum and 15,975 ERC standard violation records. The dataset is rich in content, covering violations of multiple ERC specifications, including 139 violations committed by real developers and 15,836 system-injected violations. The creation process of the dataset includes manual inspection and automated error injection, aiming to provide high-quality data support for smart contract auditing research. The application domains of SC-Bench primarily focus on smart contract security auditing and automated technical improvement, with the goal of addressing the compliance and security issues of smart contracts on blockchain platforms.
提供机构:
宾夕法尼亚州立大学
创建时间:
2024-10-09
原始信息汇总
SCBench
SCBench是一个用于智能合约审计的大规模数据集。
数据集信息
Err-Inj 数据库
| call | emit | throw | interface | assign | return | total | # of contracts | |
|---|---|---|---|---|---|---|---|---|
| ERC-20 | 0 | 3612 | 566 | 4605 | 736 | 5930 | 15449 | 5211 |
| ERC-721 | 15 | 33 | 158 | 72 | 0 | 48 | 326 | 110 |
| ERC-1155 | 4 | 0 | 18 | 30 | 0 | 9 | 61 | 26 |
| Total | 19 | 3645 | 742 | 4707 | 736 | 5987 | 15836 | 5347 |
方法 1 (LLM: Full Contract + Full ERC)
| high | medium | low | total | |
|---|---|---|---|---|
| ERC-20 | (3,0,3659) | (83, 5, 7381) | (16,0, 533) | (102,5,11573) |
| ERC-721 | (0,0,108) | (0,0,195) | (0,0,17) | (0,0,320) |
| ERC-1155 | (0,0,4) | (0,0,31) | (0,0,8) | (0,0,43) |
| Total | (3,0,3771) | (83,5,7607) | (16,0,558) | (102,5,11936) |
方法 2 (LLM: Full Contract + Single Violated Rule)
| high | medium | low | total | |
|---|---|---|---|---|
| ERC-20 | (739, 1273) | (2037, 7788) | (823, 2789) | (3599, 11850) |
| ERC-721 | (2, 185) | (1, 105) | (0, 33) | (3, 323) |
| ERC-1155 | (4, 27) | (0, 30) | (0,0) | (4, 57) |
| Total | (745, 1485) | (2038, 7923) | (823, 2822) | (3606, 12230) |
方法 3 (LLM: Sliced Code + Single Violated Rule)
| high | medium | low | total | |
|---|---|---|---|---|
| ERC-20 | (1232, 780) | (8761, 1064) | (1794, 1818) | (11787, 3662) |
| ERC-721 | (84, 103) | (73, 33) | (3, 30) | (160, 166) |
| ERC-1155 | (11, 20) | (24, 6) | (0,0) | (35, 26) |
| Total | (1327, 903) | (8858, 1103) | (1797, 1848) | (11982, 3854) |
Manual-Inspect 数据库
| call | emit | throw | interface | assign | return | total | # of contracts | |
|---|---|---|---|---|---|---|---|---|
| ERC-20 | 0 | 57 | 48 | 35 | 1 | 4 | 145 | 30 |
方法 1 (LLM: Full Contract + Full ERC)
| high | medium | low | total | |
|---|---|---|---|---|
| ERC-20 | (16,0,40) | (21, 0, 36) | (5,2, 6) | (42,2,82) |
方法 2 (LLM: Full Contract + Single Violated Rule)
| high | medium | low | total | |
|---|---|---|---|---|
| ERC-20 | (3, 18) | (29, 30) | (30, 35) | (62, 83) |
方法 3 (LLM: Sliced Code + Single Violated Rule)
| high | medium | low | total | |
|---|---|---|---|---|
| ERC-20 | (8, 13) | (48, 11) | (54, 11) | (110, 35) |
平均代码行数
- Manual-Inspect: 303.73
- Err-Inj: 555.83
平均错误数
- Manual-Inspect: 4.83
- Err-Inj: 2.96
错误分布
| high | medium | low | |
|---|---|---|---|
| Manual-Inspect | 9.4% | 29.2 % | 61.3 % |
| Err - Inj | 14.1% | 62.9% | 23.0% |
搜集汇总
数据集介绍

构建方式
SC-Bench数据集的构建方式独具匠心,首先从Ethereum Commonwealth Security Department、etherscan.io和polygonscan.com收集了5,377个真实世界的智能合约。随后,通过手动检查和系统注入两种方法,分别识别和创建了ERC规则的违规实例。具体而言,手动检查了30个智能合约,发现了139个真实违规;同时,通过设计六种错误注入方法,对5,347个合约进行了系统性错误注入,生成了15,836个违规实例。这两种方法的结合,确保了数据集的多样性和真实性。
特点
SC-Bench数据集的显著特点在于其规模和多样性。该数据集包含了15,975个ERC规则违规实例,其中139个为真实世界中的违规,其余15,836个为系统注入的违规。此外,数据集涵盖了5,377个真实世界的智能合约,涉及ERC20、ERC721和ERC1155三种主要标准。这种大规模和多样性的结合,使得SC-Bench成为智能合约审计研究的重要资源,能够有效评估和提升自动化审计技术的效果。
使用方法
SC-Bench数据集的使用方法灵活多样,主要用于评估和开发智能合约的自动化审计技术。研究者可以通过提供合约代码和ERC规则,利用GPT-4等大型语言模型进行违规检测。具体操作包括两种方法:一是提供完整的ERC规则文档,让模型自行识别违规;二是提供具体的违规规则和代码位置,让模型进行True-or-False判断。此外,数据集还可用于训练和验证新的机器学习模型,以提高智能合约审计的准确性和效率。
背景与挑战
背景概述
SC-Bench数据集由宾夕法尼亚州立大学和加利福尼亚大学圣地亚哥分校的研究团队于2024年创建,旨在推动智能合约审计领域的自动化研究。该数据集包含了5,377个运行在以太坊平台上的真实智能合约,以及15,975个ERC标准的违规实例。SC-Bench的推出填补了智能合约审计领域缺乏系统性机器学习技术的空白,为研究人员提供了一个宝贵的资源,以探索基于大型语言模型的自动化审计技术。该数据集的发布不仅有助于提升智能合约的安全性,还为区块链生态系统的健康发展提供了技术支持。
当前挑战
SC-Bench数据集在构建过程中面临多项挑战。首先,智能合约的复杂性和ERC标准的多样性使得手动检查ERC违规变得极为困难,导致大量真实违规实例的缺失。其次,现有的自动化工具无法有效检测复杂的ERC违规,依赖于人工审计的高成本和低效率问题依然存在。此外,数据集的构建需要克服智能合约代码的复杂性,包括多文件结构和复杂的调用关系。最后,尽管GPT-4在检测ERC违规方面显示出潜力,但其准确率仍有待提高,特别是在处理复杂的合约代码和非结构化的ERC规则时。
常用场景
经典使用场景
SC-Bench数据集在智能合约审计领域中扮演着至关重要的角色。其经典使用场景包括利用机器学习技术对智能合约进行自动化审计,以检测和修复ERC规则的违规行为。通过提供大规模的真实世界智能合约及其ERC违规数据,SC-Bench为研究人员和开发者提供了一个宝贵的资源,用于训练和评估自动化审计工具的性能。
解决学术问题
SC-Bench数据集解决了智能合约审计领域中长期存在的学术研究问题,即如何有效地自动化检测ERC规则的违规行为。传统上,智能合约的审计依赖于人工检查,这不仅耗时且成本高昂。SC-Bench通过提供丰富的ERC违规数据,推动了基于机器学习的自动化审计技术的发展,显著提升了审计效率和准确性,对智能合约的安全性和可靠性具有重要意义。
衍生相关工作
SC-Bench数据集的发布催生了多项相关研究工作,推动了智能合约审计技术的进步。例如,研究人员基于SC-Bench开发了新的机器学习模型,用于更精确地检测ERC违规。此外,SC-Bench还启发了对智能合约安全性和合规性的深入研究,促进了自动化审计工具的标准化和普及。这些衍生工作不仅提升了智能合约的安全性,也为区块链技术的发展提供了坚实的基础。
以上内容由遇见数据集搜集并总结生成



