Abstract
In the blockchain environment, smart contracts are computer programs that run on the blockchain platform. However, the development of smart contracts is a major challenge for developers, since blockchain platforms are still evolving. Owing to the inherited nature of blockchain, developing smart contracts without introducing vulnerabilities is not an easy task, as the deployed code is immutable and can be invoked by anyone with access to the network. Smart contracts have proved to be error-prone in practice due to the complexity of programming. Additionally, non-functional requirements, such as service cost, security, performance, authorization, and authentication, should be well implemented and defined in computer systems. In this paper, we aim to present a systematic literature review to outline in detail different approaches of smart contracts generation. Furthermore, we present a comparison of the existing approaches based on a classification according to automation paradigm and a set of defined criteria. Finally, we discuss the gaps in the literature, as well as identify a set of potential challenges which can significantly strengthen the existing work. The study shows that the examined works focused only on a limited number of specific features, such as authorization, asset control, and security. Additionally, formal verification of smart contracts and data privacy are poorly addressed.
Similar content being viewed by others
References
Haber S, Stornetta WS (1990) How to time-stamp a digital document. In: Conference on the Theory and Application of Cryptography. Springer, pp 437–455
Nakamoto S (2008) Bitcoin: a peer-to-peer electronic cash system. Decentralized business review
Antonopoulos AM (2014) Mastering bitcoin: unlocking digital cryptocurrencies. O’Reilly Media Inc, California
Wüst K, Gervais A (2018) Do you need a blockchain? In: 2018 Crypto Valley Conference on Blockchain Technology (CVCBT), pp 45–54. IEEE
Wood G et al (2014) Ethereum: a secure decentralised generalised transaction ledger. Ethereum Project Yellow Paper 151(2014):1–32
De Sousa VA, Corentin B (2019) Towards an integrated methodology for the development of blockchain-based solutions supporting cross-organizational processes. In: 2019 13th International Conference on Research Challenges in Information Science (RCIS), pp 1–6. IEEE
Gartner I (2018) Gartner survey reveals the scarcity of current blockchain deployments. Gartner Press Release. https://www.gartner.com/en/newsroom/press-releases/2018-05-03-gartner-survey-reveals-the-scarcity-of-current-blockchain-developments
News B DeFi’s Smart Contract Risks: Cream Finance’s Input Error Led to CREAM Token Plunging 25%. https://blockchain.news/news/defi-smart-contract-risks-cream-finance-input-error-token-plunge
Luu L, Chu D-H, Olickel H, Saxena P, Hobor A (2016) Making smart contracts smarter. In: Proceedings of the 2016 ACM SIGSAC Conference on Computer and Communications Security. CCS ’16, pp 254–269. Association for Computing Machinery, New York, NY, USA (2016). https://doi.org/10.1145/2976749.2978309
López-Pintado O, García-Bañuelos L, Dumas M, Weber I, Ponomarev A (2019) Caterpillar: a business process execution engine on the Ethereum blockchain. Softw Pract Exp 49(7):1162–1193
Szabo N (1997) Formalizing and securing relationships on public networks. First Monday. https://doi.org/10.5210/fm.v2i9.548
Clack CD (2018) Smart contract templates: legal semantics and code validation. J Digital Bank 2(4):338–352
Stark J (2016) Making sense of blockchain smart contracts. https://www.coindesk.com/markets/2016/06/04/making-sense-of-blockchain-smart-contracts/
Clack CD, Bakshi VA, Braine L (2016) Smart contract templates: foundations, design landscape and research directions. CoRR 1608.00771
Macrinici D, Cartofeanu C, Gao S (2018) Smart contract applications within blockchain technology: a systematic mapping study. Telematics Inform 35(8):2337–2354
Hovsepyan A, Baelen SV, Vanhooff B, Joosen W, Berbers Y (2006) Key research challenges for successfully applying mdd within real-time embedded software development. In: International Workshop on Embedded Computer Systems, pp 49–58. Springer
Ait Hsain Y, Laaz N, Mbarki S (2021) Ethereum’s smart contracts construction and development using model driven engineering technologies: a review. Procedia Computer Science 184, 785–790. https://doi.org/10.1016/j.procs.2021.03.097. The 12th International Conference on Ambient Systems, Networks and Technologies (ANT) / The 4th International Conference on Emerging Data and Industry 4.0 (EDI40) / Affiliated Workshops
Kushwaha SS, Joshi S, Singh D, Kaur M, Lee H-N (2022) Ethereum smart contract analysis tools: a systematic review. IEEE Access
Hu B, Zhang Z, Liu J, Liu Y, Yin J, Lu R, Lin X (2021) A comprehensive survey on smart contract construction and execution: paradigms, tools, and systems. Patterns 2(2):100179
Sánchez-Gómez N, Torres-Valderrama J, García-García JA, Gutiérrez JJ, Escalona M (2020) Model-based software design and testing in blockchain smart contracts: a systematic literature review. IEEE Access 8:164556–164569
Imeri A, Agoulmine N, Khadraoui, D (2020) Smart contract modeling and verification techniques: A survey. In: 8th International Workshop on ADVANCEs in ICT Infrastructures and Services (ADVANCE 2020), pp 1–8 (2020)
Dixit A, Deval V, Dwivedi V, Norta A, Draheim D (2022) Towards user-centered and legally relevant smart-contract development: a systematic literature review. J Ind Inf Integr 26:100314
Kitchenham B (2007) Guidelines for performing systematic literature reviews in software engineering. EBSE Technical Report EBSE-2007-01
Kitchenham BA, Budgen D, Brereton P (2015). Evidence-based software engineering and systematic reviews. https://doi.org/10.1201/b19467
Wohlin C (2014) Guidelines for snowballing in systematic literature studies and a replication in software engineering. In: Proceedings of the 18th International Conference on Evaluation and Assessment in Software Engineering, pp 1–10
Schmucker CM, Blümle A, Schell LK, Schwarzer G, Oeller P, Cabrera L, von Elm E, Briel M, Meerpohl JJ, OPEN consortium (2017) Systematic review finds that study data not published in full text articles have unclear impact on meta-analyses results in medical research. PloS ONE 12(4):0176210
López-Pintado O, García-Bañuelos L, Dumas M, Weber I (2017) Caterpillar: a blockchain-based business process management system. In: BPM (Demos)
Tran AB, Lu Q, Weber I (2018) Lorikeet: a model-driven engineering tool for blockchain-based business process execution and asset management. In: BPM (dissertation/demos/industry), pp 56–60
Garamvölgyi P, Kocsis I, Gehl B, Klenik A (2018) Towards model-driven engineering of smart contracts for cyber-physical systems. In: 2018 48th Annual IEEE/IFIP International Conference on Dependable Systems and Networks Workshops (DSN-W), pp 134–139. IEEE
Selected Papers
Falazi G, Hahn M, Breitenbücher U, Leymann F (2019) Modeling and execution of blockchain-aware business processes. SICS Softw-Intensive Cyber-Phys Syst 34(2):105–116
Syahputra H, Weigand H (2019) The development of smart contracts for heterogeneous blockchains. In: Enterprise Interoperability VIII, pp 229–238. Springer, Cham
Hu K, Zhu J, Ding Y, Bai X, Huang J (2020) Smart contract engineering. Electronics 9(12):2042
De Sousa VA, Burnay C, Snoeck M (2020) B-merode: a model-driven engineering and artifact-centric approach to generate blockchain-based information systems. In: International Conference on Advanced Information Systems Engineering, pp 117–133. Springer
Zupan N, Kasinathan P, Cuellar J, Sauer M (2020) Secure smart contract generation based on petri nets. In: Blockchain Technology for Industry 4.0, pp 73–98. Springer, Singapore
Corradini F, Marcelletti A, Morichetta A, Polini A, Re B, Scala E, Tiezzi F (2021) Model-driven engineering for multi-party business processes on multiple blockchains. Blockchain Res Appl 2(3):100018
Ye X, König M (2021) From the graphical representation to the smart contract language: a use case in the construction industry. In: Proceedings of the 38th International Symposium on Automation and Robotics in Construction (ISARC)
Samreen NF (2021) Secure mde for Ethereum-based decentralized applications (dapps) development. In: 2021 ACM/IEEE International Conference on Model Driven Engineering Languages and Systems Companion (MODELS-C), pp 678–683. IEEE
Frantz CK, Nowostawski M (2016) From institutions to code: towards automated generation of smart contracts. In: 2016 IEEE 1st International Workshops on Foundations and Applications of Self* Systems (FAS* W), pp 210–215. IEEE
Mavridou A, Laszka A (2018) Designing secure Ethereum smart contracts: a finite state machine based approach. In: International Conference on Financial Cryptography and Data Security, pp 523–540. Springer
Skotnica M, Pergl R (2019) Das contract: a visual domain specific language for modeling blockchain smart contracts. In: EEWC
Mavridou A, Laszka A, Stachtiari E, Dubey A (2019) Verisolid: correct-by-design smart contracts for Ethereum. In: International Conference on Financial Cryptography and Data Security, pp 446–465. Springer
Skotnica M, Klicpera JA, Pergl R (2020) Towards model-driven smart contract systems: code generation and improving expressivity of smart contract modeling
Wöhrer M, Zdun U (2020) Domain specific language for smart contract development. 2020 IEEE International Conference on Blockchain and Cryptocurrency (ICBC), pp 1–9
Dwivedi V, Norta A Auto-generation of smart contracts from a domain-specific xml-based language
Hamdaqa M, Met LAP, Qasse IA (2021) icontractml 2.0: A domain-specific language for modeling and deploying smart contracts onto multiple blockchain platforms. Inf Softw Technol
Skotnica M, Aparício M, Pergl R, Guerreiro S (2021) Process digitalization using blockchain: Eu parliament elections case study. In: MODELSWARD, pp 65–75
Bistarelli S, Faloci F, Mori P (2021) *. chain: automatic coding of smart contracts and user interfaces for supply chains. In: 2021 Third International Conference on Blockchain Computing and Applications (BCCA), pp 164–171. IEEE
Weingaertner T, Rao R, Ettlin J, Suter P, Dublanc P (2018) Smart contracts using blockly: Representing a purchase agreement using a graphical programming language. In: 2018 Crypto Valley Conference on Blockchain Technology (CVCBT), pp 55–64. https://doi.org/10.1109/CVCBT.2018.00012
Guida L, Daniel F (2019) Supporting reuse of smart contracts through service orientation and assisted development. In: 2019 IEEE International Conference on Decentralized Applications and Infrastructures (DAPPCON), pp 59–68. IEEE
Mao D, Wang F, Wang Y, Hao Z (2019) Visual and user-defined smart contract designing system based on automatic coding. IEEE Access 7:73131–73143
Merlec MM, Lee YK, In HP (2021) Smartbuilder: a block-based visual programming framework for smart contract development. In: 2021 IEEE International Conference on Blockchain (Blockchain). IEEE, pp 90–94
Lakshminarayana K, Sathiyamurthy K (2022) Towards auto contract generation and ensemble-based smart contract vulnerability detection. Int J Electric Comput Eng Syst 13(9):747–757
Jurgelaitis M, Ceponiene L, Butkus K, Butkiene R, Drungilas V (2023) Mda-based approach for blockchain smart contract development. Appl Sci. https://doi.org/10.3390/app13010487
Tan S, S Bhowmick S, Chua HE, Xiao X (2020) Latte: visual construction of smart contracts. In: Proceedings of the 2020 ACM SIGMOD International Conference on Management of Data, pp 2713–2716
Crawford SE, Ostrom E (1995) A grammar of institutions. Am Political Sci Rev 89(3):582–600
Mühlberger R, Bachhofner S, Ferrer EC, Di Ciccio C, Weber I, Wöhrer M, Zdun U (2020) Foundational oracle patterns: connecting blockchain to the off-chain world. In: International Conference on Business Process Management. Springer, pp 35–51
Garfatta I, Klai K, Gaaloul W, Graiet M (2021) A survey on formal verification for Solidity smart contracts. In: 2021 Australasian Computer Science Week Multiconference. ACSW ’21. Association for Computing Machinery, New York, NY, USA. https://doi.org/10.1145/3437378.3437879
Author information
Authors and Affiliations
Contributions
RM and SC wrote the main manuscript text. SK and AHK reviewed and edited the manuscript. All authors read and approved the final manuscript.
Corresponding author
Ethics declarations
Ethical approval
Not applicable.
Conflict of interest
The authors declare that they have no competing interests.
Funding
Not applicable.
Availability of data and materials
Not applicable.
Additional information
Publisher's Note
Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.
Rights and permissions
Springer Nature or its licensor (e.g. a society or other partner) holds exclusive rights to this article under a publishing agreement with the author(s) or other rightsholder(s); author self-archiving of the accepted manuscript version of this article is solely governed by the terms of such publishing agreement and applicable law.
About this article
Cite this article
Mars, R., Cheikhrouhou, S., Kallel, S. et al. A survey on automation approaches of smart contract generation. J Supercomput 79, 16065–16097 (2023). https://doi.org/10.1007/s11227-023-05262-8
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s11227-023-05262-8