|
|
Blockchain-based smart contracts are computer programs which run on top of a blockchain in order to enforce the terms of an agreement between mutually-untrusted parties without the need of a trusted intermediary. With their actual implementations, smart contracts are passive entities, that is, they do nothing until one of the parties explicitly trigger them. As a result, they are not able to "actively" participate in the execution of the agreement. Furthermore, since they are deployed on the blockchain, their source code is immutable and cannot be adapted as changes in the real world occur over time. In this thesis, we rethink blockchain-based smart contracts as proactive and logic entities to overcome the aforementioned issues. In our vision, smart contracts are "proactive" in the sense that they can act without necessarily being triggered by one of their parties, and "logic" in the sense that their business logic is expressed by means of logic programming, allowing for a controllable mutability of their behaviour over time through meta programming. In this work, we analyse the problems which arise as soon as smart contracts are designed as proactive entities, carrying out a feasibility study for their implementation in the first place. Subsequently, we implement a system which supports their execution as a proof-of-concept for our idea. Finally, we show how our proactive smart
contracts can be used to further enforce the terms of a contract with respect to three different use cases. This work represents a first step towards our final end, which consists in the realization of fully autonomous smart contracts, able to reason about the world and automatically act against violations committed with respect to the agreement's terms.
keywords
blockchain, distributed ledger, logic programming, proactive smart contracts