-
Implementación eficiente de contratos inteligentes en Bitcoin permite realizar apuestas complejas.
-
La apuesta tiene más de 130.000 valores ganadores, aunque solo 3 resultados tienen ganador absoluto.
Imagina participar en una apuesta donde aún sin atinar con precisión los resultados, puedas ganar bitcoins según lo cerca que te hayas aproximado.
Un juego donde solo tres posiciones tienen ganadores absolutos; pero en otros 131.000 valores posibles, los participantes pueden ganar bitcoins proporcionalmente a sus apuestas.
El pasado 4 de diciembre, dos desarrolladores, Nadav Kohen y Chris Stewart, de SuredBits, hicieron este esquema posible en una apuesta acerca de la volatilidad de Bitcoin (BTC), según el precio que alcanzaría la criptomoneda en una semana a partir de ese momento.
Kohen dijo en una publicación que si el precio del BTC marcaba 19.000 dólares, perdería todos sus BTC apostados; pero resultaría ganador si el precio bajaba de 17.000 o subía de 21.000 dólares, llevándose los bitcoins de Chris.
“Yo aposté que dentro de una semana el precio se movería significativamente hacia arriba o hacia abajo, y Chris apostó que no se movería mucho del precio objetivo (19.000 dólares).”
Nadav Kohen, desarrollador de SuredBits.
La información sobre el precio de BTC fue firmada por un oráculo en la fecha y hora mencionadas. El Oracle of Delphi de SuredBits fue programado para recibir esta información y transmitirla a las partes. El precio de BTC fue indicado por los mercados de Bitfinex el 11 de diciembre a las 00:00 UTC.
Una aproximación logarítmica a las Transacciones de Ejecución de Contratos (CET), permitió que esta apuesta tuviera una distribución proporcional a los resultados del pronóstico, gracias a esta implementación que forma parte de los Contratos de Registro Discreto (DLC). La ejecución de la CET garantizó el cumplimiento de la apuesta y los acuerdos entre las partes, desde fuera de la cadena de Bitcoin, afirma.
“Un DLC consiste en una sola transacción on-chain y un set de transacciones off-chain llamadas Transacciones de Ejecución de Contratos (CET). Existe una CET para cada posible resultado; las salidas (outputs) de una CET reflejan el pago que recibirá cada parte por dicho resultado. Cada CET puede gastar la salida de la transacción on chain multifirma (2/2) y de esa manera el contrato indicado por el oráculo se cumple, pues el oráculo firmaría un mensaje específico y único para esa CET.”
Nadav Kohen, desarrollador de SuredBits.
Logaritmos para ampliar contratos de Bitcoin a resultados potenciales
La forma en que Kohen y Stewart abordaron la puesta en marcha de este DLC, parte de la implementación de funciones logarítmicas en la ejecución de las CET.
Esta función, nacida de la propuesta Numeric Outcomes DLC, indicaría multiplicidad de resultados posibles dentro de la apuesta en cuestión, permitiendo calcular cómo sería la distribución entre las partes. La CET se ejecutaría entonces en consecuencia a la cifra indicada.
Cabe destacar que esta propuesta está configurada en bitcoin-s, la implementación de Bitcoin Core para el lenguaje de programación Scala.
Según explica Nadav, los tres puntos ganadores de la apuesta (17.000, 19.000 y 21.000 dólares) son computados por un algoritmo, que los conecta linealmente, y condensa todos los parámetros en unas pocas transacciones CET. “Como resultado, nuestro DLC especulaba sobre una probabilidad de 131.072 resultados posibles y solo tenía 4.016 CET, y fue rápido y fácil de configurar y ejecutar”, afirmó.
Así observa que entre los beneficios de esta implementación, está poder crear menos transacciones CET, pues no tendría que crearse una CET para cada resultado único probable, sino desarrollarlas con la capacidad de abarcar mayor margen de resultados válidos en una escala logarítmica.
A partir de la funding transaction, transacción multifirma que despliega el contrato inteligente, se recurre al oráculo en el momento indicado para conocer la información de la que depende la apuesta y que hará ejecutar el contrato.
Las transacciones CET correspondientes a todos los resultados posibles ya se encuentran listas, almacenadas en el nodo de SuredBits. Cuando el oráculo firma la transacción indicada según el resultado obtenido, esta CET es enviada por el nodo hacia el contrato inteligente, que finalmente se ejecuta según la instrucción.
De ese modo, se necesitaron solo dos transacciones on-chain para la ejecución de este contrato inteligente, pero ya se habían creado poco más de 4.000 transacciones que abarcaban más de 130.000 resultados posibles.
Al final de la semana, dijo Kohen, el Oráculo de Delphi publicó la firma correspondiente al resultado 19.180 dólares. “Tristemente para mí, estas firmas liberaron una CET que me pagó 18.000 satoshis y a Chris le dio 182.000 satoshis”, comentó.
Por último, aseguró que aún quedan muchos casos por ejecutar, refiriéndose a las posibilidades que brindan las más variadas funciones logarítmicas a los contratos inteligentes DLC.
En un ejemplo dado por Nadav, sobre un logaritmo que luce gráficamente como una escalera, cada escalón representa un valor constante durante un periodo de tiempo.
Sobre este y los más diversos patrones gráficos de la función se podría especular, adaptando dicha especulación a un contrato, una apuesta o, en el sentido más general, un juego sobre la blockchain de Bitcoin.
Este contrato, se puede apreciar, no polariza los resultados como “todo o nada”, ya que en la medida que los participantes aproximan su apuesta al resultado final, en esa medida reciben su recompensa, otorgada por el contrato inteligente. Esto podría valorarse como un tipo de distribución equitativa o “justa”, una modalidad que se suma a una casi infinita posibilidades de juegos y relaciones contractuales.
Como reportamos en CriptoNoticias, la anexión de oráculos off-chain y no interactivos a los contratos inteligentes sobre Bitcoin y la red Lightning representa enormes avances en privacidad y automatización, según explicó el desarrollador de los DLC, Tadge Dryja, en la recién concluida edición de LaBitConf.