March 8, 2016
What are smart contracts and how did they start?
One of many advantages of distributed ledger technology is a "smart contract." The smart contract is quite a simple concept. The aim of a smart contract is to reduce the human factor in transaction processing and verification. A software protocol automates and self-executes an action when certain conditions are met. The automation and self-sufficiency can significantly cut the costs and diminish the risks for businesses and individuals. The cost-efficiency comes from the reduction of overhead necessary to initiate, execute and enforce contracts.
Smart contracts started with Nick Szabo, the author of the Smart Contracts: Building Blocks for Digital Markets paper, published back in 1997. The concept started with... Vending machines. Vending machines have been executing the simplest version of a smart contract for almost 20 years now – they release an item after the correct value is submitted and the selection of an item is made.
As smart contacts automate exchanges based on specified conditions, they have a potential to be applied in a wide range of cases. The idea of a smart contract has been explained by organizations quite extensively. Let's look at some of applications and challenges mentioned across various sources.
Explaining smart contracts almost 20 years ago, Szabo brought an example of a car loan from the bank. A smart contract between a bank and a car buyer would provide the ownership right to the buyer as long as the person makes loan payments to the bank. In case the buyer fails to make a payment, the smart contract can trigger an action to return the control right over the car to the bank. An external trigger in the shape of a late payment will automatically initiate a blockage of the car and release banks from additional expensive actions like sending an agent or hiring a collecting agency to resolve the issue. The processes are transparent, absolutely clear and automatically executed.
Auto-enabled access to rental property with a digital key is another way of facilitating and executing a digital contract in the physical world. It also contributes to the safety of a sharing economy, Airbnb in particular, when the digital key to the premises is disabled automatically after the contract expires.
Smart contracts could be successfully applied in e-commerce, where they can significantly facilitate the trade by reducing counterparty risk and the costs of transacting by minimizing the human factor in the process.
Smart contracts can also find an application in M2M communication, allowing devices to perform transactions autonomously given a predefined criterion. In the days of autonomous self-parking cars, the car will be able to pay for the parking lot on its own without a necessity for a passenger to be present.
Any case where the value needs to be released upon met conditions is an area of a smart contract application. Funding (scholarship, discount, sponsorship, donation, etc.) can be automatically released once the conditions for each case are met and verified digitally. Digitally executed due diligence for startups can automatically release the funds as a final step of an investment.
Even gambling is seen as an application area for blockchain-enabled smart contracts. Automated fund release can happen in favor of a winning party according to the outcome of the game.
Real estate ownership rights transfer for any reasons (sale, heritage, etc.) can be triggered by the release of will regarding a particular property. Smart contracts' application with real estate eliminates the debate and human politics when it comes to heritage distribution, for example. Upon the primary owner’s death, a digital will can automatically trigger the contract execution in favor of a primary beneficiary.
Any digital property ownership can be managed with smart contracts. Digital content ownership can be established and manipulated in a simple and transparent way with smart contracts.
Challenges related to smart contracts
With all possible advantages and applications of smart contracts, there are still certain challenges to resolve. Let’s look at some of them:
The initiation of a digital event from a physical world could be one of the challenges of a smart contract. While it’s quite a simple task with digital transactions, the complication occurs when it comes to the initiation of a digital action from the physical world. There are three possible solutions for this task: multi-signature transactions, prediction markets and oracles.
Multi-signature transactions require a trust agent to be involved to ensure that the conditions for triggering the contract between the parties have been met and the contract can be executed.
With prediction markets, the core idea is that the crowd can make a more accurate prediction of the events than a single expert. While building prediction on certain events, with some economic incentive, crowds can be involved in providing a genuine opinion. The economic incentive can be built in a way so that it rewards the most accurate prediction. Hence, the crowd will be incentivized to act as accurate as possible.
Augur is an example of such a project. Augur is an Ethereum-based decentralized prediction market that brings together three core elements into one beautiful solution: the wisdom of the crowds powering prediction markets that are decentralized.
Oracle is the third possible solution for triggering digital events from a physical world. Oracle services are defined as third-parties that are verifying the outcome of the events and feed the data to smart contracts data services. However, there is a problem with oracles themselves. Who can ensure the trustworthiness of an oracle? The Oracle may draw the result from an infinite network, but where is the guarantee that even if each node can be trusted, the result is correct and can be trusted as well?
No obligations to execute the contract is another problem to solve with blockchain-enabled smart contracts. Individual transactions are being executed by miners in blocks that are sent through the network for nodes to validate and execute smart contracts on. However, the miner is not obligated to include a particular transition in a block, which means technically the transaction may go ignored for any reason. This can be a significant problem with high-value transactions.
The problem with scalability is inherent to distributed ledger. At this point, the model where each node executes a smart contract doesn’t seem to be scalable. It is believed that when the scale is involved, the best option is to divide the bulk of tasks among separate networks. However, it will transform the core concept of a distributed ledger. The word distributed will gain a different meaning and execution. Certain types of operations won’t be distributed among individual nodes anymore; they will be distributed among networks. It can potentially completely transform the decentralized, uncontrolled nature of distributed ledger, which is kind of a selling point for it at the moment.
Another problem arises from scalability. Task distribution among small networks will eliminate the main advantage seen in blockchain before – its decentralized nature. Decentralized ledger will not be so decentralized anymore if scalability becomes a priority and sub-networks specialized to perform particular parts of an operation are formed.