Blockchain verification and validation: Techniques, challenges, and research directions

Computer Science Review - Tập 45 - Trang 100492 - 2022
Dusica Marijan1, Chhagan Lal2
1Simula Research Laboratory, Oslo, Norway
2Delft University of Technology, Netherlands

Tài liệu tham khảo

Di Francesco Maesa, 2020, Blockchain 3.0 applications survey, J. Parallel Distrib. Comput., 138, 99, 10.1016/j.jpdc.2019.12.019 Xie, 2019, A survey of blockchain technology applied to smart cities: Research issues and challenges, IEEE Commun. Surv. Tutor., 21, 2794, 10.1109/COMST.2019.2899617 Nguyen, 2020, Integration of blockchain and cloud of things: Architecture, applications and challenges, IEEE Commun. Surv. Tutor., 1 Liu, 2020, Blockchain and machine learning for communications and networking systems, IEEE Commun. Surv. Tutor., 22, 1392, 10.1109/COMST.2020.2975911 Koul, 2018, Blockchain oriented software testing - challenges and approaches, 1 Praitheeshan, 2019 Porru, 2017, Blockchain-oriented software eng.: Challenges and new directions, 169 Dannen, 2017 Donovan, 2015 Zou, 2019, Smart contract development: Challenges and opportunities, IEEE Trans. Softw. Eng., 1 Atzei, 2017, A survey of attacks on ethereum smart contracts SoK, 164 Singh, 2020, Blockchain smart contracts formalization: Approaches and challenges to address vulnerabilities, Comput. Secur., 88, 10.1016/j.cose.2019.101654 Liu, 2019, A survey on security verification of blockchain smart contracts, IEEE Access, 7, 77894, 10.1109/ACCESS.2019.2921624 Ferdous, 2020 Destefanis, 2018, Smart contracts vulnerabilities: a call for blockchain software engineering?, 19 di Angelo, 2019, A survey of tools for analyzing ethereum smart contracts, 69 Fan, 2020, Performance evaluation of blockchain systems: A systematic survey, IEEE Access, 8, 126927, 10.1109/ACCESS.2020.3006078 Homoliak, 2020, The security reference architecture for blockchains: Towards a standardized model for studying vulnerabilities, threats, and defenses, IEEE Commun. Surv. Tutor. Leng, 2020, Blockchain security: A survey of techniques and research directions, IEEE Trans. Serv. Comput., 1 Dabbagh, 2021, A survey of empirical performance evaluation of permissioned blockchain platforms: Challenges and opportunities, Comput. Secur., 100, 10.1016/j.cose.2020.102078 Huang, 2021, A survey of state-of-the-art on blockchains: Theories, modelings, and tools, ACM Comput. Surv., 54, 10.1145/3441692 Beillahi, 2020, Behavioral simulation for smart contracts, 470 Jiang, 2018, ContractFuzzer: Fuzzing smart contracts for vulnerability detection, 259 Torres, 2020 Yu, 2020, Smart contract repair, ACM Trans. Softw. Eng. Methodol., 29, 10.1145/3402450 Mossberg, 2019, Manticore: A user-friendly symbolic execution framework for binaries and smart contracts, 1186 Luu, 2016, Making smart contracts smarter, 254 Kuzlu, 2019, Performance analysis of a hyperledger fabric blockchain framework: Throughput, latency and scalability, 536 Schäffer, 2019, 103 Merkle, 1987, A digital signature based on a conventional encryption function, 369 Xiao, 2020, A survey of distributed consensus protocols for blockchain networks, IEEE Commun. Surv. Tutor., 22, 1432, 10.1109/COMST.2020.2969706 Amiri, 2021, Permissioned blockchains: Properties, techniques and applications, 2813 Dib, 2018, Consortium blockchains: Overview, applications and challenges, Int. J. Adv. Telecommun. Belotti, 2019, A vademecum on blockchain technologies: When, which, and how, Commun. Surv. Tutor., 21, 3796, 10.1109/COMST.2019.2928178 Buterin, 2014, A next-generation smart contract and decentralized application platform, White Paper, 3, 1 Macrinici, 2018, Smart contract applications within blockchain technology: A systematic mapping study, Telemat. Inform., 35, 2337, 10.1016/j.tele.2018.10.004 Pincheira, 2020, A blockchain-based approach to enable remote sensing trusted data, 652 Clack, 2016 Zhuang, 2020, Blockchain for cyber security in smart grid: A comprehensive survey, IEEE Trans. Ind. Inf., 1 Chopade, 2019, Digital forensics: Maintaining chain of custody using blockchain, 744 Das, 2019, Transaction finality through ledger checkpoints, 183 Hirai, 2017, Defining the ethereum virtual machine for interactive theorem provers, 520 Seligman, 2015, Chapter 2 - Basic formal verification algorithms, 23 Yoo, 2019, Formal modeling and verification of a federated Byzantine agreement algorithm for blockchain platforms, 11 Maung Maung Thin, 2018, Formal analysis of a proof-of-stake blockchain, 197 Beizer, 2003 Pezzè, 2008 Marijan, 2020, Software testing for machine learning, 13576 Jiang, 2015, A survey on load testing of large-scale software systems, IEEE Trans. Softw. Eng., 41, 1091, 10.1109/TSE.2015.2445340 Jia, 2011, An analysis and survey of the development of mutation testing, IEEE Trans. Softw. Eng., 37, 649, 10.1109/TSE.2010.62 Omar, 1991, A survey of software functional testing methods, SIGSOFT Softw. Eng. Notes, 16, 75, 10.1145/122538.122551 Su, 2017, A survey on data-flow testing, ACM Comput. Surv., 50, 10.1145/3020266 Torres, 2018, Osiris: Hunting for integer bugs in ethereum smart contracts, 664 Mueller, 2018, Smashing ethereum smart contracts for fun and real profit Kalra, 2018, ZEUS: Analyzing safety of smart contracts Tsankov, 2018, Securify: Practical security analysis of smart contracts, 67 Tikhomirov, 2018, SmartCheck: Static analysis of ethereum smart contracts, 9 Chen, 2017, Under-optimized smart contracts devour your money, 442 Albert, 2019, Running on fumes-preventing out-of-gas vulnerabilities in ethereum smart contracts using static resource analysis, 63 Brent, 2018 Grishchenko, 2018 Feist, 2019, Slither: A static analysis framework for smart contracts, 8 Wang, 2019, Detecting nondeterministic payment bugs in ethereum smart contracts, Proc. ACM Program. Lang., 10.1145/3360615 Brent, 2020, Ethainter: A smart contract security analyzer for composite vulnerabilities, 454 A. Ghaleb, K. Pattabiraman, How effective are smart contract analysis tools? Evaluating smart contract static analysis tools using bug injection, in: Proc. of the 29th Int. Symposium on Software Testing and Analysis, 2020, pp. 415–427. Daian, 2022 2022 Liu, 2019, Enabling clone detection for ethereum via smart contract birthmarks, 105 W. Yan, J. Gao, Z. Wu, Y. Li, Z. Guan, Q. Li, Z. Chen, EShield: Protect smart contracts against reverse eng. in: Proc. of the 29th Int. Symposium on Software Testing and Analysis, 2020, pp. 553–556. Momeni, 2019, Machine learning model for smart contracts security analysis, 1 Hajdu, 2020, Solc-verify: A modular verifier for solidity smart contracts, 161 Zhang, 2020, SMARTSHIELD: Automatic smart contract protection made easy, 23 Zhang, 2019, MPro: Combining static and symbolic analysis for scalable testing of smart contract, 456 Permenev, 2020, VerX: Safety verification of smart contracts, 1661 I. Nikolić, A. Kolluri, I. Sergey, P. Saxena, A. Hobor, Finding the greedy, prodigal, and suicidal contracts at scale, in: Proc. of the 34th Annual Computer Security Application Conf., 2018, pp. 653–663. Zhang, 2020, EthPloit: From fuzzing to efficient exploit generation against smart contracts, 116 Mei, 2019, A fuzz testing service for assuring smart contracts, 544 Chan, 2018, Fuse: An architecture for smart contract fuzz testing service, 707 Akca, 2019, SolAnalyser: A framework for analysing and testing smart contracts, 482 Viglianisi, 2020, A federated society of bots for smart contract testing, J. Syst. Softw., 168, 10.1016/j.jss.2020.110647 Wang, 2019, Basis path coverage criteria for smart contract application testing, 34 Chapman, 2019, Deviant: A mutation testing tool for solidity smart contracts, 319 Li, 2019, MuSC: A tool for mutation testing of ethereum smart contract, 1198 Li, 2020, Securing smart contract with runtime validation, 438 G. Grieco, W. Song, A. Cygan, J. Feist, A. Groce, Echidna: Effective, usable, and fast fuzzing for smart contracts, in: Proc. of the 29th Int. Symposium on Software Testing and Analysis, 2020, pp. 557–560. Liao, 2019, SoliAudit: Smart contract vulnerability assessment based on machine learning and fuzz testing, 458 Liu, 2018, ReGuard: Finding reentrancy bugs in smart contracts, 65 Medeiros, 2019, SolUnit: A framework for reducing execution time of smart contract unit tests, 264 Kolluri, 2019, Exploiting the laws of order in smart contracts, 363 Liu, 2020, ModCon: A model-based testing platform for smart contracts, 1601 Pacheco, 2007, Feedback-directed random test generation, 75 Lemieux, 2018, Perffuzz: Automatically generating pathological inputs, 254 Utting, 2012, A taxonomy of model-based testing approaches, Softw. Test. Verif. Reliab., 22, 297, 10.1002/stvr.456 T.T.A. Dinh, J. Wang, G. Chen, R. Liu, B.C. Ooi, K.-L. Tan, BLOCKBENCH: A framework for analyzing private blockchains, in: Proc. of the 2017 ACM Int. Conf. on Management of Data, 2017, pp. 1085–1100. B.F. Cooper, A. Silberstein, E. Tam, R. Ramakrishnan, R. Sears, Benchmarking cloud serving systems with YCSB, in: Proceedings of the 1st ACM Symposium on Cloud Computing, 2010, pp. 143–154. Cahill, 2009, Serializable isolation for snapshot databases, ACM Trans. Database Syst., 34, 10.1145/1620585.1620587 Thakkar, 2018, Performance benchmarking and optimizing hyperledger fabric blockchain platform, 264 Dong, 2019, DAGBENCH: A performance evaluation framework for DAG distributed ledgers, 264 Saingre, 2020, BCTMark: a framework for benchmarking blockchain technologies, 1 Pan, 2020, BBB: A lightweight approach to evaluate private blockchains in clouds, 1 Heilman, 2015, Eclipse attacks on bitcoin’s peer-to-peer network, 129 Blockchain Performance Benchmarking for Hyperledger Besu, Hyperledger Fabric, Ethereum and FISCO BCOS Networks, White Paper, 2018, [Online]. Available:. Duan, 2019, BBB: Make benchmarking blockchains configurable and extensible, 61 Oliveira, 2019, Towards a performance evaluation of private blockchain frameworks using a realistic workload, 180 Zheng, 2018, A detailed and real-time performance monitoring framework for blockchain systems, 134 Rouhani, 2017, Performance analysis of ethereum transactions in private blockchain, 70 Fan, 2019, Towards a scalable DAG-based distributed ledger for smart communities, 177 Alharby, 2019, BlockSim: A simulation framework for blockchain systems, SIGMETRICS Perform. Eval. Rev., 46, 135, 10.1145/3308897.3308956 Zander, 2019, DAGsim: Simulation of DAG-based distributed ledger protocols, SIGMETRICS Perform. Eval. Rev., 46, 118, 10.1145/3308897.3308951 Bez, 2019, The scalability challenge of ethereum: An initial quantitative analysis, 167 Shi, 2019, Operating permissioned blockchain in clouds: A performance study of hyperledger sawtooth, 50 Nguyen, 2019, Impact of network delays on hyperledger fabric, 222 Pandey, 2019, BlockSIM: A practical simulation tool for optimal network design, stability and planning., 133 Faria, 2019, BlockSim: Blockchain simulator, 439 Fattahi, 2020, SIMBA: An efficient simulator for blockchain applications, 51 Bottone, 2018, Multi-agent based simulations of block-free distributed ledgers, 585 Park, 2019, Performance analysis of DAG-based cryptocurrency, 1 Montresor, 2009, PeerSim: A scalable P2P simulator, 99 Butnaru, 2007, P2PTester: a tool for measuring P2P platform performance, 1501 Yasaweerasinghelage, 2017, Predicting latency of blockchain-based systems using architectural modelling and simulation, 253 Rathfelder, 2011, Palladio workbench: A quality-prediction tool for component-based architectures, 347 Ricci, 2019, Learning blockchain delays: A queueing theory approach, SIGMETRICS Perform. Eval. Rev., 46, 122, 10.1145/3308897.3308952 Zhao, 2019, Analysis of the average confirmation time of transactions in a blockchain system, 379 Ferraro, 2018, Distributed ledger technology for smart cities, the sharing economy, and social compliance, IEEE Access, 6, 62728, 10.1109/ACCESS.2018.2876766 Huang, 2020, Performance analysis of the raft consensus algorithm for private blockchains, IEEE Trans. Syst. Man Cybern.: Syst., 50, 172, 10.1109/TSMC.2019.2895471 Cao, 2019, Impact of network load on direct acyclic graph based blockchain for internet of things, 215 Yuan, 2020, Performance modeling and analysis of a Hyperledger-based system using GSPN, Comput. Commun., 153, 117, 10.1016/j.comcom.2020.01.073 Conti, 2018, A survey on security and privacy issues of bitcoin, IEEE Commun. Surv. Tutor., 20, 3416, 10.1109/COMST.2018.2842460 A.M., 2020, An introduction to the use of zk-SNARKs in blockchains, 233 Salimitari, 2018 Bano, 2019, SoK: Consensus in the age of blockchains, 183 Artzi, 2011, A framework for automated testing of javascript web applications, 571 Thung, 2012, To what extent could we detect field defects? an empirical study of false negatives in static bug finding tools, 50 2022 Dang, 2019, Towards scaling blockchain systems via sharding, 123 Pritzker, 2015 Cavanagh, 2015 2016, Regulation (EU) 2016/679 of the European Parliament and of the Council of 27 April 2016 on the protection of natural persons with regard to the processing of personal data and on the free movement of such data, and repealing Directive 95/46/EC, Off. J. Eur. Union, L 119, 1 Glomann, 2020, Improving the blockchain user experience - an approach to address blockchain mass adoption issues from a human-centred perspective, 608 Chen, 2020, A survey on ethereum systems security: Vulnerabilities, attacks, and defenses, ACM Comput. Surv., 53, 10.1145/3391195