Uma Abordagem Dirigida por Modelo para Desenvolvimento de Contratos Inteligentes na Ethereum Virtual Machine
Resumo
A tecnologia blockchain possibilita a implementação de contratos inteligentes que expressam na forma de código as cláusulas de contratos do mundo real de modo a serem executadas sem a necessidade de um intermediário. Nesse contexto, foram introduzidas as aplicações decentralizadas (DApps) que utilizam recursos, como imutabilidade, descentralização, transparência e privacidade. Contudo, o desenvolvimento de DApps é limitado ao escopo de contratos e às especificidades da blockchain. Os desenvolvedores necessitam compreender todo o ambiente inerente à tecnologia, como questões da linguagem de programação dos contratos, questões de segurança e outros. O objetivo deste artigo é definir um metamodelo que facilite tanto para os especialistas do domínio quanto para desenvolvedores a modelagem dos contratos em alto nível. A proposta consiste em um metamodelo que abstraia as questões técnicas inerentes a Ethereum Virtual Machine (EVM) que permita definir os elementos essenciais que devem ser implementados no contrato final.
Referências
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.