You can find my original post for bitprime blog here.
As you may already know (or not), blockchain is a technology that creates trustless, immutable, uncensored and decentralised networks to transfer value. Meaning, we no longer need to deposit our trust in a centralised entity like a bank or institution to validate the transfer of value between peers.
To illustrate the above statement better, we can use Bitcoin to show how blockchain solves the “double spending problem”.
The Double Spending Problem
Let’s say that you’re sending an email to your coworker and you want to attach a pdf file. When your coworker receives the email and opens the pdf, he or she sees the exact pdf file that you sent from your computer. Now both have the same pdf file, which is useful. That’s how most file transfers work these days. Which is great, but what happens if you want to send a unique asset? What happens if you’re going to send money, for example? We need something that validates that if you send $100 to your coworker, you don’t have that $100 anymore. That’s why we invented banks: to keep a record of transactions and to trust those institutions to validate the money moves from one account to the other.
The double-spending problem is the question: How can we ensure that we don’t spend the same amount of money that we previously transferred to another party?
That is what Bitcoin solves in a decentralised way, with no need for a central authority.
But that’s only one case (a big one): Transfer of money. But what happens with other unique digital or physical assets? For example, real estate, property rights, or rare collectible items in an online game? The way we create transactions on these examples is way more complicated than just sending money from one person to another. There are many parties involved and many rules to follow to execute a transaction. Therefore there is a need for a different blockchain, with different rules and more flexibility to allow more use cases.
The History Behind Smart Contracts
The first time the world heard about Smart Contracts wasn’t with blockchain technology; it was in the early 1990s by computer scientist, lawyer, and cryptographer Nick Szabo, who is one of the precursors of Bitcoin and Blockchain technology. At the time, it didn’t have as much resonance in the broader community, as it does now.
Fast forward to 2008, Satoshi Nakamoto publishes the Bitcoin whitepaper, and the blockchain universe emerges. From that point on, the crypto community grew, and by 2013, many ideas were floating around Bitcoin and how it should keep evolving. One of those ideas was to expand the Bitcoin programming language, Scrypt, to include more operations in the language so that developers could program more complex scenarios in which the transfer of value is made.
This idea, initially presented by programmer and publisher of Bitcoin Magazine, Vitalik Buterin got rejected in the Bitcoin community — the main reason being that Scrypt language was specially designed to lack those features for security reasons. The Bitcoin language is “Turing incomplete” by design, meaning developers don’t have all the complex operators and structures that exist in most of the other programming languages. Being Turing incomplete ensures that there’s less room for bugs in the code, making it more secure, but at the same time, less flexible.
From that refusal, Vitalik Buterin wrote the white paper of Ethereum. A general-purpose blockchain with a “Turing complete” programming language called Solidity that allows developers to program a limitless amount of possible scenarios. Later on, similar projects appeared, EOS or Cardano are two examples. The code written on these types of blockchain is called Smart Contracts.
What Exactly is a Smart Contract?
For a formal and technical definition, a smart contract is a piece of software code (computer program) that lives in a decentralised environment (Blockchain). This type of code is immutable, transparent and automated — meaning everyone can see it, no one can modify it, and it can execute by itself with no need for third party intervention. Smart contracts act as agreements between parties, where the terms of the agreement can be programmable. The parties that execute smart contracts can be humans, machines or organisations.
Upon execution, Smart Contracts allow the performance of credible transactions without third parties. These transactions are trackable and irreversible. The entire process is automated and can complement or substitute legal contracts. This fact is one of the main aims of smart contracts — to provide security that is superior to traditional contract law while reducing transactional costs associated with contracting.
A good example, to understand how Smart Contracts work, is the vending machine. In this type of scenario, the user interacts directly with the vending machine and no intermediary (say a seller in a store). When we input money, the software checks how much money we’ve put in. Then, if it’s enough, we have clearance to choose a drink. Once selected, the machine drops the “asset” for us. While this is a straightforward transaction, it clearly illustrates how a contract can work. In the digital world, the asset can be anything we want, as we have already seen when describing the double-spending problem. In a smart contract, we can uniquely represent any asset in the digital or physical world.
Contracts Got “Smarter”
Imagine a mortgage agreement. This type of arrangement is very complex, with many rules and conditions to meet. Many details need to be included in them, such as income mortgagee, credit score, as well as outgoings. There are a lot of third parties involved in checking these details, making the process lengthy and troublesome for the lender as well as for the loan applicant. Smart Contracts can be extremely useful in this scenario because they can remove the middlemen through code, automate the process, and all the information can be stored in a location accessible by all parties at all times. Once settled in the blockchain, the transaction becomes an irreversible truth, creating a ledger where anyone can check the records of the mortgage.
Now imagine an inheritance. Smart contracts can automate the transfer of assets from an estate without needing an executor. For example, envision a smart contract where a person “checks in” with his or her private key every year to prove they are alive. When that person dies, they can no longer check-in. The smart contract will realise that more than a year has passed without a check-in, and it will automatically distribute the assets of a deceased person to his or her beneficiaries. In this example, the Smart Contract has completely removed lawyers, notaries and asset managers from the process.
The ICO case
A type of smart contract that gained a lot of popularity in 2017 was the ERC20 token one. This smart contract defined a new standard for creating a custom cryptocurrency coin; it described the rules for currency distribution, the total supply, and how the transactions worked. The ERC20 standard contract allowed for the creation of thousands of new cryptocurrencies. The funding process for these new projects was called an Initial Coin Offering or ICO. Each project had a different smart contract with the rules of that specific coin. Investors would purchase Ethereum native currency (ETH) as the ICO’s were held in the Ethereum network. They would then send ETH to the contract address, and the contract would send them the coins of that specific Smart Contract. Each coin or token would have a different use case bound to the context of the particular project. These coins were then tradable in different online exchanges.
As you can see, smart contracts could change our entire economy in ways that we still don’t realise! These contracts have many real-world use cases. Banks and other financial institutions could use it for loans and automatic payments. Insurance could use this technology to process claims. Postal companies could use it as payment on delivery. Supply chain solutions can implement smart contracts for numerous operations.
Benefits of Using Smart Contracts
A few of the many advantages of using smart contracts are listed below.
If the smart contract is running on an open blockchain, as we have previously stated, it is filled with all the terms and conditions by which different parties engage. The code is available for anyone to see, in full detail, step by step, its planned execution. This openness eliminates the chance of disputes and issues arising at a later stage. Moreover, the detail and precision of the software code make it very clear to all parties the outcomes of the execution, eliminating miscommunication. A common term used in smart contract development is: “Code is law”.
All rules and conditions are written in the Smart Contract before it’s execution. The level of detail and accuracy needed to code those rules makes the contract a comprehensive agreement. When the Smart Contract executes automatically, it gets everything correctly done. Comparing that with regular legal contracts, there are chances of error as the person who is responsible for implementing it can make mistakes, or misinterpret the legal jargon.
The execution of a traditional contract might take several days, as a lot of intermediaries are involved with different schedules and times, and even getting paper documentation from law entities can be a bureaucratic process that consumes tons of time. Smart Contracts run through the aid of the internet as they are nothing but pieces of software code. Therefore the speed of completing a transaction is way faster than traditional contracts.
Safety and Efficiency
Strict and detailed rules define the automated implementation of smart contracts. Execution and validation of transactions based on cryptographic verification mean that smart contracts meet the highest standards on safety and efficiency.
With smart contracts, all transaction details store on the blockchain, so anyone among the involved parties has access at any given time. This immutable storage makes the blockchain the source of truth for any dispute regarding the contract terms in the future.
Running Smart Contracts can save up a lot of money. By removing intermediaries, we also remove the cost of hiring them. Moreover, as stated earlier, we also save money as paper-based documents are not involved in any of the processes.
By far, one of the most valuable benefits of blockchains is their trustless networks. The transparency and security of smart contracts running on blockchain make them trustworthy in most environments like business or government. Consensus algorithms used on blockchain networks ensures that all parties are correctly incentivised to do the right thing.
Smart contracts eradicate the use of paper. On the one hand, this saves costs while on the other, helps companies save their paper usage and promotes their contribution towards a more “green” society.
The Current State of Smart Contracts
We are at the very start of this revolution. Smart contracts don’t have broad adoption yet, and there are still many challenges to face before there is mass adoption. In 2017, it became evident the power and the dangers of smart contracts with the ICO boom; millions of people made a lot of money, while many others were scammed. Companies are starting to recognise the power of smart contracts, and many of them are experimenting with different types of Blockchains and use cases, but it is still a work in progress. Governments are not sure which direction to take with regulations and bans. In this aspect, China seems to be leading the way on crypto adoption.
One of the main challenges smart contract platforms are facing is scalability. Currently, the Ethereum network can process around 17 transactions per second. As Vitalik stated a few months ago, it must process approximately 100,000 transactions per second to be a viable platform for the future. An illustrative example of this is the CryptoKities project that, back in late 2017, gained so much popularity it clogged the network.
Ethereum is not the only Smart Contract platform, but it’s the biggest one, with the most developers and projects on it. Major competitors of Ethereum are EOS and Cardano. They are other general-purpose blockchains with different approaches to their Consensus algorithms and programming languages.
Many well-known crypto personalities in the space compare the current state of the industry with how the internet was in the early ‘90s.
The Future of Smart Contracts
Smart Contracts will change how we do business in the future. Let’s look at the most common case that we discussed earlier: Legal Contracts. Governments and companies rely on legal contracts based on the laws of a country. The lawyers are the “coders” of our current system; they know how to write contracts and how to execute them. With this new paradigm, lawyers may have to learn how smart contracts work and become something close to a software developer to keep their work relevant. The legal sector may be one of the most affected in the future.
Smart contracts are so disruptive that it would be pointless to predict how it’s going to turn out. As technology gets more efficient, we will start to see more and more innovative projects. The only certainty is that we still haven’t reached the full potential of this technology.
There’s no doubt Smart Contracts have the potential to change our entire economy and society. Whether through the supply chain, voting or autonomous organisations, it’s easy to see that the potential is there. If we think about other technologies like AI, Robotics and IoT mixed with blockchain technology and smart contracts; we are looking at a whole different world. The great challenge in our future won’t be the development of these technologies nor the mass adoption, instead — their purpose. Are we moving towards a more equal and inclusive society because of them, or a more segmented and unfair world? The beauty of blockchain lies in the decentralisation that gives us the power back. It is our responsibility to use it to create a better world.