Securify: Practical Security Analysis of Smart Contracts
arXiv:1806.01143
Abstract
Permissionless blockchains allow the execution of arbitrary programs (called smart contracts), enabling mutually untrusted entities to interact without relying on trusted third parties. Despite their potential, repeated security concerns have shaken the trust in handling billions of USD by smart contracts. To address this problem, we present Securify, a security analyzer for Ethereum smart contracts that is scalable, fully automated, and able to prove contract behaviors as safe/unsafe with respect to a given property. Securify's analysis consists of two steps. First, it symbolically analyzes the contract's dependency graph to extract precise semantic information from the code. Then, it checks compliance and violation patterns that capture sufficient conditions for proving if a property holds or not. To enable extensibility, all patterns are specified in a designated domain-specific language. Securify is publicly released, it has analyzed >18K contracts submitted by its users, and is regularly used to conduct security audits by experts. We present an extensive evaluation of Securify over real-world Ethereum smart contracts and demonstrate that it can effectively prove the correctness of smart contracts and discover critical violations.
References in corpus (2)
Cited by in corpus (25)
- A Survey on Consensus Mechanisms and Mining Strategy Management in Blockchain Networks
- Blockchain for 5G and Beyond Networks: A State of the Art Survey
- Empirical Review of Automated Analysis Tools on 47,587 Ethereum Smart Contracts
- Integration of Blockchain and Cloud of Things: Architecture, Applications and Challenges
- DEFECTCHECKER: Automated Smart Contract Defect Detection by Analyzing EVM Bytecode
- Checking Smart Contracts with Structural Code Embedding
- A comprehensive survey on smart contract construction and execution: paradigms, tools, and systems
- On the Suitability of Blockchain Platforms for IoT Applications: Architectures, Security, Privacy, and Performance
- SmartEmbed: A Tool for Clone and Bug Detection in Smart Contracts through Structural Code Embedding
- Towards Safer Smart Contracts: A Sequence Learning Approach to Detecting Security Threats
- The Art of The Scam: Demystifying Honeypots in Ethereum Smart Contracts
- TxT: Real-time Transaction Encapsulation for Ethereum Smart Contracts
- Fuzz on the Beach: Fuzzing Solana Smart Contracts
- BlockScope: Detecting and Investigating Propagated Vulnerabilities in Forked Blockchain Projects
- sCompile: Critical Path Identification and Analysis for Smart Contracts
- Oracle-Supported Dynamic Exploit Generation for Smart Contracts
- Using Fault Injection to Assess Blockchain Systems in Presence of Faulty Smart Contracts
- Who is Gambling? Finding Cryptocurrency Gamblers Using Multi-modal Retrieval Methods
- Formal Modelling and Security Analysis of Bitcoin's Payment Protocol
- Lolisa: Formal syntax and semantics for a subset of the solidity programming language in Mathematical Tool Coq
- TokenHook: Secure ERC-20 smart contract
- Sapiens Chain: A Blockchain-based Cybersecurity Framework
- Architectural Design for Secure Smart Contract Development
- BLOCKEYE: Hunting For DeFi Attacks on Blockchain
- SMACS: Smart Contract Access Control Service