In recent years we have witnessed a dramatic increase in the adoption and application of smart contracts in a variety of contexts such as decentralized finance, supply chain management, and identity management. However, a critical stumbling block to the further adoption of smart contracts is their security. A particularly widespread class of security vulnerabilities that afflicts Ethereum smart contracts is the gas limit denial of service(DoS) on a contract via unbounded operations. These vulnerabilities result in a failed transaction with an out-of-gas error and are often present in contracts containing loops whose bounds are affected by end-user input. Note that such vulnerabilities differ from gas limit DoS on the network via block stuffing. Therefore, we present Gas Gauge, a tool aimed at detecting Out-of-Gas DoS vulnerabilities in Ethereum smart contracts. Gas Gauge consists of three major components: the Detection, Identification, and Correction Phases. The Detection Phase consists of an accurate static analysis approach that finds and summarizes all the loops in a smart contract. The Identification Phase uses a white-box fuzzing approach to generate a set of inputs that causes the contract to run out of gas. The Correction Phase uses static analysis and run-time verification to predict the maximum loop bounds consistent with allowable gas usage and suggest appropriate repairs to the user of the tool. Each part of the tool can be used separately for different purposes or all together to detect, identify and help repair the contracts vulnerable to Out-of-Gas DoS vulnerabilities. Gas Gauge was tested on 1,000 real-world solidity smart contracts deployed on the Ethereum Mainnet. The results were compared to seven state-of-the-art static and symbolic tools, and it was empirically demonstrated that Gas Gauge is far more effective than competing state-of-the-art tools.
翻译:近年来,我们看到,在分散金融、供应链管理和身份管理等多种情况下,智能合同的采用和应用急剧增加。然而,进一步采用智能合同的一个关键绊脚石是其安全。影响Etheyum智能合同的一个特别广泛的安全弱点是,通过无限制操作,合同中的气体限制(DoS)服务被拒。这些弱点导致一项带有气体出错的错误交易失败,并且常常出现在包含循环的合同中,这些循环的界限受到最终用户投入的影响。注意到这种弱点不同于网络上的气体限制DoS。因此,我们介绍Gas Gauge,这是旨在探测Etheenum智能合同中Gas DoS弱点的一个工具。Gauge由三个主要部分组成:检测、识别和校正阶段。探测阶段包括精确的静态分析方法,发现并总结了所有易用合同中的循环。识别阶段使用白箱的烟雾工具来产生一系列投入,从而导致合同退出真正的气体。修正阶段采用最严格的E-级合同,并使用最严格的E-级版本的用户成本分析,然后通过最精确的版本的校正检验工具,然后进行最精确的校正的校正的校验。