Decentralised Self-Enforcing Contracts in

Agent Negotiations

Imperial Centre for Cryptocurrency Research and Engineering (IC3RE)

SuRI EPFL Lightning Talk

19 June 2018

Dominik Harz

d.harz@imperial.ac.uk

Decentralised agents want to negotiate

How to enforce an agreement between two agents?

How can agents understand the terms of the negotiation?

Why would agents commit to such an agreement?

Alice

Bob

I have temperature data

I need temperature data

?

Agent negotiation and contracts

A set of agents P = {1..n} are self-interested.[1][2] Agents can cheat if it increases their utility ui.

Norms such as obligations, prohibitions, and permissions can be used to restrict agents’ behaviours.[3]

A contract C can encode norms. Design C as a mechanism M = (Σ, g) implementing a social choice or rule f, such that agents’ dominant strategy/Nash equilibrium results in f.[4]

Smart contracts[5][6] enforce terms. They are implemented in blockchains to reach consensus about state of a contract.[7][8]

Negotiation protocol

Adjusted version of Contract Net Protocol (CNP) with an additional reject-contract and accept-contract message.

Verify contract by comparing compiled EVM bytecode.

Contracts as Finite State Machines

Contract or IR is a Finite State Machine.

  • Work with pre- and post conditions to verify properties of the state.
  • Needs a suitable language for specification and contracts.

contract funded

data delivered

fund contract

fund contract

payout

timeout
out of funds

References

[1] S. Fatima, S. Kraus, and M. Wooldridge, Principles of Automated Negotiation. Cambridge: Cambridge University Press, 2014.

[2] N. Nisan and A. Ronen, “Algorithmic Mechanism Design,” Games Econ. Behav., vol. 35, no. 1–2, pp. 166–196, Apr. 2001.

[3] A. Artikis, M. Sergot, and J. Pitt, “Specifying norm-governed computational societies,” ACM Trans. Comput. Log., vol. 10, no. 1, pp. 1–42, 2009.

[4] M. J. Kollingbaum and T. J. Norman, “Norm adoption in the NoA agent architecture,” Proc. Second Int. Jt. Conf. Auton. agents multiagent Syst., pp. 1038–1039, 2003.

[5] N. Szabo, “Formalizing and Securing Relationships on Public Networks.,” 1997. [Online]. Available: http://ojphi.org/ojs/index.php/fm/article/view/548/469. [Accessed: 07-Apr-2017].

[6] I. Grigg, “The Ricardian contract,” in Proceedings. First IEEE International Workshop on Electronic Contracting, 2004., 2004, pp. 25–31.

[7] S. Nakamoto, Bitcoin: A peer-to-peer electronic cash system. 2008.

[8] V. Buterin, “A Next-Generation Smart Contract and Decentralized Application Platform,” 2013. [Online]. Available: https://github.com/ethereum/wiki/wiki/White-Paper. [Accessed: 09-Oct-2016].

Lightning Talk EPFL 2018 - Google Slides