Los Oráculos se han convertido en una herramienta fundamental para el correcto funcionamiento de muchas DApps que necesitan de fuentes de datos externas a la propia blockchain para poder implementar su funcionalidad. En el siguiente artículo vamos a ver qué son los Oráculos y qué aplicaciones tienen en el ecosistema blockchain.

¿Qué es un Oráculo?

El término Oráculo tiene su origen en la mitología griega y hace referencia a la respuesta dada por un dios a una pregunta personal, concerniente generalmente al futuro, como método de adivinación. En el contexto blockchain, un oráculo es una fuente de datos externa a la blockchain, que puede contestar a preguntas realizadas por smart contracts que se encuentran desplegados en una cadena de bloques. Dichas fuentes de información pueden ser seres humanos, software, o hardware (sensores IoT).

Ejemplo de caso de uso de un Oráculo

Para explicar de forma práctica, pero sencilla, qué es un oráculo y cómo funciona pongamos el siguiente ejemplo. Supongamos que dos amigos (Javier y Antonio), quieren hacer una apuesta sobre el resultado del partido de fútbol correspondiente a la final de la Champions League del 2020. Supongamos también que los dos equipos que han llegado a la final son el Real Madrid, y el Fútbol Club Barcelona. Javier apuesta a que ganará el Real Madrid, y Antonio apuesta a que ganará el Barcelona. Para ello, deciden desplegar un smart contract en Ethereum bloqueando los fondos de la apuesta, y programando el mismo para que libere el total de los fondos al ganador de la apuesta una vez concluido el partido. Ahora bien, ¿cómo sabe el smart contract quién ganará el partido? Para solucionar el problema se decide utilizar un oráculo para que informe al smart contract sobre el resultado del partido. Dicho oráculo consultará una API de una fuente fiable de información para saber el resultado y pondrá a disposición del smart contract dicha información, asegurando la autenticidad de los datos, para que finalmente el smart contract libere los fondos al ganador de la apuesta (Figura 1).

Ejemplo Oraculo Master Blockchain Online

Figura 1: ejemplo de caso de uso de un Oráculo

Tipos de Oráculos y Características Comunes

Podemos clasificar los Oráculos atendiendo a diferentes criterios, entre los cuales destacamos los siguientes:

  • Oráculos de hardware: gestionan información utilizando dispositivos y sensores IoT para recoger y verificar los datos del mundo real. Manejan información del tipo predicciones meteorológicas, información del tráfico, etc.
  • Oráculos de software: la información que gestionan proviene de fuentes en línea como sitios web, APIs o incluso otros contratos inteligentes. Manejan información del tipo resultados deportivos, precios de activos financieros, etc.
  • Oráculos centralizados: administran información que proviene de una única fuente o de un centro de datos centralizado.
  • Oráculos descentralizados: administran diferentes fuentes de información para atender a una consulta concreta. En caso de discrepancia entre la información aportada por las diferentes fuentes, deberán implementar mecanismos de consenso para dar una respuesta única y fiable.
  • Oráculos entrantes: gestionan información procedente de una fuente de datos off-chain, trasmitiéndola a un contrato inteligente on-chain.
  • Oráculos salientes: se encargan de administrar información procedente de un contrato inteligente on-chain, transmitiéndola hacia un tercero off-chain.

Además, existen una serie de características comunes a todos los Oráculos para que puedan realizar su cometido de forma correcta en las blockchains en las que se utilicen:

  • Deben poder realizan transferencias de datos a las cadenas de bloques mediante mensajes firmados.
  • Deben proporcionar datos procedentes de una fuente que se encuentra fuera de la cadena de bloques. A menudo, a estos datos se les denomina «off-chain» o «real-world«.
  • Deben hacer que los datos estén disponibles poniéndolos en el almacenamiento de un smart contract.
  • Deben ser seguros y transmitir la información desde la fuente hasta el destino sin corromperse por el camino.

 

Patrones de configuración

Aunque existen varias formas de configurar los Oráculos, hay tres patrones de configuración principales que son los más extendidos y comunes entre las diferentes plataformas que ofrecen estos servicios:

  • Inmediate-Read: esta configuración permite consultar datos poco cambiantes que suelen ser gestionados por los Oráculos almacenando la información en contratos on-chain. Ejemplos de esta configuración son los Oráculos que almacenan información como certificados académicos, códigos postales, identificadores de aeropuertos, prefijos de los teléfonos de países, etc.
  • Publish-Suscribe: en esta configuración la información es proporcionada mediante un servicio de broadcast emitiendo datos que suelen cambiar frecuentemente. Cuando el Oráculo es actualizado con nueva información emite una señal avisando a los suscriptores de la misma que se han producido cambios. Ejemplos de esta configuración son Oráculos que gestionan información del tiempo, información del tráfico, o los precios de los alimentos.
  • Request-Response: en esta configuración el volumen de datos a tratar suele ser tan grande que el Oráculo no almacena toda la información en los smart contracts. Cuando el Oráculo recibe una solicitud de información procedente de una DApp, comprueba que la consulta es correcta (comprueba el pago y que tiene permisos para acceder a los datos), recopila la información requerida de fuentes de datos off-chain, y por último firma una transacción con los datos incluidos emitiéndola a la red. Dependiendo de ciertos parámetros de configuración de la petición, el Oráculo puede emitir posteriores transacciones parar actualizar los datos.

¿Qué tipo de información proporcionan los Oráculos?

A día de hoy, existe diversa información off-chain que los Oráculos proporcionan al ecosistema blochchain. A continuación, indicamos algunos ejemplos.

  • Datos de geolocalización usados por sistemas que se encargan de gestionar cadenas de suministro, logística y seguimiento de mercancías.
  • Datos de mercados financieros y de criptomonedas usados por plataformas que ofrecen servicios de trading, compra/venta de activos, servicios DEFI, etc.
  • Datos relativos a la generación de aleatoriedad usados por aplicaciones que implementan sistemas como rifas, loterías, ruletas, y casinos.
  • Datos relativos a información de eventos deportivos usados por aplicaciones que implementan casas de apuestas deportivas, y juegos de ligas fantásticas.
  • Datos relativos a la climatología usados por plataformas que basan el cálculo de primas de seguros en función de la previsión meteorológica.
  • Datos relativos a eventos políticos usados por aplicaciones que se encargan de prever la reacción de los mercados ante este tipo de eventos.
  • Datos relativos a la verificación de daños usados por plataformas que se encargan de gestionar seguros.
  • Datos relativos a eventos producidos en otras blockchains usados para que haya una interoperatividad entre diferentes cadenas de bloques.
  • Datos relativos a información estática como códigos postales, identificadores de monedas, nombres de países, etc.
  • Datos relativos a información de vuelos usados por aplicaciones que gestionan seguros de viajes.

Autenticación de datos

Asumiendo que las fuentes de los datos son fiables, ¿también se debería asumir que los Oráculos, los cuales son intermediarios entre los smart contracts y las fuente de datos, también son fiables? ¿cómo se podría confiar en estos sistemas? La solución pasa por implementar en los Oráculos mecanismos de autenticación de los datos como son las pruebas de autenticidad y los entornos de ejecución de confianza (TEEs )

Las pruebas de autenticidad son mecanismos criptográficos (por ejemplo, pruebas firmadas digitalmente) que garantizan que los datos no se han modificado. Un ejemplo de Oráculo que implementa estas pruebas de autenticidad es Provable (del cual hablamos en el siguiente punto). En el siguiente enlace se puede consultar cómo funcionan dichas pruebas en Provable.

Por otro lado, los TEEs utilizan enclaves seguros basados en hardware para asegurar la integridad de los datos. Un ejemplo de Oráculo que implementa un TEE es Town Crier (del cual hablamos en el siguiente punto), que se basa en el sistema SGX (Software Guard eXtensions) de Intel para asegurar la autenticidad de los datos.

Con mecanismos como los mencionados anteriormente, en principio, se resuelve el problema de la confianza depositada en los Oráculos, ya que ni los desarrolladores de aplicaciones, ni los usuarios finales tienen por qué confiar en los Oráculos para poder usar la información que necesitan de fuentes de datos off-chain, teniendo la seguridad que no ha sido manipulada por los mismos. Aún así, existen estudios en la actualidad que están buscando posibles vulnerabilidades en estos mecanismos, así como otros sistemas que buscan nuevas alternativas para lograr la necesaria autenticación de datos de forma segura y fiable. Un ejemplo de ello es la red de Oráculos Witnet que se expone en el siguiente apartado.

 

Plataformas que implementan Oráculos

En la actualidad existen diversos proyectos y plataformas que implementan Oráculos. A continuación vamos a señalar algunos de ellos que destacan por su desarrollo, utilidad, y características.

  • Provable: es una plataforma que implementa un servicio de Oráculos para contratos inteligentes y DApps, siendo integrable en protocolos blockchain tanto en redes públicas como privadas. Los servicios que ofrece Provable son utilizables tanto en aplicaciones centralizadas (no basadas en blockchain), como en aplicaciones descentralizas (DApps) basadas en blockchain. Provable funciona mediante un modelo lógico «If This Then That», por lo que se ejecutará un conjunto dado de instrucciones si se cumplen otras condiciones. Esta flexibilidad permite aprovechar la plataforma de muchas maneras y contextos diferentes, incluso fuera del contexto de blockchain. La solución desarrollada por Provable permite demostrar que los datos obtenidos de la fuente de datos original son genuinos y no no están manipulados. Esto se logra al acompañar los datos devueltos junto con un documento llamado prueba de autenticidad (Figura 2). En la actualidad, Provable atiende miles de solicitudes todos los días en plataformas como Ethereum , Rootstock , R3 Corda , Hyperledger Fabric y EOS. Permite conectarse a las siguientes fuentes de datos nativas:
    • URL: permite el acceso a cualquier página web o punto final de API HTTP.
    • WolframAlpha : permite el acceso nativo al motor computacional WolframAlpha.
    • IPFS : proporciona acceso a cualquier contenido almacenado en un archivo IPFS.
    • Random : proporciona bytes aleatorios no controlados que provienen de una aplicación segura que se ejecuta en un Ledger Nano S.
    • Computación : proporciona el resultado de computación arbitraria

Android Proof Provable Master Blockchain Online

 

Figura 2: autenticación de datos mediante Android Hardware Attestation & SafetyNet. Fuente

  • Town Crier: es un plataforma que implementa un servicio de Oráculos que proporciona una fuente de datos autenticados para ser usados por contratos inteligentes de Ethereum. Fue creado por profesores y alumnos de la IC3 (Iniciative for Crytocurrencies & Contracts). Town Crier actúa como un puente entre los smart contracts y sitios webs de confianza que implementan HTTPs (Figura 3). Para ello, utiliza un sistema TEE (Trusted Execution Environment ), el cual consiste en un hardware de Intel llamado SGX (Software Guard sXtensions) que dota a los sistemas de las siguientes características:
    • Asegura la autenticación de los datos verificando que las respuestas a las llamadas HTTPs sean auténticas. Por lo que proporciona una garantía sólida de que los datos provienen de una fuente confiable existente.
    • Proporciona confidencialidad permitiendo que el estado de las aplicaciones sea invisible para otros procesos. Esto permite a los contratos inteligentes trabajar con consultas confidenciales e incluso administrar credenciales de usuario.
    • Proporciona garantías de integridad asegurando que las aplicaciones que se ejecutan son protegidas por la CPU contra manipulaciones de otros procesos.

Town Crier Oraculo Master Blokchain Online 
Figura 3: estructura de funcionamiento de Town Crier. Fuente

  • ChainLink: es una plataforma que implementa una red de Oráculos descentralizada altamente confiable. Permite que los smart contracts se conecten a entradas/salidas como son fuentes de datos (datos de marcado, eventos IoT, etc), a sistemas de pagos tradicionales (cuentas bancarias, paypal, etc), así como a eventos de otras blockchains. Para ello, gestiona un conjunto de «chainlinks» que evalúan los mismos datos antes de que sean utilizados como una fuente confiable por los smart contracts. De esta forma se evita tener un único punto de falla, como ocurre en el caso de los oráculos centralizados (Figura 4). En el whitepaper de Chainlink podemos ver como el sistema trabaja con tres contratos principales: un contrato de reputación, un contrato de ordenación-mapeo y un contrato de agregación. El contrato de reputación se encarga de recopilar datos del rendimiento de los proveedores de información, asignándoles una puntuación . El contrato de ordenación-mapeo se encarga de seleccionar las ofertas de los oráculos usando el contrato de reputación. Por último, el contrato de agregación se encarga de recopilar las respuestas que dan los diferentes oráculos seleccionados por el contrato de ordenación-mapeo, y calcula el resultado final de la consulta.

Chainlink Oraculo Master Blockchain Online
Figura 4: múltiples Chainlinks evalúan los mismos datos antes de enviar la información. Fuente

  • Witnet: se trata de una Red de Oráculos Descentraliza (DON) que permite que cualquier software tenga acceso a información publicada en cualquier dirección web en cualquier momento, con una prueba completa y verificable de la integridad de la información, sin confiar ciegamente en ningún tercero. El protocolo Witnet logra esto al permitir que una red de computadoras actúe como un Oráculo descentralizado que recupera, certifica y entrega información a contratos inteligentes, sin un único punto de confianza. Se trata de una red distribuida de nodos pares, denominados «testigos» que ganan tokens WIT a modo de recompensa por recuperar y entregar de forma segura información web a contratos inteligentes (Figura 5). Como consecuencia, por cada petición de información, un número determinado de pares anónimos seleccionados al azar (entre los que forman la red de Witnet) recuperan información de una o más fuentes de datos para converger en una sola verdad sobre los datos que recuperaron. La red de Witnet mantiene una estructura de datos de blockchain, que sirve como un libro de contabilidad común, y en la que los testigos también se encargan de validar las transacciones y agruparlas en bloques que se agregan periódicamente a la cadena. El protocolo de consenso está concebido para garantizar la máxima descentralización y equidad, de modo que el peso de cada testigo en la red está alineado con su reputación como operador confiable.

Witnet Oraculo Master Blockchain Online 
Figura 5: ejemplo de gestión de una solicitud de datos en Witnet mediante tres nodos a través de tres APIs. Fuente

Conclusión

Las aplicaciones blockchain y los contratos inteligentes desplegados en ellas, no pueden acceder y obtener directamente los datos que requieren: precios de activos financieros, información relacionada con el clima, generación de números aleatorios, etc. Esto hace que las cadenas de bloques vivan en su realidad aislada, completamente ajenas del resto del mundo, haciendo que la interoperabilidad y la escalabilidad de las mismas esté muy limitada.

Para evitar estos problemas, surge la figura de los Oráculos, los cuales vendrían a ser los puentes que permiten conectar las cadenas de bloques entre ellas y con el mundo exterior. Los Oráculos son servicios de terceros que proporcionan contratos inteligentes con información externa. Como consecuencia de lo anterior, gracias a los Oráculos se ha expandido exponenciamente los casos de uso de las tecnologías blockchain.

    Referencias