针对以太坊智能合约中坏随机性(SWC-120)漏洞的风险分层基准数据集
密码学与安全
2026-01-16 v1
摘要
许多以太坊智能合约依赖区块属性(如block.timestamp或blockhash)为彩票和游戏等应用生成随机数。然而,这些值是可预测且可被矿工操纵的,从而产生了坏随机性漏洞(SWC-120),并已导致现实世界中的攻击。当前的检测工具仅能识别简单模式,且无法验证保护性修饰符是否真正保护了存在漏洞的代码。改进这些工具的一个主要障碍是缺乏大规模、准确标记的数据集。本文提出了一个包含1,752个经验证存在坏随机性漏洞的以太坊智能合约的基准数据集。我们开发了一种五阶段方法,包括关键词过滤、使用58个正则表达式的模式匹配、风险分类、函数级验证和上下文分析。函数级验证揭示,最初被归类为受保护的合约中有49%实际上是可利用的,因为修饰符被应用于与包含漏洞的函数不同的函数。我们根据可利用性将合约分为四个风险等级:HIGH_RISK(无保护)、MEDIUM_RISK(仅矿工可利用)、LOW_RISK(仅所有者可利用)和SAFE(使用Chainlink VRF或提交-揭示方案)。我们的数据集比RNVulDet大51倍,并且是首个提供函数级验证和风险分层的数据集。对Slither和Mythril的评估揭示了显著的检测差距,因为这两个工具均未识别出我们样本中的任何漏洞合约,这表明其在处理复杂随机性模式方面存在局限性。该数据集和验证脚本已公开,以支持智能合约安全的未来研究。
引用
@article{arxiv.2601.09836,
title = {A Risk-Stratified Benchmark Dataset for Bad Randomness (SWC-120) Vulnerabilities in Ethereum Smart Contracts},
author = {Hadis Rezaei and Rahim Taheri and Francesco Palmieri},
journal= {arXiv preprint arXiv:2601.09836},
year = {2026}
}