Every month, it seems like a new product is announced with the moniker ‘smart’ attached to it – smart cars, smart homes, smartphones, etc. It was only a matter of time until the world of IT provisioning got smart – this time, with smart contracts.
While the concept of smart contracts has been around since the 1990s, it has recently gotten more industry attention with the rise of blockchain technology.
What are smart contracts?
A smart contract, a term coined by computer scientist, cryptographer and legal scholar Nick Szabo in the 1990s, is a self-executing code that embodies a set of rules – typically if-then statements – under which two or more contracting parties agree to transact with one another.
Put differently, a smart contract automates and enforces a relationship with cryptographic code. Szabo called vending machines a ‘primitive ancestor of smart contracts.’
Today, smart contracts are transaction protocols running on a blockchain, designed to be used either as a complement to or, for the most ambitious and idealistic, a substitute for an agreement or contract between two or more parties.
Who uses smart contracts?
Smart contracts are rolling out to a variety of circumstances. In the entertainment space, for example, smart contracts can facilitate more secure and efficient platforms for exchanging tickets to sports games or other events in the secondary market.
In the travel industry, imagine that your flight is canceled (and you have travel insurance): You are paid back instantly without lifting a finger – thank you, smart contract!
The challenges of smart contracts
Smart contracts are still in their fledgling phase, and as with any nascent technology, come with their requisite challenges:
- The human touch. The actual legal enforceability, jurisdiction and arbitration of these smart contracts is still ambiguous. Letting the code rule in a multi-party scenario sounds good on paper, but can present challenges. A smart contract is still missing human instincts; complex contractual arrangements are almost impossible to program into a smart contract, since there are elements that are subject to value judgements.
- Programming issues. The programming languages for smart contracts are drastically different from the legalese we currently use to draft contracts, and today’s smart contracts are not necessarily readable or understandable by the average user. Additionally, in today’s multi-blockchain world, if a company wants its smart contract to run on multiple blockchains, it must write it for each blockchain protocol using that blockchain’s respective programming language.
- External data feeds. Smart contracts are only as good as the quality of the data that is fed into them. A smart contract often needs to access external, off-chain data (e.g., weather data, exchange rate or flight data) that may come from a website, an application or a sensor. The parties involved in a smart contract must trust these external sources of data in order for the contract to work, and any weakness or deficiency in this data can cause the contract to fail.
The future of smart contracts
Moving ahead, expect to see a hybrid human-code model for these contracts, where processes are coded and automated, but there is still human intervention for cases where corrective or legal actions are required.
The further development of the Internet of Things and edge computing will likely boost the adoption of smart contracts, given all the connecting ‘things’ that need to interact directly, efficiently and reliably.
Want to keep up with smart tech trends?
Join the 451 Alliance for exclusive IT research content. Do I qualify?