“A smart contract is a set of promises, specified in digital form, including protocols within which the parties perform on these promises.” — Nick Szabo (1996)
First described in 1996 by Nick Szabo, smart contracts are a modern mechanism for human cooperation, making it easy to do things that are impractical within traditional systems of trust.
In an international sale for example, the buyer has to trust the seller to deliver the items, and the seller has to trust that the buyer will proffer the money. They might opt to create a sales contract, bringing in lawyers to negotiate the terms, banks to hold the financing, and ultimately courts to enforce their agreement. Only for large companies making sizable purchase does it make sense to invest this much money, mental effort, and time to secure such a contract. Below a certain scale, small traders can usually rely only on their reputations.
By using cryptography, digital communication networks, and computationally executed protocols instead of appealing to traditional fiduciary institutions, smart contracts can dramatically reduce legal overhead.”
A traditional employment contract guarantees that a company will pay their employee a certain salary and benefits package in exchange for their labor, that all labor laws are followed and appropriate taxes paid. These agreements do not easily scale down to cover a few minutes’ work performed by an overseas or anonymous employee, or cases in which both employer and employee are machines. Traditional jurisdictionally-bound employment contracts require legal identities to act as parties to the contract. Besides, if the value exchanged is too low the contract costs will overshadow the value of the transaction.
These examples show cases in which two parties would still benefit from trade, but the legal system — that facilitates mutual trust and provides remedies when trust is broken — proves too costly to use. Smart contracts aim to address this problem. By using cryptography, digital communication networks, and computationally executed protocols instead of appealing to traditional fiduciary institutions, smart contracts can dramatically reduce legal overhead.
In the traditional system, lawyers create contracts based on local laws. When a dispute arises a court interprets the facts of the case and comes to a decision. The court’s decisions are ultimately enforced by the threat of jail. In the case of a smart contract, contracts are designed to be interpreted by special purpose machines. These machines embody the contract details and automate both their execution and enforcement. Smart contracts do not require humans to interpret or enforce them.
A traditional contract spells out its terms and conditions in human readable form (or lawyer-readable form, which is close enough for our purposes), a smart contract uses a simplified computer language that machines can interpret without ambiguity. Unlike traditional contracts whose language is open to interpretation, smart contracts employ a more constrained machine language of that replaces legal identities with mathematical proofs of ownership. Computers can execute contract code using mathematically verifiable inputs.
Anyone who runs the same computation using the same presented inputs can independently compute and agree on the result of a smart contract. Users’ consensus about the result serves to verify the contract, independent of a central court. If either party fails to meet the terms of the agreement, it simply does not execute. This precludes the need for an executive third-party (like a police force) to enforce the terms of the contract.
If this seems a little abstract, imagine the following: Alice and Bob have entered a contract. After a dispute, a court finds that Bob should give Alice $100. If Bob does not fork over the money, the police might have to intervene, taking $100 from Bob and giving it to Alice.
Now imagine that Alice and Bob have used a smart contract. When a computer executes the smart contract and verifies that an account controlled by Alice should receive $100 taken from an account controlled by Bob, then anyone can verify that same smart contract and update their personal ledger to reflect that Alice received $100 from Bob. Alice doesn’t need a police force to shake Bob down for the money; the contract itself effects the transfer of funds. Any user that ignores the result of a valid transaction might create dependent transactions that are also out of consensus and be disregarded by the rest of the network. The definitive transaction ordering computed by miners running the bitcoin protocol makes this decentralized shared consensus possible.
Smart contracts are not appropriate in every case, but for for narrow functions — which do not require the flexibility and nuance of human interpretation — smart contracts can be superior. Contracts that deal with information native to a blockchain are easier to prove and reason about that those that deal with off-chain contingencies. For example, a smart contract can refund the balance of an escrow account if not spent before some time because it involves information native to the blockchain. Contracts where the performance of a contract can be decided by a predefined and unambiguous piece of information is also good — a financial contract that pays out if the price of a stock is below a certain value on a particular day, for example. This kind of smart contract works because a stock price can be unambiguously encoded from a source both parties agree to trust.
Alice doesn’t need a police force to shake Bob down for the money; the contract itself effects the transfer of funds.”
Smart contracts are also superior because they are not tied to a particular legal system and thus can can be used across national borders. They operate in a consensus-based jurisdiction instead of a legal one, and don’t require a particular nation’s monopoly on legal force to be effective. Cross-border disputes can be especially costly to adjudicate, which limits global contracts to mostly large companies or high-value deals. Where applicable, a smart contract can dramatically lower the cost and uncertainty of dealing with multiple overlapping legal codes. This allows strangers from different parts of the world to work together in ways that would otherwise be too expensive and difficult.
If a smart contract were to violate a local (or international) law, governments might choose to pursue the individual traders — if the law-breakers could be identified, that is. Unlike traditional contracts, smart contracts do not necessarily include personally identifying information. A state could choose to ban the use of smart contracts in their jurisdiction, but such a ban would be difficult to enforce for any sufficiently decentralized blockchain based system. The history of internet censorship shows that people usually find a way to work around information bans.