Tuesday, April 28, 2015

Honoring Contracts with the Blockchain

Emergence of Smart Contracts
Contracts erect the framework of partnerships. Clearly established expectations and goals drive plans into completion. Trust is established by a legal obligation to perform the duties and responsibilities outlined in the contract. Decentralized networks are trustless and could create new forms of contracts. Oracles are programs that verify specific inputs are entered and validated before releasing pre agreed outputs. These outputs could be a payment for a service, a release of funds, or the outputs could create new contracts. Bitcoin can create distributed contracts via the blockchain. In a separate blog I wrote about a decentralized job board, LivelyGig, that could monetize individual tasks for outsourcing. This is a separate contract agreement for micro tasks that stays within LivelyGig’s network.

An oracle is only a script, a function awaiting desired inputs. The only limitations of a contract are the constraints outlined in the agreement. A smart contract uses the outline of the agreement to contain releasing an output (payment) until a certain prerequisite has been met. When prerequisites are met in a smart contract, finalizing payment is only delayed by human interaction. The owner of the private key withholding payment in a smart contract must have no interest in the contract for the agreement to be completely trustless. This is the opportunity for new services offering oracle smart contracts to emerge. A company, SmartContract, emerged late last year and are one of the first to offer smart contracts.

You are the district manager for a regional business branch. You have received word that servers are down across your district and a technician must be dispatched to repair the network immediately. Your servers are located off site and in a remote part of the district and it would be impractical to send an employee to troubleshoot. A solution could be formed by using micro task payment channels and oracle contracts provided by decentralized services. Combining the automatized payment of oracle created contracts, with a payment system for micro tasks and you have a new system for sending contractors to remote sites to fix equipment. The contract would await specific inputs before providing payment. A GPS location can provide an input that the contractor arrived on site. An additional input can be created once a specific metric is reached (operational performance being restored). After the job is complete the output (payment) can be sent to the person who completed the contract with no additional involvement from the district manager required.


This example is not too far fetched and is a practical application for a service that does not quite have a large market at this time. Oracles have an autonomized payout by verifying inputs from each party. The service that creates the oracle will need a private key to verify that the transaction inputs are The oracle in the previous scenario can be set to pay out once connection can be reestablished with a specific server.