TL;DR

Smart contract development is complicated and expensive. In contrast to writing smart contracts in Solidity, modeling smart contracts as graphical state machines has a lot of advantages. You can focus on business logic instead of struggling with technical details and even non-programmers can understand what your contract is doing. You can generate bullet-proof Solidity code and don’t need audits anymore. And you can easily switch the platform or target language for different smart contract code.

example of a license managing smart contract a state machine

We use the open-source version of YAKINDU Statechart Tools to model smart contracts as state machines. This way, you can test the model with the simulator and ultimately generate Solidity code out of it.

What is the problem?

Smart contract development for blockchains is complicated. If you want to develop smart contracts for the Ethereum blockchain, you have to learn a completely new programming language like Solidity. If you successfully managed to write and test your first smart contract, the next hurdle follows: Since you can’t update your smart contract once it is deployed to the main net anymore, someone has to ensure that the smart contract code is bulletproof against attacks. While there are really good resources about known attack vectors, it takes a lot of experience to find those kinds of security holes in smart contracts. The past has shown that smart contracts are hacked frequently and funds were stolen. Since the tools to secure smart contracts are not yet mature enough to find all possible security flaws you need a smart contract audit. There are only a few experts around that are able to code review smart contracts in a way that you can deploy without causing you sleepless nights. And this is the second problem with smart contract development - It is expensive.

This combination makes it tremendously difficult for individuals or small startups to develop high-quality smart contracts.