We’re all familiar with apps and app stores. You browse, download the app you want, and away you go.
Behind the lovely UX and UI interfaces of mobile devices, these apps are performing a specific set of instructions as laid out by their creator. It could be a game, a calendar, or a way to buy goods and services.
Smart contracts perform a very similar function.
A smart contract is a contract—expressed as a piece of code—that’s designed to carry out a set of instructions.
With smart contracts, however, there’s no middleman. There’s no person or company holding your information or verifying it. The blockchain verifies and holds information for you.
Vitalik Buterin, and the Ethereum community, believe that this is the future of the blockchain. If Bitcoin is the gold of the business world, smart contracts are the oil the business world runs on.
How does a smart contract work?
Let's imagine a conventional online transaction, without a smart contract. Let's say you want to buy a car online. In order to do so, you need:
- 📇 A listing site to hold the information on all the cars you’d like to see
- 📯 A way of communicating with sellers
- 💰 A payment system to allow you to exchange money once you’ve found your car
- 💳 Some capacity to get a refund if the car turns out to be a dud
- 👨⚖️ A way to register the change of car ownership with the authorities
Each of these components requires a level of trust between you and the site or service in question. In addition, each part of that process is typically controlled by a different company or individual.
It wouldn’t take much for a sneaky person or organization to meddle with any of the above elements, spoiling or voiding the whole process.
Why? Smart contracts are:
- Secure: They use cryptography to prevent the alteration of records.
- Transparent: Everyone can see what the smart contract is and what it’s being used for.
- Third-party free: Smart contracts don’t need a middleman to verify them. The blockchain does that for you.
- Autonomous: They work automatically, so there's no wait for human intervention.
- Accurate: Because smart contracts are written in code, they have fewer gray areas than written or spoken languages.
If this happens, do this
Usually, at the heart of a smart contract, you'll find a mechanism that says (in computer code) “if this happens, then do this.”
These already exist today. Let’s say you want to pay for something using a debit or credit card. The software your bank runs on will use the “if this happens, then do this” function in the following way:
- If the amount in the bank account is larger than the sum requested, release the funds.
- If the amount in the bank account is smaller than the sum requested, don’t release the funds.
The difference with smart contracts is, instead of a bank (or any third party) being the controller of that decision, the blockchain makes the determination.
Taking the above example and applying it to a smart contract built on a blockchain, you’d see the following:
- If the amount in the digital wallet is larger and has not been spent already, release the funds.
- If the amount in the digital wallet is smaller, or has been spent already, do not release the funds.
The exciting thing about smart contracts is it means anyone can enter into an agreement with anyone else, with the blockchain keeping a record of the whole thing.
Inside a smart contract
Like regular contracts, smart contracts are designed to enforce the terms of an agreement—whether this is an exchange of cryptocurrencies, tokenized rights, proof of identity, or practically anything else.
Smart contracts will automatically execute when pre-defined conditions are met. The operation of a smart contract can be briefly described with three main terms:
- Interconnectivity: Each smart contract usually has a restricted set of functions. Several smart contracts can be set up to connect with one another and can form more complex arrangements known as decentralized applications (dapps).
- Objects: These are the signatories that interact with the smart contract and its subjects, which are modified by the smart contract based on predefined or newly-submitted terms.
- Environment: Smart contracts are dependent on an underlying cryptographic environment. This ensures that they can operate securely, and that the data they act on is immutable and generally transparent.
For most blockchains, the code underlying the smart contracts is immutable. Several blockchains also support updateable smart contracts, however.
Who created smart contracts?
Like the blockchain technology used to power most cryptocurrencies, smart contracts were derived from earlier technologies that weren’t quite complete. In the case of smart contracts, they are derived from earlier electronic instruction execution programs that used "if/else" statements and other conditional logic to automatically produce an outcome based on the information presented.
The term “smart contract” itself was coined in the 1990s in an academic paper created by Nick Szabo, a prominent computer scientist and cryptographer that was also responsible for developing one of the earliest precursors to Bitcoin, known as Bit Gold. Szabo initially described smart contracts for a variety of basic purposes like fraud reduction and enforcing contractual arrangements, but later expanded the potential use-cases of the technology to include digital cash, smart property, and more in a 1996 paper.
Ethereum implemented a Turing-complete language on its blockchain, allowing for complex and sophisticated logic in its smart contracts.
How do dapps use smart contracts?
Dapps, or decentralized apps, can be best thought of as a bunch of smart contracts tied together.
A smart contract on its own can only be used for one type of transaction. A dapp, however, can bundle multiple smart contracts together to do more sophisticated things.
A dapp can also put a friendly interface on top of the contracts—just like apps do today.
Some notable dapps
- MakerDAO - A decentralized finance (DeFi) dapp that enables users to lend and borrow of cryptocurrencies without needing a middleman.
- Uniswap - An Ethereum-based exchange that allows anyone to swap ERC-20 tokens.
- Axie Infinity - a play-to-earn game in which players collect and breed monsters, represented by NFTs, and battle with them.
- Argent - an Ethereum wallet that uses smart contracts to abstract away concepts like addresses and private keys.
Who is using smart contracts?
Smart contracts are a relatively new technology, but they have already seen widespread implementation among crypto projects.
Smart contracts are at the heart of the entire decentralized finance (DeFi) revolution, and are used to power popular DeFi protocols like Compound, Aave, Uniswap, and hundreds of others.
But they’ve also been adopted by a whole host of corporations, and even some governments have begun experimenting with smart contracts. Some of the most prominent examples include:
- 🎮 Ubisoft: Video games giant Ubisoft has embraced blockchain in a big way; among its many blockchain initiatives, it’s crafted specially-designed smart-contracts allowing users to own, transfer, and claim rare non-fungible tokens (NFTs) based on its popular Rabbids gaming franchise.
- 🏦 ING: Dutch bank ING has co-created Fnality, a blockchain-based trade-settlement system using smart contracts. It’s also involved in a number of other blockchain initiatives.
- 🇸🇪 The Swedish government: Sweden’s government has tested a blockchain-based land registry for proving the ownership of land, which is built on smart contracts.
The future of smart contracts
Today, most blockchains have smart contract functions, with active communities of developers creating dapps using smart contracts on blockchains such as Cosmos and Hyperledger. The scope of smart contract capabilities can range from very simple based on something like Bitcoin or Litecoin, to more advanced on dapp-capable blockchains like Ethereum and Polkadot.
We’re still in the early days of what smart contracts and dapps can do. But there are companies and even governments experimenting with their potential already. They are now used for a huge range of tasks, including digital identities, supply chain management, insurance, data storage, and a whole lot more.
Smart contracts are contracts expressed as a piece of code that are designed to carry out a set of instructions.
The term “smart contract” was coined in the 1990s, in an academic paper created by Nick Szabo.
Dapps, or decentralized apps, are essentially a series of linked smart contracts.
Many leading dapps — decentralized apps — are built on Ethereum. In the next lesson, we learn what dapps are and why we keep hearing about them.