Automatic smart contract generation using controlled natural language and template

Smart contracts, which are widely recognized as key components of blockchain technology, enable automatic execution of agreements. Since each smart contract is a computer program that autonomously runs on a blockchain platform, their development requires much effort and care compared with the development of more common programs. In this paper, we propose a technique to automatically generate a smart contract from a human-understandable contract document that is created using a document template and a controlled natural language (CNL). The automation is based on a mapping from the document template and the CNL to a formal model that can define the terms and conditions in a contract including temporal constraints and procedures. The formal model is then translated into an executable smart contract. We implemented a toolchain that generates smart contracts of Hyperledger Fabric from template-based contract documents via a formal model. We then evaluated the feasibility of our approach through case studies of two types of real-world contracts in different domains.