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.