Bitcoin gambling using distributed oracles in the blockchain
Professor Advisor
dc.contributor.advisor
Hevia Angulo, Alejandro
Author
dc.contributor.author
Montoto Monroy, Francisco Javier Andrés
Associate professor
dc.contributor.other
Céspedes Umaña, Sandra
Associate professor
dc.contributor.other
Olmedo Berón, Federico
Associate professor
dc.contributor.other
Meza Montoya, Federico
Admission date
dc.date.accessioned
2018-10-01T13:30:34Z
Available date
dc.date.available
2018-10-01T13:30:34Z
Publication date
dc.date.issued
2018
Identifier
dc.identifier.uri
https://repositorio.uchile.cl/handle/2250/151866
General note
dc.description
Magíster en Ciencias, Mención Computación.
Ingeniero Civil en Computación
es_ES
Abstract
dc.description.abstract
Every time we place a bet, we implicitly trust the other participant to pay in the case we win. For this reason if we deal with people we do not know or trust, we do not bet directly with them, and instead we use a casino or other gambling sites. We expect the law or even casino reputation to help us to enforce good behavior.
Cryptocurrencies made possible to store and transfer value easily without using centralized control. Given its recent popularity, many decentralized applications have been proposed and implemented on top of them. Among them, gambling. It is currently possible to safely bet with a stranger on random events using cryptocurrencies. We can bet on the value of digital dice, cards or roulette. Neither trust nor centralized entities are required. In this work we propose a protocol on top of Bitcoin to place bets on real world events in a decentralized and trustless fashion. Our protocol uses a set of oracles to bring the outcome of the event on which the bet depends into the blockchain. When a certain threshold of the oracles have reported the same outcome for the event, we unlock the winner s prize. The protocol was designed to automatically move the money to one of the players in that case, so oracles do not take control of the prize, they only decide between two possible outcomes.
Economic incentives are placed to encourage good behavior on the participants. Oracles get paid if and only if they provide the right answer, where right is defined as the answer provided by the majority of them. Also, oracles are required to place a deposit to participate. This allows the protocol to establish economic penalties if the oracle fails to answer.
Once the bet is placed, the prize is locked waiting for the oracles answer. Players relinquish their control over the money until the oracles decide the winner or a previously defined ti- meout expires. In case of timeout, each player gets half of the prize.
Using Bitcoin scripting language, the protocol guarantees fairness and execution correctness with both, a dishonest minority of oracles as well as a dishonest peer, at least once the bet is placed. Before that a dishonest peer can cause limited economic damage to an honest player. Yet the attack produces no net gain: it costs the attacker as much as the amount of the damage done to the victim. Dishonest oracles, before the bet is placed, can cause small economic damage to both players equally, although the cost for this attack is a parameter set by the players.
The protocol was implemented and run in the Bitcoin testnet using the official client to ve- rify the transactions. Our implementation is currently available as an Open Source project. Discussion on the trade off between the protocol cost and economic incentives for the par- ticipants are included in this work. We also provide a detailed cost analysis of running the protocol.
We believe this work s contribution is a novel way of reasoning and deciding about real world events while integrating the outcome into the blockchain. The protocol can be ea- sily extended to resolve contract disputes and similar situations where subjective but fair resolutions are needed, all in a decentralized environment.