2018 · 652 citations · 7 references
ComputingComputer ScienceCybersecurityComputer SecuritySoftware EngineeringVulnerability AnalysisExploit DevelopmentSoftware Security EngineeringSoftware Vulnerability DiscoveryAutomated Vulnerability DetectionExecution EnvironmentSmart Contract SecurityVulnerability DetectionVulnerability Discovery Automation
Ethereum is a major blockchain-based platform for smart contracts - Turing complete programs that are executed in a decentralized network and usually manipulate digital units of value. Solidity is the most mature high-level smart contract language. Ethereum is a hostile execution environment, where anonymous attackers exploit bugs for immediate financial gain. Developers have a very limited ability to patch deployed contracts. Hackers steal up to tens of millions of dollars from flawed contracts, a well-known example being "The DAO", broken in June 2016. Advice on secure Ethereum programming practices is spread out across blogs, papers, and tutorials. Many sources are outdated due to a rapid pace of development in this field. Automated vulnerability detection tools, which help detect potentially problematic language constructs, are still underdeveloped in this area.
7
Ethereum: A Secure Decentralised Generalised Transaction Ledger
Gavin Wood · 2013 · 5.3K citations
Formal Verification of Smart Contracts
Karthikeyan Bhargavan, Antoine Delignat-Lavaud, Cédric Fournet et al. · 2016 · 620 citations · Full text
Under-optimized smart contracts devour your money
Ting Chen, Xiaoqi Li, Xiapu Luo et al. · 2017 · 384 citations
Omer Tripp, Marco Pistoia, Stephen J. Fink et al. · 2009 · 307 citations
Software Vulnerability Discovery Techniques: A Survey
Bingchang Liu, Liang Shi, Zhuhua Cai et al. · 2012 · 129 citations