Smart contracts are small programs on the blockchain that often handle valuable assets. Vulnerabilities in smart contracts can be costly, as time has shown over and over again. Countermeasures are high in demand and include best practice recommendations as well as tools supporting development, program verification, and post-deployment analysis. Many tools focus on detecting the absence or presence of a subset of the known vulnerabilities, delivering results of varying quality. Most comparative tool evaluations resort to selecting a handful of tools and testing them against each other. In the best case, the evaluation is based on a smallish ground truth. For Ethereum, there are commendable efforts by several author groups to manually classify contracts. However, a comprehensive ground truth is still lacking. In this work, we construct a ground truth based on publicly available benchmark sets for Ethereum smart contracts with manually checked ground truth data. We develop a method to unify these sets. Additionally, we devise strategies for matching entries that pertain to the same contract, such that we can determine overlaps and disagreements between the sets and consolidate the disagreements. Finally, we assess the quality of the included ground truth sets. Our work reduces inconsistencies, redundancies, and incompleteness while increasing the number of data points and heterogeneity.
翻译:智能合约是区块链上处理有价值资产的小型程序。智能合约中的漏洞可能是非常昂贵的,正如时间一遍又一遍地展示。对策是需要高需求的,其中包括最佳实践建议以及支持开发、程序验证和部署后分析的工具。许多工具专注于检测已知漏洞的存在或缺失,提供质量不等的结果。大多数比较工具的评估则选择了少数几个工具,并将它们相互测试。在最好的情况下,评估基于较小的地面真相。对于以太坊而言,有几个作者组成员为手动分类合约付出了值得称赞的努力。然而,一份全面的地面真相仍然缺失。在这项工作中,我们基于公开可用的以太坊智能合约基准集,构建了一个基于手动检查的地面真相。我们开发了一种方法来统一这些集合。此外,我们设计了匹配属于相同合约的条目的策略,以便确定集合之间的重叠和分歧,并合并分歧。最后,我们评估所包含的地面真相集的质量。我们的工作减少了不一致性、冗余和不完整性,同时增加了数据点和异构性。