Negotiation Mechanisms for Smart Contracts

Potential supervisors: 

Blockchain is a global distributed ledger or database running on millions of devices where not just information but anything of value (money, music, art, intellectual property, votes, etc.) can be moved and stored securely and privately [1]. On the blockchain trust is established through mass (distributed) collaboration. Blockchain has the potential to change in a fundamental way how we deal not only with financial services but also with more general applications, improving transparency and regulation. Many applications have been proposed, starting with bitcoin [1], and smart contracts as introduced in Ethereum [2].

Smart contracts are software programs that self-execute complex instructions on blockchains. The promise of smart contract technology is to diminish the costs of contracting, enforcing contractual agreements, and making payments, while at the same time ensuring trust and compliance with the absence of a central authority.  It is not clear, however, whether this promise can be delivered given the current state-of-the-art and state-of-practice of smart contracts.

The main objective of this master thesis is to design and implement a negotiation mechanism for smart contracts written in Solidity  [3] or any other smart contract programming language. This mechanism will be available to all smart contract developers to be added as a first step before the parties agrees on the contract. The idea is to design and implement such negotiation mechanism as a library or as a separate smart contract. The student(s) will then apply the mechanism to a selection of case studies.

Related courses: Distributed systems, Programming languages
Prerequisites: Programming (Python, Java, C,…), and (basic) knowledge on distributed systems.

Contact: Gerardo Schneider (

References and Further Reading
[1] Satoshi Nakamoto. Bitcoin: A Peer-to-Peer Electronic Cash System -
[2] Ethereum -
[3] Solidity -



Date range: 
October, 2018 to October, 2023