Vandal: A Scalable Security Analysis Framework for Smart Contracts
arXiv:1809.03981
Abstract
The rise of modern blockchains has facilitated the emergence of smart contracts: autonomous programs that live and run on the blockchain. Smart contracts have seen a rapid climb to prominence, with applications predicted in law, business, commerce, and governance. Smart contracts are commonly written in a high-level language such as Ethereum's Solidity, and translated to compact low-level bytecode for deployment on the blockchain. Once deployed, the bytecode is autonomously executed, usually by a %Turing-complete virtual machine. As with all programs, smart contracts can be highly vulnerable to malicious attacks due to deficient programming methodologies, languages, and toolchains, including buggy compilers. At the same time, smart contracts are also high-value targets, often commanding large amounts of cryptocurrency. Hence, developers and auditors need security frameworks capable of analysing low-level bytecode to detect potential security vulnerabilities. In this paper, we present Vandal: a security analysis framework for Ethereum smart contracts. Vandal consists of an analysis pipeline that converts low-level Ethereum Virtual Machine (EVM) bytecode to semantic logic relations. Users of the framework can express security analyses in a declarative fashion: a security analysis is expressed in a logic specification written in the \souffle language. We conduct a large-scale empirical study for a set of common smart contract security vulnerabilities, and show the effectiveness and efficiency of Vandal. Vandal is both fast and robust, successfully analysing over 95\% of all 141k unique contracts with an average runtime of 4.15 seconds; outperforming the current state of the art tools---Oyente, EthIR, Mythril, and Rattle---under equivalent conditions.
28 pages, 11 figures
References in corpus (1)
Cited by in corpus (28)
- An Overview on Smart Contracts: Challenges, Advances and Platforms
- Empirical Review of Automated Analysis Tools on 47,587 Ethereum Smart Contracts
- A comprehensive survey on smart contract construction and execution: paradigms, tools, and systems
- A Survey on Ethereum Systems Security: Vulnerabilities, Attacks and Defenses
- On the Suitability of Blockchain Platforms for IoT Applications: Architectures, Security, Privacy, and Performance
- Security Defense For Smart Contracts: A Comprehensive Survey
- Smart Contract Vulnerabilities: Vulnerable Does Not Imply Exploited
- The Art of The Scam: Demystifying Honeypots in Ethereum Smart Contracts
- Security Analysis Methods on Ethereum Smart Contract Vulnerabilities: A Survey
- Attacking the DeFi Ecosystem with Flash Loans for Fun and Profit
- ESCORT: Ethereum Smart COntRacTs Vulnerability Detection using Deep Neural Network and Transfer Learning
- Maintaining Smart Contracts on Ethereum: Issues, Techniques, and Future Challenges
- A Survey of Smart Contract Formal Specification and Verification
- ÐArcher: Detecting On-Chain-Off-Chain Synchronization Bugs in Decentralized Applications
- A Survey of Security Vulnerabilities in Ethereum Smart Contracts
- Bug Searching in Smart Contract
- Analyzing Smart Contracts: From EVM to a sound Control-Flow Graph
- DEPOSafe: Demystifying the Fake Deposit Vulnerability in Ethereum Smart Contracts
- On the Just-In-Time Discovery of Profit-Generating Transactions in DeFi Protocols
- VeriSmart: A Highly Precise Safety Verifier for Ethereum Smart Contracts
- Basis Path Coverage Criteria for Smart Contract Application Testing
- Blockchain Testing: Challenges, Techniques, and Research Directions
- A Survey on Vulnerabilities of Ethereum Smart Contracts
- Time-Travel Investigation: Towards Building A Scalable Attack Detection Framework on Ethereum
- Targeting the Weakest Link: Social Engineering Attacks in Ethereum Smart Contracts
- STAN: Towards Describing Bytecodes of Smart Contract
- Rectifying Administrated ERC20 Tokens
- SMACS: Smart Contract Access Control Service