What are smart contracts?

“Smart” is a very loaded word. According to my Google dictionary, it means “having or showing a quick-witted intelligence”. Quick-witted is not usually a word that you associate with contracts. Most of them are barely intelligible.

Unless we start to look at what we mean by “contract”. We are all familiar with pages of legalese when we want to take out a bank loan or buy a car or, god forbid, a house. Employment contract, sales contract, rent contract… Even a will or final testament is a type of contract.

by Mari Helin-Tuominen for Unsplash
by Mari Helin-Tuominen for Unsplash

We are so used to the concept of a contract being a whole lot of words, some of which we don’t understand, that we forget what it’s really for. To reduce risk. In a contract, we want to establish the conditions for a transaction, while protecting ourselves from the possibility of the other party not fulfilling their part of the bargain. Contracts not only set up the conditions for the transaction, but also what will happen if various conditions are not met, or if either side is not satisfied. Contracts are long because of the lack of trust.

Wouldn’t it be great if we could come up with a way to simplify contracts? To make the trust implicit? And while we’re at it, to remove the control of the contract from one party, and make it tamper-proof, time-stamped, and verifiable by the public? And to make it indestructible, stored on decentralized servers, away from fire/flood/failure risk?

Enter Bitcoin.

Based on a decentralized network, Bitcoin’s very philosophy solves the problem of how to transact with people or institutions that you don’t trust. And it does so with a few simple lines of code. Your Bitcoin commitments are validated by the network, then published on the blockchain for everyone to see*. They are almost impossible to tamper with, so you can’t retroactively “change your mind”.

How can this be adapted to the concept of contracts? Each Bitcoin transaction is already a very simple type of contract, in which someone promises to pay someone else in bitcoin. The only condition attached is that the transaction be valid, in that the payer actually owns the bitcoins that he or she wishes to send, and that he or she hasn’t already sent them somewhere else. If that condition is met, the “contract” is fulfilled and the bitcoins change hands.

For more complicated scenarios, the Bitcoin code does allow the insertion of if-then clauses. If this happens, then this.

“If the box arrives at its destination before Tuesday, pay me $249.49.“

“When the document has been uploaded and has 2000 words, send the images.”

“If Real Madrid wins the championship, pay me €1000.”

These are contracts. And if the condition is something that can be verified without a person or centralized authority getting involved, then the “then” part of the clause can be activated automatically. Instead of highly-paid professionals and reams of paper, you have a few lines of code that enact the same conditions in a much simpler, cheaper and faster process.

What kinds of conditions can be met without human intervention? Prices, for instance. In fact, financial contracts are one of the more interesting and practical applications of this technology. If this (a published price reaches a certain level, or a valuation is announced) happens, then pay a certain amount to someone, or transfer certain information.

Deliveries can also be verified online. Once a receipt is electronically acknowledged, pay the supplier.

Transfers of funds: once this amount enters this account, release this document.

Wills or last testaments: once the death certificate is filed online, funds can be released.

Even marketing: once this ranking in Google is reached, pay this amount.

Smart contracts are effectively self-executing agreements. This function can be used to create new financial instruments, new types of deals, even new business sectors.

They can be used on the Bitcoin protocol, or on separate platforms like Ethereum, which use blockchain technology, but don’t run on the blockchain. Ethereum doesn’t even use bitcoins, preferring their very own digital currency called ether. Ethereum is notably different from the Bitcoin protocol in that it can be fully programmed. Bitcoin’s flexibility in programming is very limited. It can include if-then functions, but that’s about it. Ethereum can include if-then, loops and a whole lot more. On Ethereum, smart contracts can get sophisticated.

Many other platforms are also working on empowering smart contracts: SmartContract, Symbiont, Ripple, Hedgy, Counterparty and Mirror are just some of the teams proposing innovative blockchain-based solutions. Several other platforms are in development, to enhance smart contract capability. This is going to get very interesting.

*There are ways to keep the information in Bitcoin- or blockchain-based contracts private. We’ll talk more about this later.

(For more on how Bitcoin works, see Bitcoin Basics.)

Leave a Reply

Your email address will not be published. Required fields are marked *