¿En qué consiste el problema del oráculo en las blockchains?

El problema del oráculo es uno de los principales obstáculos que hay que superar para que los contratos inteligentes en redes como Ethereum logren ser adoptados en distintas industrias.

Tal y como ya adelantábamos en artículos anteriores de esta serie educativa sobre blockchain, los contratos inteligentes que se ejecutan en blockchains ofrecen un potencial inmenso para redefinir la manera en la que las distintas partes de un contrato se comprometen a cumplir acuerdos contractuales y a intercambiar activos con valor. Del mismo modo que existe la economía de los contratos inteligentes, también existe la economía digital que no se centra en la blockchain, y que está formada por dispositivos conectados a internet. Una consecuencia de esta nueva infraestructura digital, es la aparición de una reserva cada vez más grande de datos y APIs que proporciona información sobre el mundo. Por ejemplo: resultados de búsqueda en internet que muestran temas que generan debate en la actualidad o sensores IoT que muestran patrones de tráfico comunes.

Los contratos inteligentes y la economía tradicional que gira en torno a datos y APIs probablemente se conviertan en la piedra angular de la automatización basada en datos, pero la cuestión es: ¿cómo se relacionan esos dos mundos? Aquí es donde entra en juego el “problema del oráculo” y es en lo que se centrará este artículo.

Este artículo consta de cinco apartados clave:

  • Definir el problema del oráculo

El problema del oráculo

El problema del oráculo es, en realidad, un problema muy simple: las blockchains no pueden ni importar ni exportar datos a ningún sistema externo de forma nativa. Por tanto, las blockchains son redes aisladas, como un ordenador sin conexión a internet. Ese aislamiento de las blockchains es precisamente la propiedad que las hace extremadamente seguras y fiables, ya que la red solo necesita alcanzar un consenso respecto a un conjunto de cuestiones cuya respuesta es verdadero o falso, usando datos que ya están almacenados dentro de su registro. Ej: ¿El usuario de esa clave pública / cartera acaba de firmar con su clave privada correspondiente? ¿Dicha cartera posee los fondos suficientes como para cubrir la transacción? ¿Es válida ese tipo de transacción en ese contrato inteligente en particular? Los contratos inteligentes suelen definirse como “deterministas” debido al consenso de las blockchains; se ejecutan tal y cómo se han escrito pero con un mayor grado de certeza que el de los sistemas tradicionales.

Sin embargo, para que los contratos inteligentes puedan llevar a cabo más del 90% de sus posibles casos de uso, deben estar conectados al mundo exterior. Por ejemplo, los contratos inteligentes financieros necesitan información de los mercados para llevar a cabo liquidaciones, los contratos inteligentes de seguros necesitan información de dispositivos IoT y de la web para tomar decisiones de pagos de pólizas, los contratos de comercio financiero necesitan documentos y firmas digitales para saber cuándo realizar un pago, y muchos contratos inteligentes quieren operar usando divisas en una red de pagos tradicionales. Ni esa información se genera en la blockchain, ni los servicios tradicionales suelen proporcionar acceso a dicha información.

Crear puentes que conecten la blockchain (on-chain) y el mundo exterior (off-chain) requiere una infraestructura conocida como “oráculo”.

¿Qué hacen los oráculos de la blockchain?

El oráculo de una blockchain es un software que hace de intermediario (middleware) y que facilita la comunicación entre blockchains y cualquier sistema off-chain, incluyendo proveedores de datos, APIs web, backends empresariales, la Nube, dispositivos IoT, firmas digitales, sistemas de pagos y otras blockchains. Los oráculos llevan a cabo varias tareas esenciales:

  • Escuchar — monitorizan las redes blockchain para comprobar si hay cualquier tipo de petición de datos off-chain proveniente de algún usuario o contrato inteligente.

Para poder ofrecer todas esas funciones, el oráculo debe operar dentro y fuera de la blockchain simultáneamente. Por un lado, el componente on-chain consiste en establecer una conexión con una blockchain (escuchar a la espera de peticiones de datos), transmitir datos, enviar pruebas, extraer datos blockchains y a veces realizar cálculos en la blockchain. Por otro lado, el componente off-chain consiste en procesar peticiones, almacenar y dar formato a datos externos, enviar datos de la blockchain a sistemas externos, y posiblemente realizar cálculos en redes de oráculos algo más avanzadas.

El contrato inteligente de un seguro agrícola que usa oráculos de Chainlink para obtener datos de diversas fuentes. A continuación, usa los datos agregados para activar la ejecución de un contrato inteligente de seguros en la blockchain, y realiza un pago mediante cualquier método tradicional de pagos.

¿Por qué las blockchains no pueden resolver el Problema del Oráculo?

Las blockchains son extremadamente seguras y fiables debido a ciertas características específicas de su diseño. Tal y como se mencionaba anteriormente, las blockchains solo necesitan tomar decisiones respecto a preguntas muy básicas usando datos que se han generado exclusivamente dentro de su propio entorno y cuya veracidad o falsedad puede demostrarse. Además, usan la descentralización para validar de forma redundante los mismos datos por todos los nodos de la red y asegurar que un nodo o un pequeño grupo de nodos no pueda cambiar las reglas del algoritmo de consenso (PoW, PoS, etc…) o amenazar la integridad de la red mediante un ataque Sybil (adquirir el control del 51% del poder de procesamiento de la red). Estas propiedades proporcionan fuertes garantías deterministas, especialmente en una red altamente descentralizada y resistente a los ataques Sybil.

Sin embargo, las blockchains no son adecuadas para responder preguntas que ahondan en el terreno de la subjetividad o que requieran datos que no sean accesibles a todos los nodos de la red. Por ejemplo, una pregunta tan simple como “¿Cuál es el precio de mercado de Bitcoin?” o “¿Qué tiempo hace en Madrid?” pueden suscitar muchas respuestas distintas que pueden variar dependiendo de la fuente de datos que se esté usando y en qué momento se soliciten dichos datos. La pregunta entonces sería, ¿cuál es la respuesta correcta?

Introducir la subjetividad en el nivel más básico de la blockchain supone abrir la Caja de Pandora respecto a una serie de problemas relacionados con la seguridad, fiabilidad y gobernanza, lo cual pone en riesgo la propia proposición de valor que supuestamente proporcionan las blockchains: determinismo imparcial y justo para llevar a cabo transacciones.

De hecho, si introdujésemos los oráculos en la capa base de una blockchain, una de las principales preocupaciones sería cómo garantizar que los datos sean fiables y tengan la mayor calidad posible cuando no todos los nodos tienen acceso a los mismos datos. Incluso solicitar el precio de Bitcoin supone todo un desafío porque el simple hecho de mirar en una web o un exchange no será tan preciso como la suscripción a la API de pago de un agregador de datos profesional, que tiene incentivos económicos para seguir proporcionando datos de la mejor calidad, además de décadas de experiencia filtrando y refinando datos que cubren el mercado de la mejor manera posible. Es extremadamente difícil gestionar el control de calidad en los datos off-chain que envían los nodos de las blockchain, ya que cualquiera puede operar un nodo pseudo-anónimo y tener las mismas oportunidades de que su respuesta sea dada como válida. Sin embargo no todos podrían estar dispuestos a comprar una suscripción a una API de datos off-chain premium, ni resulta sencillo convertirlo en un requisito.

Otro gran problema es la escalabilidad (la capacidad para aumentar el rendimiento de la red conforme esta crece). Cada vez que haya que añadir una nueva fuente de datos o que haya que realizar ajustes sobre un método de agregación de datos hay que coordinar a todos los participantes de la red de forma unificada para que todos los nodos estén de acuerdo y actualicen su software. Este sobreesfuerzo aumenta la fricción, ralentiza el desarrollo del resto del código u otros aspectos de la blockchain (como el PoS y el sharding), y limita la velocidad de innovación de los oráculos. En última instancia, cuanta más dificultad hay en la capa base de una blockchain, mayor será la superficie de ataque en todas las aplicaciones que se ejecutan en ella. Incluso aplicaciones que no usan oráculos o que no están involucradas con peticiones de datos, se verán atrapadas en ese fuego cruzado y sufrirán si la blockchain se detiene por completo debido a un problema de oráculo.

Por estos motivos, los oráculos no se integran en la capa base de ninguna blockchain, sino que en su lugar operan como redes separadas. De este modo se garantiza que las blockchains tengan una menor superifice de ataque y conserven el determinismo al tener puesto el foco en el consenso blockchain, a la vez que los oráculos disponen de la flexibilidad necesaria para producir determinismo a partir del mundo real, que es subjetivo y complejo, sin limitar la blockchain subyacente.

Los oráculos centralizados implican grandes riesgos

La razón de ser de los contratos inteligentes es lograr el determinismo mediante la imposición tecnológica de los términos de un contrato, en lugar de ejecutarlos de manera probabilística mediante la imposición de las leyes humanas. Para lograrlo, la blockchain no puede tener ni un solo punto de ataque central, lo cual ha de extenderse a los oráculos para mantener esas propiedades de extremo a extremo durante el ciclo de vida del contrato. ¿Por qué tener un contrato de varios millones de dólares en una blockchain totalmente descentralizada si un solo oráculo puede controlar los inputs que determinan el resultado del contrato?

Un oráculo centralizado supone una vulnerabilidad crítica en un contrato inteligente

Tanto si se trata del equipo de desarrollo de la aplicación que usa los contratos inteligentes el que opera su propio oráculo, como si depende de un tercero operando un oráculo, en ambos escenarios se le otorga demasiado poder a una sola entidad que podría influir en el resultado del contrato al tener control sobre el oráculo. Incluso si el operador del oráculo centralizado opera con la mejor de las intenciones, sigue siendo susceptibles a los típicos problemas que sufren las estructuras centralizadas hoy en día (ataques DDOS, servidores caídos, hackeos, incompetencia accidental… etc), lo cual pone en riesgo los fondos de los usuarios.

Incluso la más noble de las entidades centralizadas puede ser sometida a presiones externas si el valor del contrato aumenta, abriendo la puerta a sobornos, intimidación, presión regulatoria… etc. Al final, si una sola persona involucrada con ese oráculo centralizado cae, el oráculo cae. Ese modelo no es escalable y no es compatible con el rol que tendrán las infraestructuras descentralizadas como piedra angular durante la transición hacia una automatización fiable y segura.

Para superar estos obstáculos, los oráculos necesitan aportar las mismas garantías de seguridad y fiabilidad que una blockchain, aunque de un modo diferente, ya que hay muchas diferencias entre cómo resolver el problema del oráculo y cómo lograr el consenso en una blockchain.

Chainlink: El estándar de los oráculos seguros y fiables

Para lograr el determinismo a nivel del oráculo, Chainlink ha desarrollado una red descentralizada de oráculos que proporciona distintas garantías que pueden combinarse de cualquier modo para ofrecer redes de oráculos personalizadas y adaptables a cualquier caso de uso.

  • Código abierto — al tratarse de una tecnología de código abierto la comunidad blockchain puede verificar de forma independiente la seguridad y la fiabilidad del código fuente y las funciones de Chainlink, además de poder contribuir a su desarrollo y mejora constante.

Estas son tan solo algunas de las muchas características ofrecidas por Chainlink para brindar a sus usuarios todo un conjunto de garantías que avalan un mecanismo de oráculos extremadamente seguro. En futuros artículos de esta serie educativa, profundizaremos en dichos mecanismos para comprender mejor la red de Chainlink.

Al crear esas funcionalidades esenciales en Chainlink, los contratos inteligentes de cualquier blockchain pueden acceder a datos off-chain sin sacrificar su determinismo, proporcionando unos cimientos sólidos desde los que construir el futuro de la automatización basada en datos.

Síguenos en Twitter para que se te notifique cuando se publiquen nuevos artículos, únete a nuestro Telegram o Reddit para estar al día de las novedades de Chainlink, o participa en conversaciones de carácter más técnico en nuestro Discord.

Unofficial Chainlink Medium in Spanish. This account is not managed by the official team. Lowering the language barrier to entry to becoming part of Chainlink.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store