What Are Smart Contracts?

23 Apr 2019

Smart contracts are computer programs which contain scripts that are automatically executed when the requirements of a particular set of conditions have been met. In a nutshell, smart ‘contracts’ are just lines of code.

Prominent legal scholar and computer scientist, Nick Szabo first used the term “smart contract” in 1997. Notably, this was more than a decade before blockchain technology was used to implement the Bitcoin protocol by Satoshi Nakamoto.

Although the Bitcoin network does not directly reference smart contracts, second and third-generation blockchain-based platforms such as Ethereum (ETH) and Nxt (NXT) began experimenting with and integrating smart contracts onto their respective platforms. These pre-programmed scripts are now increasingly used to manage routine business processes and personal matters.

Smart Contracts For Business And Personal Matters

For example, crypto pioneer and Mighty Ducks child actor Brock Pierce and his programmer wife Crystal Rose have a smart contract which they renew each year. Their smart contract is used to manage their digital marriage certificate. Both Pierce and Rose decide every year whether or not they want to stay married to each other by updating their smart contract.

Meanwhile, businesses also use smart contracts to ensure the integrity of counterparty reference data. In 2016, large financial institutions and data management organizations including Barclays, Credit Suisse, Thomson Reuters, KBC, and SIX began using Ethereum-based smart contracts to verify data obtained from counterparty sources through anonymous reconciliation methods.

When Was The Term “Smart Contracts” First Used?

In the late 1990s, Szabo proposed, for the first time, the use of a distributed ledger to store smart contracts. As explained, these contracts are small computer programs which reside on a blockchain network. In order to better understand how smart contracts function, consider the example of Kickstarter, a fairly large crowdfunding platform.

Those seeking funding for their project or business can create an account on Kickstarter, set a fundraising goal or target, and begin collecting investments (after being approved) from others on the platform who might be interested in a user’s or company’s product. Kickstarter’s managers act as the third-party or intermediary between a project’s supporters and its product development team.

Kickstarter Requires Trusted Intermediaries

What this means is that both the project’s developers and its supporters must trust Kickstarter’s management in order to reliably conduct transactions between each other. If the project manages to receive adequate funding, then the project’s founders expect Kickstarter’s staff members to give them their money

Meanwhile, supporters of the project want their investments to go to the intended recipient, which is usually a project’s product development team. In this case, the project supporters also have to trust Kickstarter to manage the transaction. However, smart contracts can be used to design a similar system which does not need a trusted intermediary like Kickstarter to facilitate transactions.

Automating Business Processes, Eliminating Third-Parties With Smart Contracts

A smart contract can be created in a manner that it holds all the received investments until a project has reached its fundraising target. Supporters of a project can then transfer their funds to the smart contract associated with their initiative. If a project receives sufficient funding, then the creator of the project is able to, through the smart contract, automatically receive all the investments made by supporters of the business idea.

Should a project not reach its fundraising goal, then the money is automatically refunded to anyone who invested in the initiative. This process is also handled by the same smart contract which is used to manage all other transactions associated with a particular project. The security of this process is ensured because smart contracts reside on a blockchain network which is distributed by design. Because the transaction ledger is distributed (or decentralized), no single entity is in complete control of the network’s assets.

Why Should Users Place Their Trust In Smart Contracts?

Since smart contracts are stored on blockchains, they inherit some of the distributed ledger technology (DLT)-based network’s key properties. Smart contracts, like properly implemented blockchains, are immutable and they’re distributed. Immutable smart contracts cannot be altered after they’ve been issued, unless the creator (and other authorized accounts) decides to make changes.

However, the owner’s actions are also controlled based on strict conditions specified, or coded, into smart contracts. This means that the creator of the contract also has to adhere to certain rules and conditions, like all other parties to that smart contract. Moreover, smart contracts are distributed so all network participants are able to validate the output of these business logic agreements.

These useful design features have now been used by banks to issue loans to customers based on their financial status. For instance, a user’s bank balance, their credit score, and salary statements could be used to evaluate whether they are allowed to take out the type of loan they have applied for.

Ethereum And Bitcoin Network Support Smart Contracts

A financial institution’s management could also use smart contracts to manage automatic payment schedules. Insurance firms could use smart contracts to help facilitate claims processes. Postal companies may also use smart contracts to automatically handle delivery and payments.  

At present, there are several major blockchain platforms that have integrated smart contract functionality. Proposed in late 2013 by Russian-Canadian programmer and writer, Vitalik Buterin, Ethereum (ETH) is now the world’s largest smart contract-enabled blockchain network. In order to write smart contracts on Ethereum, the Turing complete network allows users to use a programming language called Solidity.

Solidity was developed specifically for software architects using Ethereum to build and deploy decentralized applications (dApps). Solidity’s syntax is somewhat similar to that of JavaScript, the most widely-used scripting and programming language for web-based applications. Notably, the Bitcoin network also supports smart contracts, however their functionality is a lot more limited when compared to Ethereum.

Comments
CryptoCompare needs a newer browser in order to work.
Please use one of the browsers below: