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, 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.
The only difference is, with smart contracts there’s no middleman. There’s no person or company holding your information or verifying it. The blockchain verifies and holds a record for you.
How does a smart contract work?
So, you want to buy a car online without a smart contract. 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
- You’ll also need to register the exchange of car ownership with the authorities
Each of these points requires you to trust the site or service you’re accessing—and a lot of the time, each part of that process is controlled by a different company or individual.
It wouldn’t take much for a sneaky person or organisation to change any of the above, making the whole process void.
Why? Smart contracts are:
- Secure – They use cryptography to stop people altering records.
- Transparent – Everyone can see on the blockchain what the smart contract is and what it’s being used for.
- No more middlemen – Smart contracts don’t need a third party to verify. The blockchain does that for you.
- Autonomous – They work automatically, so you’re not having to wait for someone to push a button.
- Accurate – Because smart contracts are written in code, they don’t rely on the grey areas of a language and what words mean.
If this happens, do this
At the heart of a smart contract tends to be 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” 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
So 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 bit 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.
How do dapps use smart contracts?
Dapps, or decentralized apps, can be best thought of as a bunch of smart contracts tied together.
A dapp can also put a friendly interface on top of the contracts—just like apps do today.
Some notable dapps
- Augur – A tool that allows anyone to speculate on derivatives
- 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 ERC20 tokens.
- CryptoKitties – Unique NFT-based crypto-collectibles that can be “bred” using smart contracts.
- Argent – an Ethereum wallet that uses smart contracts to abstract away concepts like addresses and private keys.
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 other conditional logic to automatically produce an outcome based on the information it is presented with.
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 elaborated on the potential use-cases of the technology to 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.
Smart contracts aren’t always perfect
Although smart contracts are generally considered to be a “trustless” way of enforcing agreements and logic, they aren’t without their fair share of problems.
For one thing, smart contracts are immutable on many blockchains. This means that once launched, they cannot be changed or upgraded, which can lead to disastrous consequences if there are underlying issues with the code. This is perhaps best highlighted by the 2016 Ethereum DAO hack, which saw an unknown hacker siphon off millions of ether (ETH) by exploiting a loophole in the DAO’s split function.
Unknown and novel attack vectors can also often be exploited, usually ending with investors losing money. This was seen in September 2020, with the collapse of the test version of Eminence, a project by Yearn Finance’s Andre Cronje. It was exploited for $15 million by an unknown hacker after a huge number of investors sank their money into it.
Likewise, simple bad code can render the smart contract effectively useless. This was seen with the collapse in August 2020 of the DeFi yield farming project known as YAM, which used unaudited smart contracts and was thwarted by a critical bug that rendered its governance feature useless.
The future of smart contracts
Nowadays, most blockchains have smart contract functions, with active communities of developers creating dapps using smart contracts on blockchains such as Cosmos, NEO and Hyperledger. The scope of smart contracts’ capabilities can range from very simple on something like Bitcoin or Litecoin, to more advanced on dapp-capable blockchains like Ethereum, Tron, and Polkadot.
They are now used for a huge range of tasks, including digital identities, supply chain management, insurance, data storage, and a whole lot more.
We’re still in the early days of what smart contracts and dapps can be used for. But there are companies and even governments experimenting with their potential already.
- Government – Countries like Estonia have already started using Blockchain to run the state.
- Supply chains – Startups like Provenance are helping manufacturing companies use blockchain to buy and ship goods
- Insurance – Startups like Etherisc are helping create insurance platforms for the aviation and farming industry.