Show simple item record

dc.contributor.advisor Perera I
dc.contributor.author Perera GR
dc.date.accessioned 2020
dc.date.available 2020
dc.date.issued 2020
dc.identifier.uri http://dl.lib.uom.lk/handle/123/16778
dc.description.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.
dc.language.iso en en_US
dc.subject COMPUTER SCIENCE AND ENGINEERING-Dissertations en_US
dc.subject COMPUTER SCIENCE-Dissertations en_US
dc.subject BUSINESS-Smart Contracts en_US
dc.subject COMPUTER PROGRAMMING LANGUAGES-Solidity en_US
dc.subject BUSINESS PROCESS MODEL AND NOTATION en_US
dc.title A Token based translator to convert BPMN to solidity smart contracts en_US
dc.type Thesis-Full-text en_US
dc.identifier.faculty Engineering en_US
dc.identifier.degree MSc in Computer Science en_US
dc.identifier.department Department of Computer Science & Engineering en_US
dc.date.accept 2020
dc.identifier.accno TH4253 en_US


Files in this item

This item appears in the following Collection(s)

Show simple item record