A Token based translator to convert BPMN to solidity smart contracts

Loading...
Thumbnail Image

Date

2020

Journal Title

Journal ISSN

Volume Title

Publisher

Abstract

This research addressed the problem of cclack of an efficient translator to reliably convert Business Process Model and Notation (BPMN) to Solidity Smart Contracts for business transactions”. Most significant contributions of this research are the mapping rules of the BPMN 2.0 to Solidity language, A Proof-of-Concept (PoC) implementation to prove the derived work and the extensive literature survey on the state-of-the-art related work. The implementation details are freely available in GitHub1 under the Apache2 opensource-friendly license. In the literature review, Smart contracts and its applications are discussed. Then BPMN modelling technique was selected from the various business process modelling techniques as it serves the purpose of this research. 'Eclipse BPMN2.0 Modeller’ has been used as the business process modelling tool as part of analysis of the tools & plugins for BPMN. Further, detailed analysis on the BPMN2.0 specification and the Solidity language documentation is done. The research methodology discusses the research approach and steps taken. For the data-coilection, primarily, smart contract implementations written in Solidity language were collected from various sources such as GitHub, GitLab, Medium...etc. and derived the business use cases using BPMN diagrams. The development of the translator consists two main components, (l) BPMN Modeler and (2) BPMN-to-Solidity Translator. For the BPMN Modeler, ‘BPMN2 Modeler’ Plugin for Eclipse IDE is integrated. For the BPMN-to-Solidity Translator, an ANTLR based compiler is written from the scratch. Input for the compiler is the XML representation of the BPMN diagram and the output is a generated Solidity language contract. Abstract Syntax Tree (AST) representations for the BPMN and Solidity is introduced to translate a BPMN AST into a Solidity AST, and then finally generate the Solidity code. A particular business transaction can be converted into a smart contract, if and only if that contract can be mapped using the notations in BPMN 2.0 specification and the diagram should be a valid BPMN diagram as the specification. Further the results of the qualitative survey study suggest that the BPMNto- Solidity translation is at the satisfactory level. Moreover, evaluation of the translation verified with a pre-identified set of abstract features, namely ‘entry-points’, ‘branch-points’ and ‘persistent-points’. Further, the evaluation results of the process model suggest that PoC handles erroneous cases as expected and sufficiently flexible to draw complex diagrams such as ‘CrowdSale’ example. Correctness and efficiency are validated with the Truffle tests running on a blockchain test network. Comparative analysis between the Caterpillar and the Proposed approach shows that the proposed approach is generating solidity code that has the minimum lines of code (58 lines) and minimum gas consumption (1,252.037) with a satisfactory code generation time(~263ms). Thus, results of the experiments suggest that the proposed approach is more efficient in converting BPMN to Solidity. Thus, the goal of this research, to create a drag and drop (or icon based) tool to convert business transactions which are mapped using BPMN notations in to solidity smart contracts is achieved. Thus, the goal of this research, to create a drag and drop (or icon based) tool to convert business transactions which are mapped using BPMN notations in to solidity smart contracts is achieved.

Description

Citation

DOI

Endorsement

Review

Supplemented By

Referenced By