Those of us in the tech world are constantly serving as translators, explaining technical concepts to our less-technical co-workers, friends, and family. This is especially tough when it comes to emerging technology that can potentially change the way we do business, like blockchain. Have you tried explaining blockchain to your parents? If so, you might’ve spent a good bit of your time reassuring them it’s much bigger than just Bitcoin and the Silk Road.
Smart contracts in particular have the potential to provide tangible business value and transform the way we do business. But what exactly is a smart contract?
It starts with an agreement
About 25 years ago, legal scholar and cryptographer Nick Szabo came up with the idea of a smart contract. To make the concept accessible for people who didn’t know much about cryptography, he offered the analogy of a vending machine.
A vending machine is a physical device that implements the conditions of an agreement like this:
- If you put $2 in, soda comes out
- If you don’t put $2 in, soda doesn’t come out
- If you don’t put $2 in and soda still comes out, that’s bad
The vending machine encodes this set of rules and keeps it somewhat secure (or at least as secure as it needs to be to to protect soda bottles).
The idea of a smart contract is similar. It’s a computer program that directly controls digital assets using the conditions of an agreement. The kind of direct control here is important: it’s not a computer program that makes a recommendation to a guy about how the guy should control the digital asset. It’s a program that controls a digital asset.
Today, Szabo’s concept of the smart contract is becoming a reality, thanks to the popularity of blockchain. With smart contracts, the computer program itself has complete control of where the money goes. By creating a self-executing contract, you can reduce risk in fields that usually require a “middleman.”
A real-world example
Still a little lost? Brian Behlendorf, Executive Director of the Hyperledger Project, explains it like this.
Imagine you’re a farmer who wants to buy insurance, so you’ll be reimbursed if there’s a drought. Per your contract, if the temperature is more than 100 degrees for more than 100 days, you should get an insurance payout of $10,000.
Today, you’d probably have to collect documentation about the weather and submit it to your insurance company. And then, you’d wait. Maybe you get reimbursed, maybe you don’t. You might find out that you have to submit additional documentation. Or that you waited too long to file your claim.
With a smart contract, at the end of summer, the insurance company would execute your policy. They’d check public weather records for your location, and if they found that the weather had been over 100 degrees for more than 100 days, they’d automatically transfer the money to you. This eliminates counterparty risk and provides huge efficiencies for the insurance company, while also providing a better experience for you, the farmer.
How are smart contracts different from other kinds of automation?
Some elements of smart contracts may sound familiar. After all, most bank accounts run on computer programs governed by a set of rules. But smart contracts are different from traditional automation technology in several key ways:
- Control: In the banking example, your bank has ultimate control over your bank account. They can add or subtract money at will. In contrast, with a blockchain ecosystem (if it’s properly set up), there is no single source of control. Multiple parties are constantly checking and double checking the ledgers, and if something doesn’t follow the predefined rules, it’s rejected.
- Transparency: Because all participants of a blockchain ecosystem run the same code, the logic of a smart contract must be visible to everyone. Anyone can look at a smart contract. If they like the logic, they can use it. The transparency is both a benefit and a drawback. While it’s helpful for all stakeholders to agree on what should happen in the contract, the stakeholders aren’t the only ones who can see what happens. Everyone on the network can see the terms of the contract. This underlying tension between the importance of privacy and validation will likely need to be addressed before smart contracts can truly reach mainstream status.
- Validated Code: Bank accounts are governed by logic, which is code executed on the bank’s computers. While there are internal controls, there’s no external validation. With smart contracts, logic is run in parallel on all participating computers, and the results are confirmed by all participants. In theory, people can’t cheat a blockchain.
- Flexibility: Your online banking application may let you schedule recurring payments and a few other basic functions. But you probably can’t make your checking account transfer $20 to your savings account every time you buy a cup of coffee and have it put all that money back in your account if you go 30 days without buying coffee. A “Turing complete” smart contract can do anything a normal computer can do, which opens you up for many more possibilities.
What’s next for smart contracts?
Decentralization and scalability are currently at odds, but developers are searching for ways around this. Just last week, Ethereum founder Vitalik Buterin said the network is a bit too slow for most mainstream applications, but his team is actively looking for solutions.
“Bitcoin is processing a bit less than three transactions per second,” Buterin said. “Ethereum is doing five a second. Visa does thousands a second. Most stock exchanges do hundreds of thousands a second.”
He added that Ethereum’s current speed works fine for most niche applications, but it’s a hindrance to widespread adoption of blockchain by large enterprises. When asked how long it would take Ethereum to reach “Visa scale,” Buterin said he expected the network to be ready in the next two years.
Key considerations before getting started
It’s important to remember that smart contracts and other blockchain solutions aren’t a silver bullet. The technology solves a lot of problems we’re currently facing with data security, privacy, and interoperability, but it isn’t the right fit for every problem. In future blog posts, we’ll give you tips on how to know if blockchain is right for your project.
Working on a smart contract project? Our engineering team can help. Get in touch with one of our blockchain experts to learn more.