What’s in this post?
What are smart contracts?
A smart contract is an agreement between two parties, digitally encoded onto a blockchain, that automatically executes a transaction once certain conditions have been met. The concept of a smart contract isn’t as new as one might imagine. Take the simple example of a vending machine. An individual wishing to purchase a soft drink would enter some money into the vending machine, key in the correct code and the machine would return the drink to the customer. All of this takes place without any intermediary, e.g. a cashier, rendering the entire process automatic – this is the very basis of a smart contract.
There are three integral parts to every smart contract, each must contain:
1. Signatories, i.e. two or more parties that are using the smart contract.
2. The subject of the agreement, i.e. what exactly are the parties agreeing to.
3. Specific terms. Those terms need to be mathematically described in full and using a programming language that is appropriate for the particular smart contract’s environment. This includes the requirements expected from all the participating parties as well as all the rules, rewards and punishments associated with the terms.
Smart contracts automate processes that traditionally require a 3rd party, which helps return control to the users. Notaries, estate agents, advisors, and many other intermediaries are not needed thanks to smart contracts, and by extension, the extortionate fees associated with their services. Numerous proof of concepts involving smart contracts have been successfully conducted across a wide range of use cases. In general the consensus that time traditionally wasted on manually processing reams of paper documents is being saved. As it stands, fewer smart contracts have yet to make their way into the mainstream. There are a few crucial questions that need answering before businesses are willing to rely entirely on this new exciting technology.
Smart contracts in the real world
Perhaps the most well established use of smart contracts live today is in the world of parametric flight insurance. International insurers AXA have developed Fizzy, the first flight insurance that works entirely on a blockchain – using smart contracts to automate payments. A user need only enter some personal information and flight details, along with their payment method (using only ﬁat currency at the time of writing) and they are covered as with any traditional flight insurance. However, should the flight land in excess of 2 hours after the expected arrival time, the smart contract automatically pays out almost immediately. The payout method with a smart contract makes life much more straightforward for customers, as they need not fill out lengthy claim forms and wait weeks for to receive their compensation.
Complexity of smart contracts
The smart contract that fizzy uses is, in the grand scheme of things, relatively simple – you can even check the contract out for yourself if you wish, by following this link. That’s because there isn’t many variables. The contract only needs to know if the flight is late or not, the data for which comes from Flightstats, and if it is delayed by more than 2 hours, money is paid out – simple. But many smart contract use cases are much more complicated and require data from multiple sources and encode far more challenging agreements. Car insurance, Buying/selling property and streamlining supply chain are just some of the areas of research relating to smart contracts, all of which are much more intricate and difﬁcult in terms of legal proceedings. So, why is this an issue? Can we not just create a bigger smart contract that encodes the extra parts required? Well it’s a little more complicated than that…
Are smart contracts actually smart?
In reality, smart contracts are not actually that smart, they don’t have any attributes of artificial intelligence (AI), they cannot learn or update themselves and they cannot fetch their own data. Each smart contract requires someone to gather the relevant data and insert it into the code, this person is known as an oracle. In the case of a smart contract facilitating supply chain, one main purpose would be to automate payment upon arrival of goods, subject to quality control. If it is found that the goods are not at the required standard or the quantity is not as specified, there is no current mechanism to resolve this issue. It is far too risky to rely upon one individual to determine the outcome of a smart contract in such a complex case that involves large amounts of money. If the data entered doesn’t fairly reflect the quality of the goods, the smart contract would execute on false pretences.
Removing complexity with The Proof of Trust
A way to circumvent the issues of complex smart contracts is to provide some kind of dispute resolution service. The only globally patented protocol available for smart contract dispute resolution comes from The Proof of Trust (PoT). The protocol from PoT delivers an innovative anti-collusion algorithm that enables more effective and trustworthy use of blockchain technology. It does so by ensuring the authenticity of data put on the blockchain and used to execute smart contracts. It is inevitable, regardless of how accurate and reliable the smart contract is, that disputes will arise, just as they do with written contracts. By allowing a number of highly skilled individuals to adjudicate on a smart contract where a query has been raised, then the issue will be resolved before a transaction is irreversibly committed to the blockchain.
Regardless of the complexity of the case, smart contracts will be able to streamline myriad scenarios and save companies and individuals huge sums of money. The issue remains that disputes are inevitable. Without The Proof of Trust protocol, there is no mechanism to allow for a fair adjudication process. Smart contracts and the transactions they govern would be at the mercy of the oracle responsible for the data entered, posing far too great a risk for any sensible business to bet on.