journal article·2022-12-30Open access

MDA-Based Approach for Blockchain Smart Contract Development

Mantas Jurgelaitis, Lina Čeponienė, Karolis Butkus, Rita Butkienė, Vaidotas Drungilas

Applied Sciences· Volume 13· Issue 1

Abstract

Blockchain smart contracts can support the decentralisation of business processes, but due to smart contracts’ specifics, their development is a complicated process. Introducing model-driven development principles in smart contract development can facilitate requirement specification, design, and implementation activities. This paper presents a model-driven development method MDAsmartCD (Model-Driven Architecture-based Smart Contract Development) to alleviate smart contract development by supporting the complete MDA life cycle, covering the definition of Computation-Independent Model, Platform-Independent Model, and two instances of Platform-Specific Models. In MDAsmartCD, model transformations (model-to-model and model-to-text) are used to produce smart contract code in the Hyperledger Fabric platform Go and the Ethereum platform Solidity programming languages. The method application was demonstrated by implementing the smart contract for the hackathon solution and executing the generated Solidity and Go smart contracts in the workflow of issuing certificates for hackathon participants. During the execution of the workflow, both deployed smart contracts behaved identically and recorded analogous results in respective blockchain data storages. This demonstrated that the MDAsmartCD method enables the generation of compilable and executable smart contract code, ready for deployment on a blockchain platform.
Source: crossref · Quality: baseline

Research context

OpenAlex topics: Blockchain Technology Applications and Security · FinTech, Crowdfunding, Digital Finance · Auction Theory and Applications

SciVX discovery tags are terminology-based. OpenAlex topics are source-provided classifications.

Affiliations

Department of Information Systems, Faculty of Informatics, Kaunas University of Technology, Studentų Str. 50, LT-51368 Kaunas, Lithuania

References (43)

Show source-provided references
1. A Survey of Blockchain From the Perspectives of Applications, Challenges, and Opportunities10.1109/ACCESS.2019.2936094 ↗
2. Yano, M., Dai, C., Masuda, K., and Kishimoto, Y. (2020). Ethereum, Smart Contracts, DApps. Blockchain and Crypto Currency, Springer.10.1007/978-981-15-3376-1 ↗
3. Smart Contract Development: Challenges and Opportunities10.1109/TSE.2019.2942301 ↗
4. A Survey on Blockchain for Information Systems Management and Security10.1016/j.ipm.2020.102397 ↗
5. Model-Based Software Design and Testing in Blockchain Smart Contracts: A Systematic Literature Review10.1109/ACCESS.2020.3021502 ↗
6. Engineering Blockchain-based Software Systems: Foundations, Survey, and Future Directions10.1145/3530813 ↗
7. Blockchain Enabled Smart Contract Based Applications: Deficiencies with the Software Development Life Cycle Models
8. An overview on smart contracts: Challenges, advances and platforms10.1016/j.future.2019.12.019 ↗
9. A systematic literature review of blockchain and smart contract development: Techniques, tools, and open challenges10.1016/j.jss.2020.110891 ↗
10. Code generation using model driven architecture: A systematic mapping study10.1016/j.cola.2019.100935 ↗
11. Levasseur, O., Iqbal, M., and Matulevičius, R. (2021, January 24–26). Survey of Model-Driven Engineering Techniques for Blockchain-Based Applications. Proceedings of the Forum at Practice of Enterprise Modeling 2021, Riga, Latvia.
12. Ethereum’s Smart Contracts Construction and Development using Model Driven Engineering Technologies: A Review10.1016/j.procs.2021.03.097 ↗
13. Object Management Group (2022, November 13). Model Driven Architecture (MDA) MDA Guide rev. 2.0. Available online: https://www.omg.org/cgi-bin/doc?ormsc/14-06-01.
14. Pastor, O., and Molina, J.C. (2007). Model-Driven Architecture in Practice, Springer.
15. Curty, S., Härer, F., and Fill, H.G. (2022, January 6–7). Blockchain Application Development Using Model-Driven Engineering and Low-Code Platforms: A Survey. Proceedings of the International Conference on Business Process Modeling, Development and Support, International Conference on Evaluation and Modeling Methods for Systems Analysis and Development, Leuven, Belgium.10.1007/978-3-031-07475-2_14 ↗
16. Skotnica, M., Klicpera, J., and Pergl, R. (October, January 28). Towards Model-Driven Smart Contract Systems—Code Generation and Improving Expressivity of Smart Contract Modeling. Proceedings of the 20th CIAO! Doctoral Consortium, and Enterprise Engineering Working Conference Forum 2020, Bolzano, Italy.
17. Hu, K., Zhu, J., Ding, Y., Bai, X., and Huang, J. (2020). Smart Contract Engineering. Electronics, 9.10.3390/electronics9122042 ↗
18. Boogaard, K. (2018). A Model-Driven Approach to Smart Contract Development. [Master Thesis, Utrecht University].
19. Popplewell, K., Thoben, K.D., Knothe, T., and Poler, R. (2019). The Development of Smart Contracts for Heterogeneous Blockchains. Enterprise Interoperability VIII. Proceedings of the I-ESA Conferences, Springer.10.1007/978-3-030-13693-2 ↗
20. Sousa, V.A., and Burnay, C. (2021, January 15–17). MDE4BBIS: A Framework to Incorporate Model-Driven Engineering in the Development of Blockchain-Based Information Systems. Proceedings of the 2021 Third International Conference on Blockchain Computing and Applications (BCCA), Tartu, Estonia.
21. Jurgelaitis, M., Drungilas, V., Čeponienė, L., Vaičiukynas, E., Butkienė, R., and Čeponis, J. (April, January 30). Smart Contract Code Generation from Platform Specific Model for Hyperledger Go. Proceedings of the 9th World Conference on Information Systems and Technologies (WorldCIST’21), Terceira Island, Azores, Portugal.
22. Solidity Code Generation from UML State Machines in Model-Driven Smart Contract Development10.1109/ACCESS.2022.3162227 ↗
23. Górski, T., and Bednarski, J. (2020, January 2–4). Transformation of the UML Deployment Model into a Distributed Ledger Network Configuration. Proceedings of the 2020 IEEE 15th International Conference of System of Systems Engineering (SoSE), Budapest, Hungary.10.1109/SoSE50414.2020.9130492 ↗
24. Applying Model-Driven Engineering to Distributed Ledger Deployment10.1109/ACCESS.2020.3005519 ↗
25. Checking Smart Contracts with Structural Code Embedding10.1109/TSE.2020.2971482 ↗
26. Antal, C., Cioara, T., Anghel, I., Anta, M., and Salomie, I. (2021). Distributed Ledger Technology Review and Decentralized Applications Development Guidelines. Futur. Int., 13.10.3390/fi13030062 ↗
27. Pierro, G.A. (2021, January 9–12). Smart-Graph: Graphical Representations for Smart Contract on the Ethereum Blockchain. Proceedings of the 2021 IEEE International Conference on Software Analysis, Evolution and Reengineering (SANER), Honolulu, HI, USA.10.1109/SANER50967.2021.00090 ↗
28. iContractML 2.0: A domain-specific language for modeling and deploying smart contracts onto multiple blockchain platforms10.1016/j.infsof.2021.106762 ↗
29. Toward an ontology-driven blockchain design for supply-chain provenance10.1002/isaf.1424 ↗
30. Rosa Righi, R., Alberti, A., and Singh, M. (2020). Secure Smart Contract Generation Based on Petri Nets. Blockchain Technology for Industry 4.0. Blockchain Technologies, Springer.10.1007/978-981-15-1137-0 ↗
31. Rocha, H., and Ducasse, S. (June, January 27). Preliminary Steps Towards Modeling Blockchain Oriented Software. Proceedings of the 2018 IEEE/ACM 1st International Workshop on Emerging Trends in Software Engineering for Blockchain (WETSEB), Gothenburg, Sweden.10.1145/3194113.3194123 ↗
32. Garamvölgyi, P., Kocsis, I., Gehl, B., and Klenik, A. (2018, January 25–28). Towards Model-Driven Engineering of Smart Contracts for Cyber-Physical Systems. Proceedings of the 2018 48th Annual IEEE/IFIP International Conference on Dependable Systems and Networks Workshops (DSN-W), Luxembourg, Luxembourg.10.1109/DSN-W.2018.00052 ↗
33. Mavridou, A., Laszka, A., Stachtiari, E., and Dubey, A. (2019, January 18–22). VeriSolid: Correct-by-Design Smart Contracts for Ethereum. Proceedings of the Financial Cryptography and Data Security 23rd International Conference, FC 2019, Frigate Bay, St. Kitts and Nevis.10.1007/978-3-030-32101-7_27 ↗
34. Kasinathan, P., Martintoni, D., Hofmann, B., Senni, V., and Wimmer, M. (2021, January 6–8). Secure Remote Maintenance via Workflow-Driven Security Framework. Proceedings of the 2021 IEEE International Conference on Blockchain (Blockchain), Melbourne, Australia.10.1109/Blockchain53845.2021.00016 ↗
35. ABCDE—Agile block chain DApp engineering10.1016/j.bcra.2020.100002 ↗
36. Huning, L., Iyenghar, P., and Pulvermüller, E. (2020, January 18–22). UML-based Model-Driven Code Generation of Error Detection Mechanisms. Proceedings of the ICSEA 2020: The Fifteenth International Conference on Software Engineering Advances, Porto, Portugal.
37. Integrated model-driven engineering of blockchain applications for business processes and asset management10.1002/spe.2931 ↗
38. (2022, November 13). ERC|Ethereum Improvement Proposals. Available online: https://eips.ethereum.org/erc.
39. (2022, November 13). Hyperledger Fabric Samples. Available online: https://github.com/hyperledger/fabric-samples.
40. Dustdar, S., Yu, E., Salinesi, C., Rieu, D., and Pant, V. (2020). B-MERODE: A Model-Driven Engineering and Artifact-Centric Approach to Generate Blockchain-Based Information Systems. Advanced Information Systems Engineering. CAiSE 2020, Springer.10.1007/978-3-030-49435-3 ↗
41. Li, P., Li, S., Ding, M., Yu, J., Zhang, H., Zhou, X., and Li, J. (2022, January 13–15). A Vulnerability Detection Framework for Hyperledger Fabric Smart Contracts Based on Dynamic and Static Analysis. Proceedings of the International Conference on Evaluation and Assessment in Software Engineering 2022, Gothenburg, Sweden.10.1145/3530019.3531342 ↗
42. Feist, J., Grieco, G., and Groce, A. (2019, January 27). Slither: A Static Analysis Framework for Smart Contracts. Proceedings of the 2019 IEEE/ACM 2nd International Workshop on Emerging Trends in Software Engineering for Blockchain (WETSEB), Montréal, Canada.10.1109/WETSEB.2019.00008 ↗
43. Yin, T. (2022, December 12). Terryyin/Lizard: A Simple Code Complexity Analyser without Caring about the C/C++ Header Files or Java Imports, Supports Most of the Popular Languages. Available online: https://github.com/terryyin/lizard.