Toward better Development of Applications on DLT

With the rise of Distributed Ledger Technology (DLT) during the last decade, smart contracts became of interest for several applications which demand for reliable and automated enforcement of digital agreements. Smart contracts offer great opportunities for the automation of business processes through the formal expression of the respective business process in program code, which accelerates process operation while decreasing cost. Since Bitcoin initially provided simple OP_CODE, which is not Turing-complete, Ethereum was the first DLT design providing an environment, namely Ethereum Virtual Machine (EVM), that supports the execution of fully Turing-complete program code. The ability to develop Turing-complete code that is reliably executed on a distributed ledger advanced the applicability of DLT. Nowadays, DLT became applicable for industrial use cases and the use of respective tokens is not restricted to cryptocurrencies anymore. The increasing support for expressive programming languages for smart contract development, however, comes with several issues for security and performance of distributed ledgers due to the distributed manner of distributed ledgers. Current challenges in the development of smart contracts and applications on DLT go beyond known issues in software development. For example, when developing applications on DLT, it must be borne in mind that smart contracts are strongly based on finite state machines.

The development of complex smart contracts and applications on DLT requires a sound understanding of the execution of smart contract code on a distributed ledger to understand current challenges in the development of smart contracts and to generate recommendations to support better smart contract development. Therefore, we strive to clarify when and how smart contracts can be used reasonably. Furthermore, we aim at providing a sound analysis of how data feeds can be integrated into smart contracts (on-chain or off-chain). To support practitioners and researchers, we aim to generate software design patterns for the development of smart contracts.