2 Foundations In order to lay the foundation for subsequent discussion, there are several topics that require elaboration. Here we consider the key topics of terminology, automation, enforceability, and semantics. 2.1 Terminology — “smart contracts” In [15], Stark gives an overview of the two different ways that the term “smart contract” is commonly used: 1. The first is entirely operational in nature, involving the execution of software agents, typically but not necessarily on a shared ledger. The word “contract” in this sense indicates that these software agents are executing certain obligations and may take control of certain assets within a shared ledger. There is no clear consensus on the definition of this use of the term “smart contract” — each definition is different in subtle ways [18, 17, 16, 3]. Stark renames these agents as smart contract code. 2. The second focuses on how legal contracts can be expressed and executed in software. This therefore encompasses operational aspects, issues relating to how legal contracts are written and how the legal prose should be interpreted. There are several ideas and projects which focus on these aspects such as the Ricardian Contract [7], CommonAccord [4] and Legalese [13]. Stark renames these as smart legal contracts. Given that there is no clear consensus on the terminology being used, it is important that we should be clear in this paper. Here we prefer that the term “smart contract” should cover both versions, so we adopt a higher-level definition based on the two topics of automation and enforceability, that are explored in depth in sections 2.2 and 2.3: A smart contract is an agreement whose execution is both automatable and enforceable. Automatable by computer, although some parts may require human input and control. Enforceable by either legal enforcement of rights and obligations or tamper-proof execution. This is sufficiently abstract to cover both “smart legal contracts” (where the agreement is a legal agreement, which is then capable of automatic execution in software) and “smart contract code” (which may not necessarily be linked to a formal legal agreement, yet must be executed automatically). It simply states a requirement that the contract must be enforceable without specifying what is the aspect being enforced; for smart legal contracts these might be complex rights and obligations, whereas for smart contract code what is being enforced may simply be the execution of the code. Wefocusonsmartlegalcontracts, withtheexpectationthatitwillbepossibleforexecution to occur using smart contract code. In addition to our definition of smart contract given above, throughout the rest of this paper we also for clarity adopt Stark’s terms smart contract code and smart legal contract. 2
Position Paper | Smart Contract Templates Page 3 Page 5