arXiv (Cornell University) · 2019 · 24 citations · 18 references
ComputingComputer EngineeringComputer ScienceContractsProgramming LanguagesSoftware EngineeringData-flow AnalysisSmart ContractsSoftware Vulnerability DiscoveryBlockchain SecurityInteger OverflowInteger Overflow VulnerabilitiesProgram InstrumentationProtocol Flaw DetectionRegular Expression MatchingRegular ExpressionsSmart Contract Programming Languages
As a blockchain platform that has developed vigorously in recent years, Ethereum is different from Bitcoin in that it introduces smart contracts into blockchain.Solidity is one of the most mature and widely used smart contract programming language,which is used to write smart contracts and deploy them on blockchain. However, once the data in the blockchain is written, it cannot be modified. Ethereum smart contract is stored in the block chain, which makes the smart contract can no longer repair the code problems such as re-entrancy vulnerabilities or integer overflow problems. Currently, there still lacks of an efficient and effective approach for detecting these problems in Solidity. In this paper, we first classify all the possible problems in Solidity, then propose a smart contract problem detection approach for Solidity, namely SolidityCheck. The approach uses regular expressions to define the characteristics of problematic statements and uses regular matching and program instrumentation to prevent or detect problems. Finally, a large number of experiments is performed to show that SolidityCheck is superior to existing approaches.
18
Ethereum: A Secure Decentralised Generalised Transaction Ledger
Gavin Wood · 2013 · 5.3K citations
Making Smart Contracts Smarter
Loi Luu, Duc-Hiep Chu, Hrishi Olickel et al. · 2016 · 2.2K citations
Petar Tsankov, Andrei Dan, Dana Drachsler-Cohen et al. · 2018 · 1K citations
ContractFuzzer: fuzzing smart contracts for vulnerability detection
Bo Jiang, Ye Liu, W. K. Chan · 2018 · 798 citations · Full text