WACANA: A Concolic Analyzer for Detecting On-chain Data Vulnerabilities in WASM Smart Contracts
本文提出 WACANA,通过细粒度模拟链上数据表与 API,并结合覆盖率引导的具体与符号执行,提升 WASM 智能合约漏洞检测的准确性和实用性。
2024-12-05 cs.CR cs.SE
Impact of Code Transformation on Detection of Smart Contract Vulnerabilities
针对智能合约漏洞检测训练数据集有限的问题,提出基于语义保持代码转换的数据集扩充方法,可生成能绕过现有检测工具的漏洞样本,使检测漏报率最高达100%,数据集规模至少扩大2.5倍。
2024-10-30 cs.CR cs.SE
ContractTinker: LLM-Empowered Vulnerability Repair for Real-World Smart Contracts
针对现有智能合约漏洞修复工具语义理解不足、难以处理真实漏洞的问题,提出结合思维链拆解与静态分析引导的LLM赋能修复工具ContractTinker,在48个高危漏洞上实现48%的有效修复率与21%的微改可用率。
2024-09-15 cs.CR cs.SE
Metamorphic Testing for Smart Contract Vulnerabilities Detection
尽管智能合约快速增长,但由于缺乏可靠的开发和测试,它们正遭受许多安全漏洞。在本文中,我们应用变形测试技术来检测智能合约漏洞。基于我们在易受攻击的智能合约中观察到的异常,我们定义了五种变形关系来检测目标智能合约的异常气体消耗和账户交互不一致性。通过动态执行交易并检查变形关系的最终违反,我们确定智能合约是否易受攻击。我们在67个手动注释的智能合约的基准上评估了我们的方法。实验结果表明,我们的方法实现了更高的检测率(TPR,真阳性率)与更低的误报率(FDR,错误发现率)比其他三个国家的最先进的工具。这些结果进一步表明,变形测试是检测智能合约漏洞的一种很有前途的方法。
2023-03-06 cs.SE
SmartShift: A Secure and Efficient Approach to Smart Contract Migration
针对智能合约跨链与链内迁移中的数据完整性和运行中断问题,提出 SmartShift 框架,利用智能状态分区与渐进式函数激活实现安全、低停机迁移。
2025-05-15 cs.CR cs.SE
Pre-deployment Analysis of Smart Contracts -- A Survey
本文系统综述智能合约部署前分析方法,通过属性关联漏洞与方法,对静态分析、动态分析及机器学习算法进行分类,揭示不同方法的优势模式。
2023-06-30 cs.CR cs.SE
Characterizing Transaction-Reverting Statements in Ethereum Smart Contracts
智能合约是在区块链上运行以执行交易的程序。当输入约束或安全属性在运行时被违反时,智能合约执行的交易需要恢复,以避免不良后果。在支持智能合约的最受欢迎的区块链以太坊上,开发人员可以在三种交易恢复语句中进行选择(即,要求,如果...恢复原状如果处理异常交易。虽然这些交易恢复语句对于防止智能合约表现出异常行为或遭受恶意攻击至关重要,但人们对它们在实践中如何使用的理解有限。在这项工作中,我们进行了第一次实证研究,以描述以太坊智能合约中的交易恢复语句。我们测量了这些语句在流行的dapps中的3,866个已验证智能合约中的流行程度,并通过手动分析557个事务恢复语句建立了它们的目的分类。我们还比较了模板契约及其相应的自定义契约,以了解开发人员如何自定义事务恢复语句的使用。最后,我们分析了交易恢复语句的安全影响,将它们从智能合约中删除,并将突变合约与原始合约进行比较。我们的研究得出了重要的发现,这些发现可以为智能合约质量保证这一广泛领域的进一步研究提供指导,并为智能合约开发人员提供适当使用交易恢复语句的实用指导。
2021-09-01 cs.CR cs.SE
HFContractFuzzer: Fuzzing Hyperledger Fabric Smart Contracts for Vulnerability Detection
区块链技术凭借其去中心化、不可变性等独特优势,近年来在各个领域得到广泛应用。运行在区块链上的智能合约也在去中心化应用场景中发挥着越来越重要的作用。因此,智能合约安全漏洞的自动检测成为区块链技术应用中亟待解决的问题。Hyperledger Fabric是一个基于企业级许可分布式账本技术的智能合约平台。然而,Hyperledger Fabric智能合约的漏洞检测技术研究仍处于起步阶段。在本文中,我们提出了HFContractFuzzer,这是一种基于Fuzzing技术来检测Hyperledger Fabric智能合约的方法,它结合了一个名为go-fuzz的golang Fuzzing工具和golang编写的智能合约。我们使用HFContractFuzzer从典型的来源中检测出五个合同中的漏洞,发现其中四个存在安全漏洞,证明了所提出的方法的有效性。
2021-06-21 cs.CR cs.SE
An Empirical Study of Impact of Solidity Compiler Updates on Vulnerabilities in Ethereum Smart Contracts
本文收集 503,572 个以太坊合约开展实证研究,分析 Solidity 编译器版本对三类高危漏洞的影响,发现重大更新可降低漏洞出现率,并指出移除代码克隆可进一步减少 Unchecked Call。
2023-06-07 cs.CR cs.SE
sGUARD: Towards Fixing Vulnerable Smart Contracts Automatically
智能合约是在区块链网络上执行的分布式、自我执行的程序。它们有可能彻底改变许多行业,如金融机构和供应链。然而,智能合约存在基于代码的漏洞,这给其应用蒙上了阴影。由于智能合约是不可修补的(由于区块链的不变性),因此必须保证智能合约没有漏洞。不幸的是,像Solidity这样的智能合约语言是图灵完备的,这意味着静态验证它们是不可行的。因此,必须制定替代办法来提供保障。在这项工作中,我们开发了一种自动转换智能合约的方法,使它们可以证明没有4种常见的漏洞。关键思想是以一种高效且可证明正确的方式应用运行时验证。5000个智能合约的实验结果表明,我们的方法在时间方面产生了较小的运行时开销(即,14.79%)和气体(即,0.79%)。
2021-01-06 cs.CR cs.SE
SmartIntentNN: Towards Smart Contract Intent Detection
针对智能合约恶意意图评估的研究空白,提出深度学习工具SmartIntentNN,结合Universal Sentence Encoder、K-means聚类和双向LSTM多标签分类网络检测十类不安全意图,在10,000个合约上F1达0.8633。
2024-10-17 cs.CR cs.SE
CONTRACTFIX: A Framework for Automatically Fixing Vulnerabilities in Smart Contracts
针对智能合约漏洞修复人工成本高的问题,提出通用框架ContractFix,通过多工具集成识别漏洞、模板化生成补丁并验证,可修复94%的已检测漏洞且保留合约预期行为。
2023-07-22 cs.SE
SmartBugs: A Framework to Analyze Solidity Smart Contracts
在过去的几年里,人们对以太坊智能合约的自动化分析、测试和调试进行了大量的研究。然而,比较和复制这项研究并非易事。为了解决这个问题,我们提出了SmartBugs,这是一个可扩展且易于使用的执行框架,它简化了在以太坊中使用的主要语言Solidity编写的智能合约上执行分析工具。SmartBugs目前支持10个工具和两个Solidity合约数据集。第一个数据集可用于评估分析工具的精度,因为它包含143个带注释的易受攻击合同,其中有208个标记的漏洞。第二个数据集包含通过Etherscan收集的47,518个唯一合约。我们将讨论SmartBugs如何在工具数量和执行时间方面支持迄今为止最大的实验设置。此外,我们还展示了它如何通过对SmartCheck工具进行新的扩展来轻松集成和比较分析工具,该扩展大大提高了对与DASP 10类别不良随机性,时间操纵和访问控制相关的漏洞的检测(识别的漏洞从11%增加到24%)。
2020-07-10 cs.CR cs.SE
STAN: Towards Describing Bytecodes of Smart Contract
超过800万个智能合约已经部署到以太坊中,这是支持智能合约的最受欢迎的区块链。然而,只有不到1%的智能合约是开源的,用户很难理解这些闭源合约的功能和内部机制。尽管最近提出了一些智能合约的反编译器,但用户仍然不容易掌握合约的语义信息,更不用说由于反编译错误而可能产生的误导。在本文中,我们提出了第一个名为STAN的系统来生成智能合约字节码的描述,以帮助用户理解它们。特别是,对于智能合约中的每个接口,STAN可以通过利用符号执行和NLP(自然语言处理)技术生成四类描述,包括功能描述、使用描述、行为描述和支付描述。大量的实验表明,STAN能够对合同的字节码进行充分、准确、可读的描述,对用户具有实用价值。
2020-07-19 cs.CR cs.SE
Identifying Vulnerabilities in Smart Contracts using Interval Analysis
本文报告了利用区间分析增强智能合约漏洞检测的研究进展,通过在 Slither 上实现区间分析,成功识别出其他现有工具无法检测的漏洞。
2023-09-25 cs.SE
Assessing Smart Contracts Security Technical Debts
智能合约是一种自我执行的协议,用于在未经可信第三方批准的情况下交换资产。这一功能鼓励各个部门在交易时使用智能合约。经验表明,许多已部署的合同由于设计不佳而容易受到攻击,攻击者可以从相关方窃取宝贵的资产。因此,需要一种评估方法,使开发人员能够认识到部署易受攻击的合同的后果。在本文中,我们提出了一种债务感知方法来评估智能合约中的安全设计漏洞。我们的评估方法包括两个主要步骤:(i)使用安全分析技术识别设计漏洞,以及(ii)利用技术债务隐喻,其本金和利息估计所识别漏洞的后果。我们使用易受攻击的合同的例子来证明我们的方法的适用性。结果表明,我们的评估方法增加了安全设计问题的可见性。它还允许开发人员通过技术债务影响分析和优先级来集中精力解决智能合约漏洞。开发人员可以使用我们的方法来设计更安全的合同,并减少由于缺乏安全问题意识而造成的无意债务。
2021-03-17 cs.CR cs.SE
CrossInspector: A Static Analysis Approach for Cross-Contract Vulnerability Detection
本文提出 CrossInspector 框架,通过 Transformer 恢复语义信息并构建状态依赖图进行细粒度静态分析,有效检测智能合约字节码层面的跨合约漏洞,在精确率、召回率和检测时间上均优于现有工具。
2024-08-27 cs.CR cs.SE
Smart Contract Fuzzing Towards Profitable Vulnerabilities
针对智能合约可获利漏洞检测与利润最大化的问题,提出以利润为中心的模糊测试框架VERITE,通过DeFi操作变异器、异常资金流识别及梯度下降策略,在真实DeFi项目中检测和获利表现显著优于现有工具,还助力发现零日漏洞获赏金。
2025-02-12 cs.CR cs.SE
SmartOracle: Generating Smart Contract Oracle via Fine-Grained Invariant Detection
本文提出 SmartOracle,从历史交易中自动挖掘多层细粒度不变量作为漏洞检测预言机,并在 ERC20 不变量和真实漏洞合约交易上验证了高精确率与有效性。
2024-06-14 cs.CR cs.SE
Bug Searching in Smart Contract
随着以太坊平台上智能合约的疯狂发展,其市值也节节攀升。2016年,人们对DAO重入攻击造成的近5000万美元的加密货币损失感到震惊。由于智能合约中流动的大量资金,其安全性引起了研究人员的广泛关注。在本文中,我们研究了几个常见的智能合约漏洞,并分析了它们可能的场景以及它们可能被利用的方式。此外,我们还调查了近年来以太坊平台的智能合约漏洞检测工具。我们发现这些工具在软件漏洞检测技术上有相似的原型。此外,针对以太坊等公共分发系统的特点,提出了这些软件漏洞检测技术面临的新挑战。
2019-05-02 cs.CR cs.SE
All Your Tokens are Belong to Us: Demystifying Address Verification Vulnerabilities in Solidity Smart Contracts
本文针对以太坊智能合约中未充分研究的地址验证漏洞,设计并实现了基于静态EVM操作码模拟的轻量级污点分析器AVVERIFIER,实现了高精确率与召回率,并发现了大量未披露的漏洞合约。
2024-05-31 cs.CR cs.SE
On-Chain Analysis of Smart Contract Dependency Risks on Ethereum
本文首次对以太坊智能合约依赖风险进行大规模实证研究,发现交易多合约依赖、生态系统极端中心化、核心合约可变性及实际依赖复杂度远超文档,为区块链安全提供了关键见解。
2025-04-02 cs.CR cs.SE
EOSFuzzer: Fuzzing EOSIO Smart Contracts for Vulnerability Detection
EOSIO是一个典型的公共区块链平台。它在交易速度方面具有可扩展性,并且拥有支持智能合约和分散应用程序的不断增长的生态系统。然而,EOSIO智能合约中的漏洞导致了严重的攻击,给最终用户造成了严重的经济损失。在本文中,我们系统地分析了三个典型的EOSIO智能合约漏洞及其相关攻击。然后,我们介绍了EOSFuzzer,这是一个通用的黑盒模糊框架,用于检测EOSIO智能合约中的漏洞。特别是,EOSFuzzer为EOSIO智能合约模糊化提出了有效的攻击场景和测试神谕。我们在3963个EOSIO智能合约上进行的模糊实验表明,EOSFuzzer能够有效且高效地检测EOSIO智能合约漏洞,并具有较高的准确性。
2020-08-06 cs.SE
Smart Contracts for SMEs and Large Companies
本文提出一种从BPMN模型自动生成智能合约的方法,支持多步交易及合约修复升级,使缺乏区块链知识的建模者也能为中小企业到大型公司生成智能合约,推动技术普及。
2025-05-28 cs.CR cs.DC cs.SE
Efficiently Detecting Reentrancy Vulnerabilities in Complex Smart Contracts
针对复杂智能合约中重入漏洞检测效率低、成功率差的问题,提出SliSE工具,结合程序切片与符号执行两阶段验证,F1分数达78.65%,召回率超90%,优于现有工具。
2024-03-17 cs.SE
Automated Vulnerability Injection in Solidity Smart Contracts: A Mutation-Based Approach for Benchmark Development
本研究提出基于突变注入的MuSe工具,自动向Solidity智能合约注入六种漏洞以生成基准,并用Slither验证,发现注入率因漏洞而异且静态分析工具检测不全,凸显了改进检测评估的需求。
2025-04-22 cs.SE
SmartAxe: Detecting Cross-Chain Vulnerabilities in Bridge Smart Contracts via Fine-Grained Static Analysis
针对跨链桥智能合约的跨链漏洞检测难题,提出SmartAxe框架,通过概率模式推理和跨链流图检测访问控制缺陷与语义不一致,在真实数据集上取得较高准确率与召回率,并发现大量未知漏洞。
2024-06-23 cs.SE
Tool Demonstration: FSolidM for Designing Secure Ethereum Smart Contracts
基于区块链的分布式计算平台能够在没有可信代理的情况下实现以智能合约形式定义的可信计算执行。智能合约被设想有各种各样的应用,从金融到物联网资产跟踪。不幸的是,智能合约的开发被证明是非常容易出错的。在实践中,合同充满了安全漏洞,这是一个关键问题,因为漏洞在设计上是不可修复的,合同可能处理价值重大的金融资产。为了促进安全智能合约的开发,我们创建了FSolidM框架,允许开发人员将合约定义为具有严格和清晰语义的有限状态机(FSM)。FSolidM提供了一个易于使用的图形编辑器,用于指定FSM,一个用于创建以太坊智能合约的代码生成器,以及一组开发人员可以添加到FSM中以增强安全性和功能的插件。
2018-02-26 cs.CR cs.FL cs.SE
What are the Actual Flaws in Important Smart Contracts (and How Can We Find Them)?
智能合约安全性的一个重要问题是了解合约中发现或潜在弱点的可能性和关键性。在本文中,我们总结了对23个专业利益相关者进行的以太坊智能合约审计,避免了低质量合约中常见的报告问题。这些审计是在区块链安全领域的领先公司进行的,使用了开源和专有工具,以及由专业安全工程师进行的人工代码分析。我们对246个单独的缺陷进行了分类,从而可以比较不同漏洞类型的严重性和频率,比较智能合约和非智能合约缺陷,并评估自动漏洞检测方法的有效性。
2020-01-10 cs.CR cs.PL cs.SE
Versioned Analysis of Software Quality Indicators and Self-admitted Technical Debt in Ethereum Smart Contracts with Ethstractor
本文提出首个智能合约收集工具 Ethstractor,用于构建版本化合约数据集,研究发现代码指标无法有效指示漏洞,漏洞数量随时间保持一致,且多数自认技术债务从未被移除。
2024-07-22 cs.CR cs.DC cs.SE
Smart Contract Repair
智能合约是自动化或自我执行的合约,可用于交换资产,而无需信任第三方。许多商业交易使用智能合约,因为它们在独立于外部方的安全点对点交易方面具有潜在的好处。经验表明,许多常用的智能合约容易受到严重的恶意攻击,这可能使攻击者能够窃取参与方的宝贵资产。因此,需要应用分析和自动修复技术,在部署之前检测和修复智能合约中的错误。在这项工作中,我们提出了第一个通用的自动智能合约修复方法,也是气体感知的。我们的修复方法是基于搜索的,并在有缺陷的合同的突变中搜索。我们的方法还考虑了气体使用的候选补丁,利用我们的新概念的气体优势关系。我们已经将我们的智能合约修复工具SCRepair开源,供更广泛的社区调查。
2020-05-20 cs.CR cs.PL cs.SE
Exploring Security Practices of Smart Contract Developers
智能合约是在区块链上运行的自动执行程序(例如,Ethereum)。2021年,由于各种安全漏洞,由智能合约控制的价值6.8亿美元的数字资产被黑客入侵或被盗。虽然安全性是智能合约的一个基本问题,但目前尚不清楚智能合约开发人员如何处理安全性。为了帮助填补这一研究空白,我们进行了一项探索性的定性研究,包括半结构化访谈和代码审查任务,共有29名不同背景的智能合约开发人员,其中包括10名早期(不到一年的经验)和19名经验丰富(2-5年的经验)的智能合约开发人员。我们的研究结果显示了广泛的智能合约安全认知和实践,包括他们使用的各种工具和资源。我们的早期开发人员参与者在代码审查任务中识别安全漏洞的成功率(15%)远低于经验丰富的同行(55%)。我们对他们的代码审查的分层任务分析表明,仅仅访问标准文档、参考实现和安全工具是不够的。许多开发人员检查了这些材料或使用了安全工具,但仍然未能发现安全问题。此外,一些与会者指出了当前智能合约安全工具的缺点,例如其可用性。我们讨论了未来的教育和工具如何更好地支持开发人员确保智能合约的安全性。
2022-04-24 cs.CR cs.HC cs.SE
Understanding Inconsistent State Update Vulnerabilities in Smart Contracts
Shandong University(山东大学)
本文首次系统研究智能合约中的不一致状态更新漏洞,揭示其根本原因及修复方法,并开发检查器验证发现。
2025-12-14 cs.SE
Testing Smart Contracts Gets Smarter
智能合约是不可变的,可验证的,自治的代码片段,可以在以太坊等区块链网络上部署和运行。由于区块链的不变性,已部署的智能合约或已验证的交易不可能发生变化。另一方面,以太坊区块链中的智能合约携带了数百万美元,因此,一个错误的智能合约可能会导致巨大的金钱损失。因此,对于智能合约开发人员来说,在将其部署到区块链上之前,充分测试和检查其代码的正确性非常重要。在本文中,我们提出了一种基于突变测试的Solidity语言智能合约测试机制。我们分析了Solidity智能合约中已知错误的全面列表,并设计了10类受真实错误启发的变异算子。我们的实验结果表明,我们提出的变异算子可以重新生成15个著名的错误智能合约中的10个,这些智能合约导致了数百万美元的损失。结果表明,我们提出的变异算子在检测Solidity智能合约中的实际故障方面是有效的。我们还使用我们的突变操作符扩展了{ \em Universal Mutator }工具,以便它可以自动为Solidity编写的智能合约生成突变体。
2019-12-24 cs.SE
Smart Contract Vulnerabilities, Tools, and Benchmarks: an Updated Systematic Literature Review
University of Salerno(萨莱诺大学)
本文通过系统性文献综述探讨了以太坊智能合约的漏洞,分析了自动化检测工具和基准评估方法,总结了192种漏洞分类、219种检测工具及133个基准测试案例。
2026-01-14 cs.SE
Validation Framework for E-Contract and Smart Contract
提出一个验证框架,通过系统比较和自动化验证电子合同条款与智能合约逻辑,确保智能合约准确反映协议,解决法律语言与代码执行之间的差距,增强自动化合约执行的信任与可靠性。
2025-04-27 cs.SE
SmartML: Towards a Modeling Language for Smart Contracts
本文提出SmartML,一种平台无关且易理解的智能合约建模语言,详细阐述其形式语义与类型系统,并通过案例研究展示其防范重入攻击、增强合约安全可靠性的有效性。
2024-06-28 cs.SE
SmartMark: Software Watermarking Scheme for Smart Contracts
智能合约是区块链上的自动执行程序,可确保协议的不可变和透明,无需中介机构的参与。尽管智能合约在以太坊等许多区块链平台上越来越受欢迎,但由于缺乏可用的技术手段,智能合约开发人员无法阻止从竞争对手那里复制智能合约。然而,应用现有的软件水印技术是具有挑战性的,因为智能合约的独特属性,例如代码大小约束,非自由执行成本,以及不支持虚拟机环境下的动态分配。本文介绍了一种新的软件水印方案,称为SmartMark,旨在保护智能合约的盗版。SmartMark构建目标合约运行时字节码的控制流图,并定位从操作码集合中随机选择的一系列字节以表示水印。我们为以太坊实现了一个完整的原型,将SmartMark应用于27,824个唯一的智能合约字节码。我们的实证结果表明,SmartMark可以有效地将水印嵌入到智能合约中并验证其存在,满足可信性和不可感知性的要求,同时会导致轻微的性能下降。此外,我们的安全分析表明,SmartMark对可预见的水印破坏攻击具有弹性;例如,需要大量的伪操作码来有效地禁用水印,导致产生不经济的非法智能合约克隆。
2023-03-24 cs.SE
Eth2Vec: Learning Contract-Wide Code Representations for Vulnerability Detection on Ethereum Smart Contracts
Osaka University(大阪大学);National Institute of Technology, Nara College(奈良工业高等专门学校)
以太坊智能合约是在以太坊区块链上运行的程序,在过去十年中发现了许多智能合约漏洞。已经创建了许多安全分析工具来检测此类漏洞,但是当要分析的代码被重写时,它们的性能急剧下降。在本文中,我们提出了Eth2Vec,这是一种基于机器学习的静态分析工具,用于漏洞检测,对智能合约中的代码重写具有鲁棒性。现有的基于机器学习的漏洞检测静态分析工具需要分析人员手动创建的特征作为输入。相比之下,Eth2Vec通过用于语言处理的神经网络自动学习具有隐性知识的易受攻击的以太坊虚拟机(EVM)字节码的特征。因此,Eth2Vec可以通过比较目标EVM字节码与其已经学习的EVM字节码之间的代码相似度来检测智能合约中的漏洞。我们对现有的开放数据库(如Etherscan)进行了实验,结果表明Eth2Vec在众所周知的指标方面优于现有的工作,即,精确度、召回率和F1分数。此外,Eth2Vec甚至可以检测重写代码中的漏洞。
2021-01-08 cs.CR cs.LG cs.SE
Smart-Corpus: an Organized Repository of Ethereum Smart Contracts Source Code and Metrics
许多经验性的软件工程研究表明,有一个巨大的需求,源代码的获取,过滤和分类库。在过去的几年里,以太坊区块浏览器服务已经成为一个流行的项目,用于探索和搜索以太坊区块链数据,如交易,地址,令牌,智能合约的源代码,价格和以太坊区块链上发生的其他活动。尽管这种服务是可用的,但检索对经验软件工程研究有用的特定信息,例如研究智能合约的软件指标,可能需要许多子任务,例如搜索块中的特定交易,解析HTML格式的文件以及过滤智能合约以删除重复的代码或未使用的智能合约。在本文中,我们提出了创建智能语料库的问题,智能语料库是一个有组织的、合理的、最新的存储库中的智能合约语料库,在这个存储库中,可以轻松、系统地检索Solidity源代码和其他关于以太坊智能合约的元数据。我们介绍了智能语料库的设计及其初步实现,并展示了如何查询和处理各种程序设计语言的智能合约源代码的数据集,获得有关智能合约及其软件度量的有用信息。智能语料库旨在创建一个智能合约存储库,其中智能合约数据(源代码,ABI和字节码)可以免费立即获得,并根据科学文献中确定的主要软件指标进行分类。智能合约的源代码已经过EtherScan验证,每个合约都有自己的相关软件指标,由免费软件PASO计算。此外,智能语料库可以很容易地扩展,因为新的智能合约的数量每天都在增加。
2020-11-03 cs.SE
Truffle tests for free -- Replaying Ethereum smart contracts for transparency
以太坊区块链本质上是一个全球复制的公共数据库。被称为智能合约的程序可以访问这个数据库。超过1000万个智能合约已部署在以太坊区块链上。执行智能合约的方法会生成一个交易,该交易也存储在区块链上。迄今为止,以太坊交易超过10亿笔。功能透明的智能合约比不透明的合约更成功。因此,我们开发了一个工具(ContractVis)来探索智能合约的透明度。该工具为智能合约的历史交易生成重放脚本。该脚本使用与区块链上记录的相同参数执行交易,但在最小的测试环境中。运行重播脚本可以深入了解合约,以及用于检索合约及其历史的区块链浏览器。我们为Etherscan等区块链探索者提供了五项具体建议,以提高智能合约的透明度。
2019-07-22 cs.SE
GPTScan: Detecting Logic Vulnerabilities in Smart Contracts by Combining GPT with Program Analysis
Nanyang Technological University(南洋理工大学);MetaTrust Labs(MetaTrust实验室);East China Normal University(华东师范大学);Xi’an Jiaotong University(西安交通大学);Singapore Management University(新加坡管理大学)
本文提出GPTScan,将GPT作为代码理解工具与静态分析结合,通过场景-属性匹配和静态确认检测智能合约逻辑漏洞,在保持高精确率和召回率的同时实现快速低成本的审计。
2024-05-06 cs.AI cs.CR cs.SE
WANA: Symbolic Execution of Wasm Bytecode for Cross-Platform Smart Contract Vulnerability Detection
许多流行的区块链平台都支持智能合约来构建分散的应用程序。然而,智能合约中的漏洞给最终用户带来了严重的经济损失。对于EOSIO区块链平台,有效的漏洞检测器仍然有限。此外,现有的漏洞检测工具只能支持一个区块链平台。在这项工作中,我们提出了WANA,一个基于WebAssembly字节码符号执行的跨平台智能合约漏洞检测工具。此外,WANA提出了一组测试预言机,以检测基于WebAssembly字节码分析的EOSIO和以太坊智能合约中的漏洞。我们的实验分析表明,WANA可以高效地检测EOSIO和以太坊智能合约中的漏洞。
2020-08-05 cs.SE
Profiling Gas Consumption in Solidity Smart Contracts
University of Sannio(桑尼奥大学)
如今,越来越多的应用程序被开发用于在分布式账本技术上运行,即dApps。dApps的业务逻辑通常在通过Solidity开发的智能合约中实现,Solidity是一种用于在不同区块链平台上编写智能合约的程序设计语言,包括流行的以太坊。在以太坊中,智能合约在矿工的机器上运行,gas对应于补偿这些计算资源的执行费用。然而,智能合约的部署和执行成本取决于开发人员的实现选择。不适当的设计选择可能导致比必要的更高的气体消耗。在本文中,我们(i)确定了一组影响智能合约部署和交易成本的19种Solidity代码气味,以及(ii)通过涉及34名参与者的调查评估这些气味的相关性。在这些气味之上,我们提出了GasMet,这是一套从气体消耗角度静态评估智能合约代码质量的指标。一项涉及2,186个智能合约的实验表明,所提出的指标与部署成本有直接关联。我们套件中的指标可用于更轻松地识别需要优化的源代码段。
2021-12-15 cs.CL cs.CR cs.SE
How Effective are Smart Contract Analysis Tools? Evaluating Smart Contract Static Analysis Tools Using Bug Injection
针对智能合约的安全攻击一直在上升,这导致了财务损失和信任的侵蚀。因此,让开发人员在部署之前发现智能合约中的安全漏洞非常重要。已经开发了许多静态分析工具来查找智能合约中的安全漏洞。然而,尽管有许多错误发现工具,但没有系统的方法来评估所提出的工具并衡量其有效性。本文提出了SolidiFI,这是一种用于评估智能合约静态分析工具的自动化和系统化方法。SolidiFI基于注入错误(即,代码缺陷)到智能合约中的所有潜在位置,以引入有针对性的安全漏洞。然后,SolidiFI使用静态分析工具检查生成的错误合约,并识别工具无法检测到的错误(假阴性)以及报告为假阳性的错误。SolidiFI被用来评估六个广泛使用的静态分析工具,即Oyente,Securify,Mythril,SmartCheck,Manticore和Slither,使用一组由9369个不同的错误注入的50个合同。它发现了几个被评估的工具没有检测到的bug实例,尽管它们声称能够检测到这样的bug,并且所有的工具都报告了许多误报
2020-05-23 cs.SE
A Framework and DataSet for Bugs in Ethereum Smart Contracts
以太坊是支持智能合约的最大区块链平台。用户通过将智能合约的字节码发布到区块链来部署智能合约。由于区块链中的数据无法修改,即使这些合约包含错误,也无法使用代码更新来修补已部署的智能合约。此外,目前既没有针对以太坊智能合约bug的全面分类框架,也没有检测智能合约bug的详细标准,这使得开发人员难以充分了解bug的负面影响并设计新的方法来检测bug。在本文中,为了填补这一空白,我们首先从多个来源收集尽可能多的智能合约错误,并通过扩展IEEE软件异常标准分类将这些错误分为9类。然后,我们设计了检测每种bug的标准,并构建了一个涵盖所有bug的智能合约数据集。通过我们的框架和数据集,开发人员可以学习智能合约的错误,并开发新的工具来检测和定位智能合约中的错误。此外,我们使用我们的数据集评估了最先进的智能合约分析工具,并获得了一些有趣的发现:1)Mythril,Slither和Remix是最有价值的分析工具组合。2)还有10种bug是任何分析工具都无法检测到的。
2020-09-04 cs.SE
Smart Contract Upgradeability on the Ethereum Blockchain Platform: An Exploratory Study
本文通过收集以太坊已部署智能合约的元数据与源代码,识别并刻画可升级合约的升级模式及其普遍性,分析开发者升级合约的原因,并基于交易数量和版本存续时间评估升级对合约采用与生命周期的影响。
2023-04-13 cs.SE
Safety Verification of Declarative Smart Contracts
本文提出自动化安全验证工具DCV,针对DeCon语言编写的声明式智能合约,通过数学归纳法证明安全属性并自动推断归纳不变量,在20个基准合约上验证有效且速度优于基线工具。
2023-08-02 cs.SE
PrAIoritize: Automated Early Prediction and Prioritization of Vulnerabilities in Smart Contracts
本研究提出PrAIoritize方法,结合LLM与NLP技术,利用智能合约缺陷领域词典及DistilBERT模型,实现以太坊智能合约代码审查中缺陷的自动化预测与优先级排序,性能显著优于现有模型,可降低人工分诊成本。
2024-05-15 cs.SE
Declarative Smart Contracts
本文介绍了DeCon,一种用于实现智能合约和指定合约级属性的声明式程序设计语言。在观察到智能合约操作和合约级属性可以自然地表示为关系约束的驱动下,DeCon将每个智能合约建模为一组存储交易记录的关系表。智能合约的这种关系表示可以方便地指定合约属性,便于对潜在的属性违规进行运行时监控,并通过数据来源为合约调试带来清晰度。具体来说,DeCon程序由一组关系表示上的声明性规则和违规查询规则组成,分别描述智能合约实现和合约级属性。我们已经开发了一个工具,可以编译DeCon程序到可执行的Solidity程序,与仪器运行时的属性监控。我们的案例研究表明,DeCon可以实现现实的智能合约,如ERC20和ERC721数字代币。我们的评估结果显示,与开源参考实现相比,DeCon的边际开销为14%,执行时的平均气体开销为14%,运行时验证的平均气体开销为16%。
2022-07-27 cs.SE
Defining Smart Contract Defects on Ethereum
智能合约是在区块链上运行的程序。它们是不可改变的,因此一旦部署就不能修补错误。因此,在部署之前确保它们没有错误并且设计良好至关重要。合约缺陷是智能合约中的错误、缺陷或故障,导致其产生不正确或意外的结果,或以非预期的方式表现。检测合同缺陷是避免潜在错误并改进现有代码设计的一种方法。因为智能合约包含许多独特的功能,例如气体系统。去中心化,重要的是要找到智能合约指定的缺陷。为了填补这一空白,我们从以太坊StackExchange收集了与智能合约相关的帖子,以及现实世界的智能合约。我们手动分析了这些帖子和合同;使用它们来定义20种合同缺陷。我们将它们分为潜在的安全性、可用性、性能、可维护性和可重用性问题。为了验证从业者是否认为这些合同是有害的,我们创建了一个在线调查,并收到了来自32个不同国家的138份回复。反馈显示,这些合约缺陷是有害的,消除它们将提高智能合约的质量和健壮性。我们在587个真实世界的智能合约中手动识别了我们定义的合约缺陷,并公开发布了我们的数据集。最后,总结了合同瑕疵可能造成的五种影响。这些帮助开发人员更好地了解缺陷的症状和删除优先级。
2020-04-17 cs.SE
DEFECTCHECKER: Automated Smart Contract Defect Detection by Analyzing EVM Bytecode
智能合约是在区块链上运行的图灵完备程序。它们是不可变的,即使检测到bug也不能修改。因此,在将智能合约部署到区块链之前,确保智能合约没有错误并且设计良好非常重要。合约缺陷是智能合约中的错误、缺陷或故障,导致其产生不正确或意外的结果,或以非预期的方式表现。检测和删除合约缺陷可以避免潜在的错误,使程序更健壮。我们之前的工作为智能合约定义了20个合约缺陷,并将其分为五个影响级别。根据我们的分类,严重性级别在1-3之间的合同缺陷可能导致不必要的行为,例如,一份由攻击者控制的合同在本文中,我们提出了一种基于符号执行的方法和工具,用于检测八种可能导致以太坊区块链平台上智能合约出现不必要行为的合约缺陷。DefectMind可以从智能合约字节码中检测合约缺陷。我们使用开源数据集将Defectoral与以前的主要作品进行比较,包括Oyente,Mythril和Securify。我们的实验结果表明,在速度和准确性方面,Defectomy比这些工具表现得更好。我们还在以太坊平台上的165,621个不同的智能合约中应用了Defectrance。我们发现,这些智能合约中有25,815个包含至少一个属于影响级别1-3的合约缺陷,包括一些现实世界的攻击。
2021-03-23 cs.SE
iContractBot: A Chatbot for Smart Contracts' Specification and Code Generation
最近,由于智能合约的发展,区块链技术的采用已经扩展到许多应用领域。然而,由于缺乏该领域的工具和专业知识,开发智能合约并非易事,而且具有挑战性。解决这个问题的一个有希望的解决方案是使用模型驱动工程(MDE),但是,使用模型仍然涉及学习曲线,可能不适合非技术用户。为了应对这一挑战,可以使用聊天机器人或会话界面来评估非技术用户,以渐进和交互的方式指定智能合约。在本文中,我们提出了iContractBot,一个用于建模和开发智能合约的聊天机器人。此外,我们研究了如何将iContractBot与iContractML(一种用于开发智能合约的特定领域建模语言)集成,并从聊天机器人实例化意图模型。iContractBot框架提供了一种基于用户意图的领域特定语言(DSL),并执行模型到文本的转换以生成智能合约代码。一个智能合约用例展示了如何利用iContractBot创建模型,并基于简单的对话生成智能合约的部署工件。
2021-03-16 cs.SE
Vulseye: Detect Smart Contract Vulnerabilities via Stateful Directed Graybox Fuzzing
针对现有智能合约模糊测试工具状态反馈不足、测试资源浪费的问题,提出以漏洞为导向的有向状态灰盒模糊测试工具Vulseye,通过代码与状态双目标引导及新型适应度度量提升测试的有效性与效率。
2024-08-19 cs.SE