Oracles as decentralized computation resources

in #blockchain6 years ago

Oracles as we know them today post data to the blockchain and make them available to smart contracts, for instance is input to a smart contract that realizes a insurance incurring a payout in case the insured event appears.

As thus we have to select a trustworthy oracle at the time the smart contract is agreed on. In the case of chainlink we can defer that decision to a later time by defining our requirements and have oracles bidding on the job. The reputation and matching engine will select a set of oracles and aggregate their data to a single input of information to our smart contract on the fly. It will also monitor the responses, sort out falsy responses and tries to make sure that rougue oracles are excluded from consensus as well as financially penalized to make it less attractive to try to cheat the system. The consensus among the oracles is therefore not much different from consensus in a blockchain and can be externalized to a sidechain to save costs, wshile the result of the consensus is posted to the chain that runs the receiving smart contract.

Now imagine that we want to have derived data for our smart contract. That means we want to execute code within the oracle to prepare our data before it posts the result to the blockchain. This can be done using a scripting language that is run inside a virtual machine that is provided by the oracle. We can have arbitrarily complex algorithms as long as the oracle is willing to perform the execution for instance because he gets payed for the usage of its computational ressources. To make sure the result is not tampered with, the same computation is run by different oracles at the same time.

Effectively this leads to a way of offloading complex computations to cheaper oracle networks and lower the burden on the main chain of general purpose smart contract plattforms, while staying decentralized and protected by consensus algorithms and at the same time being usable in different applications on different chains. This might become a important building block for more powerful dapps in future as it potentially reduces smart contract execution costs by orders of magnitude.

The idea to this comes directly from the ChainLink whitepaper. While not focused on that, it leaves open to develop something in this direction in future. ChainLink is a set of smart contracts on Ethereum with the goal to support any major smartcontract plattform natively. LINK is a utility token that gets staked by oracles and that they get payed in.