Combining DMN and Blockchain
Blog: Decision Management Community
I consider combining DMN and blockchain as a very promising approach for a while. Early this year Edson Tirelli described how DMN decision services can be invoked from smart contracts. And today I read the first paper that addresses the execution of DMN-based decision models on an Ethereum blockchain dealing with collaborative decisions taken by multiple interacting business processes. The authors from the University of Potsdam attempted to transform DMN decision models expressed in S-FEEL to Solidity, the programming language of the Ethereum blockchain. Link
To demonstrate the approach, they took a simple decision model: a manufacturer offers his customers reimbursement for delivered defective units. A decision provides the fine as a ratio of the purchase price defined by SLA and a number of defective units provided by a customer. The traditional method of realizing these decisions looks as below:
It has a major drawback: due to the lack of a central mediator or state, participants must trust each other to provide the correct information and to take the decisions in the right way. In case of a fraud, conflict resolution is difficult: no accountable source of information exists and an expensive lawsuit can follow.
The authors suggested to use blockchain as an intermediary for decisions. The respective process collaboration is depicted below:
It uses Ethereum and smart contracts to specify the executable decision logic. Participants can contribute data to a decision via transactions, and smart contracts execute and log decisions. While it looks complicated, I encourage you to read their explanations. This approach leads to a public audit trail, which consists of all information required to reconstruct the decision making process: who provided which inputs, what are the results, and how was the decision made.
To supported similar implementations, the authors introduced Decision Contracts and developed a tool that translates DMN XML (limited to S-FEEL) to Solidity source code. The authors openly talk about the limitations of their initial prototype and provide specific suggestions for future improvements.
Conclusion: “Collaborative decisions span across multiple processes and organizations. They apply to interacting business process and influence their behavior. In these cases, it is difficult to establish a trusted exchange of data and a common understanding of both the information and the decision logic. Therefore, we proposed the use of a decentralized blockchain as an intermediary entity. It saves both the data that is required for the decision and the underlying logic. Based on the blockchain technology, trust becomes obsolete due to a technical and reliable mechanism.“