With the advent of blockchain, more companies are showing interest in the opportunities that the new technology offers. One of the most promising is the use of smart contracts, or algorithms that provide automatic fulfillment of the terms of commercial transactions. We will review this technology, the smart contract platforms, as well as the fields they can be applied to.

Smart Contract Work Principle

A smart contract is a special protocol used to enter into and execute commercial transactions, conduct transactions, and exchange assets between parties without the participation of third parties. Smart contracts automatically fulfill all the terms of a contract and contain information about the obligations of the parties and sanctions for their violation.

Nick Szabo, the well-known scientist in the field of computer science and cryptography, first described the idea of a smart contract in 1994. Practical application, however, was achieved only 14 years later with the appearance of blockchain. Even then, the Bitcoin algorithm was based on the principles of executing smart contracts, but they were not implemented in client software for security reasons.

The launch of the Ethereum blockchain in 2015 saw the mass application of smart contracts. To date, this blockchain is considered the most convenient for the implementation of not only smart contracts, but also DApps, or decentralized applications. The mandatory terms for a smart contract are:

 A decentralized distributed registry is a blockchain platform on which a smart contract will be executed.

 Parties with electronic signatures are parties to the agreement that confirm their participation and agreement with the terms of the contract via the electronic signature.

 The subject of the contract is an object located inside the environment of the smart contract itself, that is, the blockchain. Such objects can be cryptocurrencies, which provide a smart contract direct access to the subject of the contract without human involvement.

 The condition is an algorithm that describes how items of the subject of the contract are logically executed by mathematical means.

Ethereum allows developers to program smart contracts through Solidity, a JavaScript-like programming language created specifically for writing self-executing contracts. Solidity is a Turing-complete cross-platform programming language, but in practice, it is used primarily on the Ethereum platform.

Platforms for Smart Contracts

In addition to Ethereum, the implementation of smart contracts is offered by the following platforms:

Ethereum Classic. The network occurred in July 2016 as a result of a hard fork in the Ethereum network. This hard fork was the solution to the problems that had arisen due to the attack of hackers on the "subsidiary" project called The DAO. 36 million Ether was stolen from the latter's wallets. To return the depositors' funds, members of the Ethereum Foundation decided to roll back the entire network to a certain point before the DAO attack and start recording the blockchain all over again. This decision, however, was not supported by a certain part of the Ethereum community, who considered the hard fork an unacceptable solution to the problem. So, the network created as a result of the hard fork became Ethereum, and the old blockchain continued to exist under the name Ethereum Classic. Both versions of the blockchain support the development and launch of smart contracts written in Solidity.

NEO is a non-commercial blockchain project launched in China in 2014 to develop a decentralized "smart economy." Many experts note that NEO excels the Ethereum blockchain in many respects, including the principles of working with smart contracts. To fulfill specified conditions in the NEO network, the smart contracts are used by virtual machines (VMs) that automatically optimize the smart contract code before launching it and organize it so that it works with the highest efficiency. In the long term, this approach will be more efficient, although code reorganization requires more time to run and be implemented than in Ethereum.

Nxt is a decentralized, open-source site for launching secure DApps, such as electronic payment systems, instant messengers, and trading platforms. The platform was launched in November 2013 with the goal of generating its own tokens on the NXT blockchain with unlimited use cases. Also, the NXT platform contains a limited set of templates for smart contracts, and users cannot run their own smart contracts.

Jincor is a blockchain platform that allows any business to work with smart contracts and cryptocurrency payments without incurring any legal, technical, or financial costs. The platform concluded its ICO in November 2017, and the Alpha version of the smart contract designer is scheduled to be launched by the end of 2018. This designer of smart contracts will be applicable in various areas of business and jurisdictions, providing convenient crypto payments and a decentralized arbitration system to resolve disputes related to the execution of smart contracts.

Qtum is a Chinese hybrid blockchain platform launched in May 2017 aiming to combine Turing-complete smart contracts and DApps for convenient business use. The platform's cryptocurrency combines the capabilities of Bitcoin with the Ethereum Virtual Machine and is compatible with both ecosystems. Smart contracts of a new type, called master contracts, work on the platform. The peculiarity of the new contracts is that control over the termination of a contract or its signing is completely in the hands of the participants. Also, the developers launched a mobile version of the platform, which opens the blockchain technology to a wider range of users.

Ubiq is an open-source, decentralized platform for launching and implementing smart contracts and DApps that work in automatic mode. The platform was launched in September 2014, and in January 2017, it replaced the Jumbucks blockchain for UBIQ, which is based on Ethereum. The Ubiq project is focused on providing automated smart contracts with high bandwidth for business, while developers position the platform as a supercomputer for work with the blockchain.

Urbit is a network of personal cloud P2P servers launched in 2016 to store data, run programs, and connect with other users. In September 2017, the Urbit project added support for smart contracts of Ethereum. According to the company's blog, the smart contracts will be based on the ERC20 standard to allow owners of the Urbit "cloud real estate" to cryptographically protect their assets. Thus, Ethereum smart contracts will perform the function of protecting users.

Practical Applications of Smart Contracts

The use of smart contracts simplifies work in many areas, increasing trust between business partners and the level of security of ongoing transactions, as well as significantly reducing costs.

According to a study of the Accenture consulting company, the banking sector alone can save up to $12 billion annually using smart contracts and blockchain. Also, one of the potential areas for the deployment of smart contracts is the electoral system as they make it possible to completely exclude interference and manipulation in the voting system. The use of smart contracts will save time and allow for monitoring the system in real time in logistics with complex supply chains in which each link must coordinate its actions with other participants in the process. In management, the use of smart contracts will make payments to employees and customers upon the achievement of certain conditions described in the smart contracts.

Disadvantages of Smart Contracts

Among the shortcomings of smart contracts, experts note the following:

 Costs and complexity of introducing new technology. Understanding of programming is necessary for implementing smart contracts. To create a reliable smart contract reflecting the needs of the company, it is desirable to have an experienced developer on staff. Moreover, most users still do not understand how the algorithms which smart contracts are built on actually work.

 The human factor. Since a smart contract is a complex algorithm that must take into account many factors and conditions of the transaction, it is necessary to prescribe many development options for its preparation. The more complex the process, the harder it is to create a smart contract, and the higher the chance of making a mistake. According to Motherboard, at the moment there are more than 34,000 smart contracts on the crypto market with errors in the code, which puts companies at enormous potential risks.

 Legal status. Cryptocurrencies are used for the work of smart contracts, and the legislative status of cryptos is not defined in all countries. Moreover, if the government decides to create a separate legal framework for smart contracts, entrepreneurs may face a number of new problems.