Oracles for Smart Contract
By Raffaella Aghemo on ALTCOIN MAGAZINE
The Smart Contracts, conceived in 1996, long before any idea of blockchain, by Nick Szabo, would seem to represent a quick and dynamic solution to many regulatory relationships, and they serve in a context where several parties do not trust each other: they are self-executable software on blockchain platform, with no possibility of default…
The Simplification Decree of 2019, art 8-ter gives the definition of Smart Contract: “It is a “computer program” that operates on technologies based on distributed registers and whose execution automatically binds two or more parts on the basis of effects predefined by them.
It meets the requirement of written form after computer identification of the parties involved, through a process having the requirements set by the Agency for Digital Italy with guidelines to be adopted within 90 days of the entry into force of the law converting the decree law.
A smart contract is a digital agreement that imposes itself. The common example is a vending machine. Enter money and you can either get your money back, or buy goods.
These “programs” use hash encryption, composed of unidirectional mathematical algorithms (therefore not modifiable), which enshrines the immobility and integrity. It is, however, possible to insert, within the code, so-called trigger points, or special events, verifiable by computer systems, such as the expiration of a period, which will result in legal consequences; for this reason, in these circumstances we speak of “conditional contracts”, because the implementation of legal consequences occurs only to confirm, or public or private, the above conditions.
The mechanism happens in this way: to insert myself in the chain I produce a transaction, which requires some essential data, such as the sender, the recipient, the value, the reason, a progressive number and my signature with a digital key; through the hash, this package is certified and is inserted into a block; the miner (keeper of the register, which, to hook a new block to the chain, must solve a complicated mathematical puzzle that requires a huge computational work), through a calculation called nonce, closes the block. At that point this block is sent to all the other nodes on the network and, when it gets the approval of 50%+1, then the block will get its timestamp, that is, it will be certified!
If the traditional contract is subject to the binding character enshrined in the article 1372 of the Italian Civil Code, which can always be disregarded, and which will be remedied with penalties and legal consequences, the smart contract, with the automation of the contract, cannot be violated, as, “code is law theory” (Lawrence Lessig), as it is the code that forces the behavior of the parties towards compliance with the clauses.
Nick Szabo had the idea of “incorporating” into software and hardware a series of clauses to automate the obligations and make almost zero the risk of default. The solution went through cryptography techniques and electronic signatures, which made defined and secure the actors who put in place the actions and any transactions.
But the idea is not only difficult to explain to ordinary mortals, but also its possible realization would require enormous difficulties in interpretation, to make the clauses intelligible, written in code, to a common normative interpretation. With what devices, a possible lawyer could explain before a court, a contractual clause, written in programming language, or conversely, how to translate any possible practice, object of obligation, in a software language that, for its part, requires automatisms (i.e. execution of an action at the occurrence of a given event)?
The difficulty of understanding and translating the legislative text into binary code makes this discipline open to very few people today, and the very rigidity of the code itself is an obstacle to a normative “malleability”, sometimes necessary; to this must be added an objective and indisputable difficulty, not to say impossibility, on the part of the judge to be able to immediately understand its meaning, containing complex algorithms and semantic formulas, which are not limited to predicting the activation of a certain action, upon the occurrence of a given event.
An attempt in this direction was made in 1990 by the Ricardian Contracts, aimed at identifying the intentions of the parties before the execution of the existing obligation, creating classes or patterns, corresponding to the various types of contract, thus generating automatisms capable of standardizing the formal document and the actions of the two actors.
Pursuant to the article 1325 of the Italian Civil Code, a contract, in order to be defined as valid, must comply with the following requirements: agreement of the parties, cause, object and form.
The first is finalized when the proposal becomes known and accepted by the counterparty or automatically when execution begins.
There is nothing here about the second and third requirements, which apply to Smart Contracts in the same way as normal contracts, perhaps with payment made by means of crypto-currencies.
The question of form becomes, instead, interesting, because, being the agreement, written in software code, and linked to a blockchain for enforceability, it becomes, to all intents and purposes, a computer program.
But what if some contractual actions should depend on details about the past, present or future? For example, automate a refund, if your flight should be delayed tomorrow?
This is where the so-called Oracles enter the equation. The smart contracts require oracles to resolve details, which cannot be known precisely at the time of drafting the contract.
Truth is subjective, subjectivity is delegated to oracles: but how do we resolve subjective events in a demonstrable, consistent, transparent and minimally reliable way?
In itself, the blockchain cannot access data outside the network: for this purpose, the oracles take action, third-party agents that stand between the blockchain (and therefore the smart contracts) and the real world, with the aim of passing information to smart contracts as soon as some external condition occurs. They then provide the blockchain with external data and trigger the execution of smart contracts as soon as a certain condition is met, a condition that requires information not known at the time of writing the contract. The confidence in the oracle and a detailed representation of the data format it will send us and the way in which it has been extracted from the real world play a very important role. A confidence that the oracle will gain over time. An example is the case of an insurance company that offers a policy (flight-delay) that compensates travelers if their plane suffers delays. Those who want to make sure of such an event pay a premium related to their flight (even just before boarding via smartphone in encrypted-currency) and landing the smart contract will provide to compensate those who may have suffered a delay, thanks to an oracle that sends to Blockchain all the scheduled arrival times of flights and all actual arrival times recorded. Everything is done in a totally automatic way: there is no “referee or free will” and the compensation is paid in crypto-currency that arrives directly in the wallet of the insured as soon as the oracle has transmitted the data.
Long before computers, our company invented a way to make all the contracts “smart”: to allow users to appeal to certain authorities (e.g. court) to resolve the issue definitively. If this authority were always “right”, there would be no reason to appeal to it. Anyone who knew that they were wrong and could therefore lose, would not launch themselves into a “suicidal” enterprise. The merchant revolution of the Middle Ages was made possible by the development of merchant courts as well as real authorities, oracles of trust that allowed traders to enforce agreements between private individuals.
The traditional contract system is, of course, quite expensive, involving a number of professionals and infrastructure, which make a possible process, long and laborious.
Digital technologies have reduced barriers to the creation and distribution of information, it has become extremely important to be able to authenticate information as coming from a known and reliable source. The simple fact that, in these new digital systems, information is made available to everyone, visible, controllable and verifiable, creates, on the part of the spokesperson, the responsibility to be the advocate and therefore to be exposed to any consequence.
Localizing the risk makes a relationship more reluctant to fail.
All Rights Reserved
Raffaella Aghemo, Lawyer