I’ve recently written about smart contracts, but that piece led me to think about the actual mechanisms behind smart contracts, and the way that cryptocurrencies such as MXC, Mobius, Streamr and IOTA could contribute to making these self-executing agreements more trustworthy, more efficient and more profitable all around.
Oracles, more than ‘the man in the funny hat from Tron’
First, I should explain what oracles are and how they make self-executing agreements such as smart contracts possible. Smart contracts exist in the abstract, they are just data. Unless you build in the ability for it to check on developments in the outside world, it won’t do anything, ever. If you want it to pay into an account every Thursday at 5pm, then you need to include all the details of which clock it is going to monitor, and exactly what both parties mean by ‘5 pm’. Once you’ve set that up, that clock is an oracle for that smart contract.
An oracle is a 3rd party service- something that is not typically a participant in the blockchain consensus mechanism. It could be owned and operated by one of the participants in the contract, of course, but it is better of it is handled by a truly neutral, disinterested party. This is important because the oracle is the eyes and ears of the smart contract.
A smart contract is a series of if/then statements at heart. ‘IF goods shipment X arrives at Destination Y by time Z THEN move 10 ETH from wallet A to wallet B.” The contract is the brain, the judgement and the intention. But it is blind and deaf. It consults an oracle about whether any condition has been met. In this case, the oracle might be linked to the receiving site’s warehouse management system. In another instance, it could check with an oracle to find out whether a permission has been granted, a service has been performed, or whether a certain team won the World Cup or not.
And what do blockchain technologies add to this?
We’ll break that down across 4 separate currencies below, but in essence each provides a secure way for data to be copied and transmitted without alteration. Smart contracts, bitcoin scripts and similar devices cannot go out and get their own data, so some secure, reliable source of oracle data is necessary of smart contracts are going to become popular, or efficient.
MXC’s MXProtocol was designed specifically to facilitate the movement of data between different blockchains. The use of oracles was ‘baked into the code’ with the intention of building up a stable of trusted, reliable external oracles which could become a common library for building new smart contracts and other bits of self-executing code.
More importantly, MXProtocol was envisioned as a way for LPWAN datastreams to become part of smart contracts directly. This MXP becomes a source of oracles for other blockchains, like Etherium. It can also be used by Web APIs and other non-blockchain applications, just without all of the certainty and transparency that the blockchain provides.
This is one of the real strengths of the MXProtocol Inter-Chain Data Market. The source, processing and flow of the information (essentially the entire oracle) is itself verifiable with a separate blockchain. It is inherently trustworthy and transparent, by design.
Mobius relies on their API to connect a wide range of non-blockchain applications to their blockchain. They support this with developer tools, their own app store and their Smart Market where large data feeds and micro services alike can be accessed.
This is all aimed at making the setting up of oracles easy. But how do they address the security issues of the API connection? The Mobius Network’s Smart Market encrypts all of the information sent by their oracles at the source. This is both a method for ensuring the integrity of the information and a payment device — what you actually bid for is the decryption keys for the oracle’s data feeds. Not perfect, but elegant.
Streamr uses a ‘hybrid data retrieval approach’. In the case of smart contracts, the Streamr Network incentivises their ‘broker nodes’ to act as oracles.
This has most of the advantages of MXP’s all-blockchain approach. The data supplied is signed at its source, and it can be pushed directly to smart contracts. However, it doesn’t overcome the uncertainty of the API connection and doesn’t offer the transparency of a truly 3rd party oracle — at least not for smart contracts that exist inside the Streamr Network.
IOTA’s Qubiq project is harder to assess, as it hasn’t really landed yet. It is essentially a new layer to the Tangle protocol which is custom designed to handle oracles and the data needs of smart contracts in, as they say, ‘the most scalable and minimal fee manner possible’.
It is not a new token, but rather a way to access the IOTA network. This should not only allow for new, more complex IoT applications, it intends to make new kinds of smart contracts possible, incorporating real-time micro-payments. We are told that there will be a system to reward participation, so perhaps oracles will be paid in a similar manner to MXP’s solution. We shall have to wait and see.
So these are just 4 ways of providing the kind of high quality, secure and inexpensive oracle data smart contracts and other bits of self-executing code need to behave more intelligently, efficiently and transparently. This is one of those situations which is in a great deal of flux, and the ‘industry standard’ in 10 years could be based on any one of them — or on something else altogether. I’ll be keeping my eye on this to see how it all shakes out.