A model-driven approach to development of Smart Contracts on the Ethereum Virtual Machine
Abstract
Blockchain technology enables the implementation of smart contracts that express in code form the clauses of real-world contracts so that they can be executed without the need of an intermediary. In this context, decentralized applications (DApps) have been introduced that utilize features such as immutability, decentralization, transparency, and privacy. However, the development of DApps is limited to the scope of contracts and the specifics of blockchain. Developers need to understand the entire environment inherent in the technology, such as contract programming language issues, security issues, and others. The goal of this paper is to define a metamodel that makes it easier for both domain experts and developers to model contracts at a high level. The proposal consists of a metamodel that abstracts the technical issues inherent to the Ethereum Virtual Machine (EVM) that allows defining the essential elements that must be implemented in the final contract.
References
Angelis, J. and Ribeiro da Silva, E. (2019). Blockchain adoption: A value driver perspective. Business Horizons, 62(3):307–314.
Atzei, N., Bartoletti, M., and Cimoli, T. (2017). A survey of attacks on ethereum smart contracts sok. In Proceedings of the 6th International Conference on Principles of Security and Trust - Volume 10204, page 164–186, Berlin, Heidelberg. Springer-Verlag.
Ben Slama Souei, W., El Hog, C., Sliman, L., Ben Djemaa, R., and Ben Amor, I. A. (2021). Towards a uniform description language for smart contract. In 2021 IEEE 30th International Conference on Enabling Technologies: Infrastructure for Collaborative Enterprises (WETICE), pages 57–62.
Buterin, V. et al. (2014). A next-generation smart contract and decentralized application platform. White paper, 3(37):2–1.
Cai, W., Wang, Z., Ernst, J. B., Hong, Z., Feng, C., and Leung, V. C. M. (2018). Decentralized applications: The blockchain-empowered software system. IEEE Access, 6:53019–53033.
Chen, H., Pendleton, M., Njilla, L., and Xu, S. (2020). A survey on ethereum systems security: Vulnerabilities, attacks, and defenses. ACM Comput. Surv., 53(3).
Chirtoaca, D., Ellul, J., and Azzopardi, G. (2020). A framework for creating deployable smart contracts for non-fungible tokens on the ethereum blockchain. In 2020 IEEE International Conference on Decentralized Applications and Infrastructures (DAPPS), pages 100–105.
Corradini, F., Marcelletti, A., Morichetta, A., Polini, A., Re, B., and Tiezzi, F. (2022). Engineering trustable and auditable choreography-based systems using blockchain. ACM Trans. Manage. Inf. Syst., 13(3).
Francisco, K. and Swanson, D. (2018). The supply chain has no clothes: Technology adoption of blockchain for supply chain transparency. Logistics, 2(1):2.
Garamvölgyi, P., Kocsis, I., Gehl, B., and 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), pages 134–139.
Gramlich, B. (2020). Smart contract languages: A thorough comparison. ResearchGate Preprint.
Guida, L. and 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), pages 59–68.
Hamdaqa, M., Metz, L. A. P., and Qasse, I. (2020). Icontractml: A domain-specific language for modeling and deploying smart contracts onto multiple blockchain platforms. In Proceedings of the 12th System Analysis and Modelling Conference, SAM ’20, page 34–43, New York, NY, USA. Association for Computing Machinery.
Hellman, M., Merkle, R., Schroeppel, R., Washington, L., Diffie, W., and Schweitzer, P. (1976). Results of an initial attempt to cryptanalyze the NBS Data Encryption Standard.
Jurgelaitis, M., čeponiené, L., and Butkiene, R. (2022). Solidity code generation from uml state machines in model-driven smart contract development. IEEE Access, 10:33465–33481.
Kaleem, M., Mavridou, A., and Laszka, A. (2020). Vyper: A security comparison with solidity based on common vulnerabilities. In 2020 2nd Conference on Blockchain Research Applications for Innovative Networks and Services (BRAINS), pages 107–111.
Khan, A. G., Zahid, A. H., Hussain, M., Farooq, M., Riaz, U., and Alam, T. M. (2019). A journey of web and blockchain towards the industry 4.0: An overview. In 2019 International Conference on Innovative Computing (ICIC), pages 1–7.
Nadolinski, E. and Spagnuolo, F. (2018). Proxy Patterns. https://blog.openzeppelin.com/proxy-patterns. Acessado em 02 de Junho de 2022.
Nakamoto, S. (2008). Bitcoin: A peer-to-peer electronic cash system. Decentralized Business Review, page 21260.
Rajasekaran, A. S., Azees, M., and Al-Turjman, F. (2022). A comprehensive survey on blockchain technology. Sustainable Energy Technologies and Assessments, 52:102039.
Rodrigues da Silva, A. (2015). Model-driven engineering: A survey supported by the unified conceptual model. Computer Languages, Systems Structures, 43:139–155.
Santiago, L., Abijaude, J., and Greve, F. (2021). A framework to generate smart contracts on the fly. In Proceedings of the XXXV Brazilian Symposium on Software Engineering, SBES ’21, page 410–415, New York, NY, USA. Association for Computing Machinery.
Seebacher, S. and Schüritz, R. (2017). Blockchain technology as an enabler of service systems: A structured literature review. In International conference on exploring services science, pages 12–23. Springer.
Seidewitz, E. (2003). What models mean. IEEE Software, 20(5):26–32.
Steinberg, D., Budinsky, F., Merks, E., and Paternostro, M. (2008). EMF: eclipse modeling framework. Pearson Education.
Swan, M. (2015). Blockchain: Blueprint for a new economy. ”O’Reilly Media, Inc.”.
Szabo, N. (1996). Smart contracts: building blocks for digital markets. EXTROPY: The Journal of Transhumanist Thought,(16), 18(2):28.
Tijan, E., Aksentijević, S., Ivanić, K., and Jardas, M. (2019). Blockchain technology implementation in logistics. Sustainability, 11(4).
Vieira, M. A. et al. (2016). Modelagem de espaços inteligentes pessoais e espaços inteligentes fixos no contexto de cenarios de computação ublíqua.
Vujičić, D., Jagodić, D., and Randić, S. (2018). Blockchain technology, bitcoin, and ethereum: A brief overview. In 2018 17th International Symposium INFOTEH-JAHORINA (INFOTEH), pages 1–6.
Wang, S., Ouyang, L., Yuan, Y., Ni, X., Han, X., and Wang, F.-Y. (2019). Blockchain-enabled smart contracts: Architecture, applications, and future trends. IEEE Transactions on Systems, Man, and Cybernetics: Systems, 49(11):2266–2277.
Wu, K., Ma, Y., Huang, G., and Liu, X. (2021). A first look at blockchain-based decentralized applications. Software: Practice and Experience, 51(10):2033–2050.
Zheng, Z., Xie, S., Dai, H., Chen, X., and Wang, H. (2017). An overview of blockchain technology: Architecture, consensus, and future trends. In 2017 IEEE International Congress on Big Data (BigData Congress), pages 557–564.
