Many applications built from blockchain technology incorporate smart contracts. Blockchain technology provides a secure, unchangeable platform with a permanent record of events — ideal for the fair execution of an agreement. Proponents of the concept say that smart contracts will eventually replace lawyers (insert bad lawyer joke here). Even if we don’t get that far, the business community could definitely benefit from a technology that can facilitate property, currency and service transactions without the need for a 3rd party.
How Smart Contracts Work
A smart contract is a computer program that ideally enforces the terms of an agreement. The smart contract is based on the idea that a computer must objectively execute code that it receives without question. Ironically, it is the computer’s lack of active intelligence and the inability to change its directives that make the contract more efficient than a human 3rd party.
Many users compare the smart contract to the vending machine. If you insert $1 and hit A2, you get a chocolate bar. You don’t need the machine technician standing beside you to verify anything. If you put in less than $1, you don’t get the chocolate. If you hit A3, you don’t get the chocolate. If you do both things correctly, the machine can’t arbitrarily decide to increase the price or give you chips. You must fulfill your end of the contract, and the machine must fulfill its end.
For this reason, the smart contract is also known as the “self-executing contract.” Truthfully, these types of contracts have been in mainstream use since Pong and Pac-Man. When you use the joystick to tell Pac-Man to go left, he goes left. Computers in general are based on this notion of objective and exact execution.
The difference in the current generation of smart contracts is scale and purview. Smart contracts aim to make buying a house as easy as navigating Pac-Man away from ghosts.
Do Smart Contracts Need Blockchain?
The smart contract and blockchain are very closely related. To execute a contract with the expanded protections for big transactions like real estate, the immutability, permanence and security of blockchain technology is essential. The Ethereum platform is the most well-known example of this relationship. First described in 2013 by Vitalik Buterin, Ethereum was announced in January 2014 partly as an answer to Bitcoin’s shortcomings in facilitating smart contracts.
On Ethereum, a smart contract just means “a block of code.” The code is a contract because it is guaranteed to generate the exact same result regardless of who runs it. Developers produce dApps (decentralized applications) that can work as financial products, video games, voting systems and a host of other things using this code. Because the products have use, the contract has value — value that a user unlocks after satisfying the preprogrammed conditions.
The value associated with smart contracts is quantified through the Ether cryptocurrency, a currency with a $27 billion market cap. Ether is available to trade on every major crypto trading platform. Many people and publications mistakenly refer to the cryptocurrency Ether as Ethereum.
Although Ethereum introduced the smart contract to the nontech community, there are many other projects based around the concept. Some of the more well received include Hyperledger Fabric, NEM, Stellar and Waves. Platforms like Hyperledger do not have a cryptocurrency associated with them while others like Stellar do.
How to Make a Smart Contract
There are companies in place that will do the heavy programming if you pay them to create a smart contract for you. If you want to take full advantage of the idea, learning the basics of a smart contract programming language is a good idea. Two concepts, the Ethereum Virtual Machine (EVM) and Gas, are crucial to learn.
- Gas: You must pay an Ether miner to put your contract on the Ethereum blockchain. This payment is called “gas.” The more complex your contract, the more gas it requires.
You’ll be programming your contract on EVM and paying gas to get it executed.
Just like you need a toolkit to build a house, you need a toolkit to build a smart contract:
- Truffle: You will test your smart contract here before deploying it, an essential step.
- Node.js: Node.js is a runtime environment that also tests contract functionality.
- Parity: Parity manages tokens and accounts.
- Code editor: This tool helps you manage the code editing process. A commonly used code editor is visual studio code.
- Ethereum wallet and browser: You will need a digital wallet like MetaMask to collect your payment and browse the Ethereum network environment.
Here are the steps that every contract will move through:
- Connect with a client. As the contract creator, you are the tasker. The client is the entity that needs work done. You will both agree on a “payAmount” that will be entered into the contract. This is separate from the gas you will pay to get the contract executed on the EVM.
- Code a test. Before programming your contract into Solidity, you can test it in a “practice” network. Your Ethereum browser should have test networks like Robsten, Goerli or Kovan, among others. Populate your wallet with dummy Ethers after writing the program to test it.
- Rewrite the contract in Solidity. Once your contract executes in the test network, you are ready to code it into Solidity.
- Compile and deploy. Create a .sol extension file from your new Solidity contract and deploy it on the Ethereum network.
Types of Smart Contracts
A contract can represent any kind of valuable asset you can think of. Here are a few of the most common types of smart contracts:
- Smart legal contract: Perhaps the most obvious application of a tamper-resistant cause-and-effect protocol, the smart legal contract ideally puts arguing about the details of a legal agreement to rest.
- Application logic contract (ALC): Meant to combine the utility of the blockchain with the internet of things (IoT), ALCs help define communication protocols between devices. For instance, an ALC could automatically turn on your home alarm when everyone has left the premises.
- Decentralized autonomous organization (DAO): The DAO is a community on the blockchain that is defined by smart contract rules. For example, a DAO could limit entrance into a private venture capital group until a prospect provides the proper ante.
Smart Contract Code Example
Smart contracts must be published publicly so that the source code is always available. You can find the source of code of dApps using the State of the dApps search engine. Etherscan is another website for easy access to Ethereum blockchain smart contract code.
Visit this site for an example of a fixed supply token contract.
Smart Contracts, Better Business
In the very near future, we will use smart contracts to streamline mortgage payments, develop products faster, research vaccines, improve insurance claims processing, deter voter fraud and prove ownership of real and intellectual property. We’ll do all of this while reducing the need for expensive 3rd parties to interpret agreements. With less time needed to do business, hopefully, this will give more time to build business.