Computable Contracts as Functional Elements Harry Surden Professor of Law, University of Colorado Law School Affiliated Faculty, CodeX Stanford Center for Legal Informatics
Computable Contracts Project Project Goals Create Standards and protocol for expressing computable contracts A series of high-quality, open source tools Standards and protocol will be Open-source Flexible to arbitrary contracting scenarios Compatible with existing technologies, Such as the block chain, databases, legal-xml Extensible to new, not yet developed technologies
Overview Presentation Overview What are computable contracts? Vision: A world with computable contracts What is missing today Computable Contracts Stack Proposal Group Discussion
What are Computable Contracts?
Contract A contract A legally enforceable promise To do something in the future Under certain conditions Financial Contract (Option Contract) “I promise to sell you 100 shares of Apple stock at $200 per share prior to the expiration date of August 12, 2017” Terms: 100 shares of Apple stock (Qty) at $200 per share (Price) Conditions: Only prior to expiration date
Computable Contract Computable Contract Contract expressed as Computable Contracts are legal contracts that computers can “understand”, assess for compliance with conditions, and execute Contract expressed as Data (which can be interpreted to human readable form) + Rules for carrying out meaning and logic of contract promise
Computable Contracts “Ordinary Contracts” English “natural language” contracts Currently computers have very limited ability To read and understand natural language contracts At the level of precision needed for execution or compliance
Computable Contracts are both Machine Readable and Computable Distinguishing Machine Readable Only Contracts ”Machine readable” contracts are contracts Whose components have been labeled in a structured way So that a computer can identify individual components E.g. Legal XML or For example, a financial contract with an expiration date Natural Language Version: “This contract expires and shall no longer be valid after August 12, 2017” Machine Readable Version: <Expiration_Date (08,12,2017)>
Distinction from Machine Readable Distinguishing Machine Readable Contracts Machine-readable = highly structured data format That allows a computer to parse data with precision A computer can unambiguously extract the expiration date <Expiration_Date (08,12,2017)> = August 12, 2017 But computer doesn’t know what “expiration date” means Or what to do when it sees expiration date “Expiration date” is merely a label for the data
Computable = Giving Computer Rules To Effectuate Meaning of Contract Terms Computable Contract Terms Computer has a series of instructions or logical rules That allow it to automatically execute the meaning of the term Computer ”understands”, “knows what to do” for terms Example: “Computable” Contract Expiration Date Term Computer is given a series of rules that express the meaning And underlying logic of contract terms and conditions Rules expressing meaning of word “expiration date” If current_date > expiration_date Then do_not_execute_contract
Examples Computable Contracts Today There are limited computable contracts today Contracts for Financial Securities Expressed as data Computable to some degree Some company purchase order contracts Some Internet purchase contracts Some blockchain ”smart contracts” Basic versions have been around for some time But currently do not represent the full range of functionality
World With Computable Contracts Vision of World With Computable Contracts
The Vision Goal Create a contracting stack and ecosystem And a series of open source tools Around computable Contracting To make computable contracting easy and effortless Company A sits down and executes a computable contract Around an arbitrary good or service With Company B The contract terms are self-executing
Why Computable Contracts? Many benefits of computable contracting Low transaction costs of contracting Efficiency and cost reduction Lower barriers to entry for entrepreneurs Contracts can serve as inputs to other system Allows for systematic risk assessment E.g. Preventing Financial Crisis Detecting errors and contract conflicts Understanding risk and obligations
What We Don’t Have Today
Many Components Today Today there are many bits and pieces of the puzzle Thanks to the efforts of many in this room (Meng Wong will discuss in more depth these efforts later) But we don’t have the whole puzzle
The Problem We do not have an full scale solution for computable contracting today Today it is not easy for one company or a person to sit down at a computer And just effortlessly construct a computable contract for an arbitrary good or service And have that contract be honored Computable contracts today require tremendous infrastructure and costs
The Problem Why what we have today doesn’t fulfil the computable contracts vision Absence of Standards Existing approaches are domain specific Absence of quality, free software tools Current approaches not flexible, not general, not extensible Tied to specific technological implementations Insufficient Interdisciplinarity Insufficient ecosystem and buy-in
Computable Contracts Stack Suggestion: Computable Contracts Stack
Computable Contracts Stack A Functional Stack What happens when we make a contract? Represent each stage of contracting as abstract components Expressing Contract Transmitting Contract Recording Contract. ..etc Whose functionality can be implemented technologically Analogy to TCP/IP Internet Stack Multiple layers that are functionally based But are independent and technologically agnostic
Computable Contracts Stack User Interface Human Understandable Contract API Machine-Readable Contract Contract Data Representation Layer Standard Contract Transmission Protocol Interpretation Layer Contract Functionality Interoperability Layer Storage Compliance Notification Recording / Ledgering
Contract Templates Templates Allow Easy Setup of Common Contracts Many contracts are standardized, and common Allow templates that are customized to individual fields E.g. Finance, startups, etc Contract Templates can be reused for repeat contracting
Not Every Contract Has to Be Computable Computable Contracts work best for standardized, frequently contracts There are many of these in the world Computable contracts not the right tool for every contracts Still will be many bespoke contracts for complex scenarios Or for scenarios that require subjectivity or discretion Do not need to make every contract computable This frees us from burden of a complete solution
Computable Contracts As One Example of Computable Law Ideas Extensible to other areas of law Contracting is just one area of law By focusing first upon contract law Ideas developed in this project can be extended to other areas of law more broadly Computable Regulation and Legislation
Computable Contracts Goals Flexible to multiple contracting scenarios Very low cost and low barriers to contracting Compatible with existing technologies E.g. Blockchain Adaptable to Future Technologies Technology agnostic Can implement ledgering in blockchain, or database, etc Open source, free, and standardized Visually appealing and easy to use
Discussion