Are 'Smart Contracts' Smart Enough
Are 'Smart Contracts' Smart Enough? -- Certain legal functions can be automated, particularly with the use of block chains
New Jersey Law Journal August 14, 2017 By Jonathan Bick Bick is of counsel at Brach Eichler in Roseland. He is also an adjunct professor at Pace and Rutgers law schools.
The automation of certain attorney functions has given rise to a new form of contracting, known as "smart contracts." Consequently, a decrease in the demand for certain attorney functions that can now be performed by internet applications is matched by an increase in demand for legal advisers who can prepare smart contracts and ensure these smart contracts accurately reflect a desired business transaction.
Smart contracts rest on the idea that the code can enforce and execute the terms of the agreement. A smart contract is "self-enforcing" if the software executes the terms without additional input from the parties. The nature of smart contracts achieves the same results as traditional contracting, without the cost of monitoring and enforcement, because it is extremely difficult for users to violate the terms of a smart contract.
For example, consider the smart contract for a movie rental. In this instance, each movie is prepared in a digital format and contains both the content of a movie and software that serves as the agreement's monitoring mechanism. The movie can be time stamped when the user begins watching it. After 24 hours, the software revokes the user's ability to access the video. Smart contracts are Internet legal contracts that execute automatically (without verification by a third party) when a set of pre-programmed conditions are satisfied. Unlike traditional legal contracts in human language, smart contracts are written using on-chain internet code.
On-chain internet code is a set of computer protocols that facilitate, verify or enforce the performance of a contract. Such code makes traditional contract language redundant and, hence, unnecessary. The format of on-chain internet code often emulates the logic of traditional contract language.
Smart contracts are designed to exchange money, property, shares or anything of value in a transparent way, so as to avoid the need for a third-party payment processor such a bank or credit card service provider or the need for enforcement agencies, such as arbitrators or the court. Smart contracts are also designed to save time. Traditionally, a contract process would require the services of a third party such as a bank, lawyer or notary, and then a processing time before the receipt of goods or services. However, with smart contract technology it can all be automated.
Vending machine process flow has been accurately compared to smart contract process flow. A vending machine typically accepts money directly and delivers goods directly to the vending machine user. Similarly, a smart contract enables a user to deposit money (in escrow) via a "block chain" protocol, which is instantaneously transferred into a prospective counterparty's control once conditions are met. Thus, smart contracts not only define the terms and conditions around an agreement in the same way that a traditional contract does, but they also provide an enforcement mechanism for those obligations.
Since smart contracts can be stored on distributed ledger platforms and secured using cryptographic keys to make them tamper resistant, a shift in contract enforcement is observable. While smart contracts are contracts in the strict legal sense, their enforcement has changed from both a legal and technological perspective.
From a legal perspective, some state governments, such as Vermont, have created a rebuttable statutory assumption that digital records electronically registered in a block chain format are authentic. From a technological perspective, smart contracts are a system for keeping a record of transactions and automatically implementing terms of multiparty agreements, thus enforceable due to the actions of internet rather than the court.
Smart contracts in the commercial realm are currently in use and privately maintained by a small group of parties. This type of contract is still developing, but the technology that enables them is sufficiently compelling as to attract significant investment.
Like traditional contracts, smart contracts allow for all the necessary elements of an agreement to be legally enforceable: mutual assent, expressed by a valid offer and acceptance; adequate consideration; capacity; and legality.
Smart contracts are executed by a computer network that uses consensus protocols to agree upon the sequence of actions resulting from a smart contract's inputs. The result is a system by which parties can agree upon terms and trust that they will be executed faster and more accurately than traditional agreements, with a lower risk of forgery than existing internet agreements.
Smart contracts are internet enabled agreements. More particularly, smart contracts are gaining popularity owing to the use of block chains, which facilitate, verify and automatically enforce the negotiation and performance of a contract.
Some smart contracts' block chain implementations include enabling programs that will execute a transaction or send a message when specified conditions are met. A block chain smart contract would be enabled by extensible programming instructions that define and execute an agreement.
Block chains are publicly viewable and widely distributed. Therefore, it is theoretically difficult to alter records of transactions. Block chain based smart contracts are contracts that can be executed and enforced without human interaction.
Block chain applications, such as smart contracts, refer to the use of a publicly accessible ledger that relies on a distributed proof system to prevent falsification of records. Block chain technology incorporates an automatic escrow feature. This feature of block chain technology allows for an amelioration of moral hazards because transactions are readily verifiable.
Smart contracts are initiated when self-executing inputs to a block chain program are received and automatically implement the terms of an agreement between parties. Smart contracts are formed as follows: 1) taking as input the transactions individuals have agreed upon, reduced to writing and sent; 2) verifying transactions for syntactic correctness, valid signatures and sufficient funds; 3) pooling correct transactions into a transaction block; 4) performing a proof-of-work to legitimize the transaction block; and 5) broadcasting the results to the community.
Copies of traditional contracts reside in the care of contract stakeholders, hence traditional contracts are trust based agreements. The courts and business institutions rely on contract stakeholders to hold contracts in trust.
To maintain trust, the centralized authority must restrict access to the ledger, while itself submitting to expensive (but necessary) oversight to ensure its own trustworthiness. For example, if bank account holders were free to edit their bank account balances at will, then the traditional banking system would not function properly.
Enormous resources currently go into supporting trust based agreements. Smart contracts can eliminate the need for such resources by eliminating the trustee element. Smart contracts rely on a multitude of public ledgers for verification rather than a contract stakeholders' copy of an agreement to prove a contract's viability.
Smart contracts uploaded to block chains are programmed in code that embodies the "terms" of the agreement. In a way, the coded language of a smart contract is less obtuse than that of its written counterpart. To laypersons, traditional contracts evoke images of dense text walls, impenetrable legalese, and linguistic butchery designed to mitigate liability. But smart contracts reduce each term to its basic component in the form of "if/then" statements. For all their programming complexity, it may be best to think of smart contracts as conditional payments.
The process by which a smart contract is uploaded to the block chain varies across the different types of block chains. Because smart contracts are customizable and can be used for a variety of purposes, it is advantageous to use a block chain that supports a wide range of programming languages.