Bitcoin can do magic with money. Because Bitcoin is not just money on the Internet that allows global peer-to-peer transfers almost instantly. Bitcoin is also programmable money. And Bitcoin also allows the digitally transfer of value. That value can be 10 euros, or an asset as a ship or a house. The title to any form of assets may be entered in the Bitcoin blockchain. If to this we add the ease of transfer, we can think about the next natural evolution: Bitcoin allows smart contracts.
A smart contract is an agreement between two or more parties -people or machines- that allows the creation of conditional terms or clauses (If this, then that) and allows them to run autonomously. With the development of these applications, the Bitcoin blockchain can become a system for the creation of programmable contracts between two or more parties. Several projects and companies in the ecosystem are already working in this direction. This includes Coinffeine that allows two people to exchange euros for bitcoins with smart contracts, or Oraclize, an Italian company that offers services based on smart contracts and has followed the footsteps of Coinffeine and was established using bitcoins as social capital.
The real world in Bitcoin Scripting
The language in which these smart contracts are written is not Spanish or English, but a language called Bitcoin Scripting, and has some peculiarities. Among them, it is not possible to create clauses that refer to external conditions. This limitation of smart contracts is partly remedied by a mechanism known as Oracle, at the expense of relying on a third party. Oracles are responsible for enabling a smart contract that incorporates clauses as “only if Real Madrid wins X match” or ” only if the oil price exceeds X value at X index.” This mechanism allows that the payment of a transaction is executed only if an external condition is met. So Oracles can therefore validate clauses that refer to external information. They are the third digital party that verifies and executes certain terms of the contract. We could say it’s like a notary who has the capacity to judge and see if certain conditions are met in the external world, but they cannot touch the money.
Oracles and reversible Bitcoin payments
The term Oracle was originally defined by Alan Turing and it has been adapted to Bitcoin by Mike Hearn. “Oracle servers” are companies that provide programming scripts through which we can define a logic to validate its service, allowing us to spend the money as we agreed. Thanks to the Oracles we can get a transaction to execute only if a certain external condition is met and define conditions for cases where it is not met. In addition oracles could make Bitcoin transfers reversible. It is well known that transactions with the cryptocurrency are irreversible, but if money is committed in a smart contract rather than in a current transaction, we can make any scenario possible.
As an example, imagine you buy a pair of sunglasses on the Internet and you agree that the seller will not get your money until you confirm that you have received the package. To do this, instead of sending the money directly to the seller, you create a smart contract. Once this is done, the seller can be sure you’re going to pay because he can verify that the money is committed is locked in a smart contract pending the courier company’s confirmation that the package has been delivered. This is done the delivery consultation on its website. When the application of the courier company confirms that you have received the package, the seller asks the oracle for the verification and it signs the transaction. Automatically the payment transaction that was blocked, is released and minutes after the seller receives the money you have paid for your sunglasses.
The interesting thing about this mechanism is that a trusted third party, the oracle, has authorized the payment, but it doesn’t require having access to the escrow: the oracle does not touch the money.
When Bitcoin is combined with real-world information is when “things start to get really interesting”, said Gavin Andresen on an analysis of this topic. We will have to see how oracle projects evolve in the ecosystem, but for now, they go in the right direction. And there seems to be no turning back.
This is getting interesting!
- Over a year ago, in February 2014, I talked about oracles and much more in a speech titled “Bitcoin Protocol for Developers” at the event T3chFest.
- Oraclize (currently in Beta) offers services based on smart contracts providing Bitcoin transactions based on the occurrence of some verifiable real-life event, and is based on third-parties which were already acting as oracles, such as WolframAlpha or Football API, to link them to Bitcoin transfers.