¿En qué consiste el problema del oráculo en las blockchains?
Este artículo es una traducción de https://blog.chain.link/what-is-the-blockchain-oracle-problem/ escrito por ChainLink y traducido por Comunidad de Chainlink en español.
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
- Explicar el trabajo que lleva a cabo un oráculo
- Abarcar el por qué las blockchains como Ethereum no tienen soluciones nativas de oráculo
- Identificar los riesgos de seguridad de los oráculos centralizados
- Introducir Chainlink, el estándar de los oráculos descentralizados fiables y seguros
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.
- Extraer — filtra datos de sistemas externos como APIs alojadas en servidores de terceros.
- Dar formato — permite que dos sistemas se comuniquen entre sí al darle un formato común a los datos obtenidos mediante APIs para que sea legible para una blockchain (input) o haciendo que los datos de la blockchain sean compatibles con APIs externas (output).
- Validar — crea una prueba criptográfica de la actividad del oráculo usando una combinación de datos, firmas, firma de transacciones blockchain, firmas TLS, Entornos de Ejecución de Confianza (TEEs por sus siglas en inglés) y pruebas de conocimiento cero (ZK proofs).
- Procesamiento — lleva a cabo algún tipo de procesamiento de los datos, como calcular la mediana a partir de los datos entregados por varios oráculos o tareas más complejas como calcular la cuota de un seguro a partir de distintos tipos de datos (perfil de riesgo personalizado, tasas de mercado, coste del capital… etc).
- Transmitir — firma y transmite una transacción en la blockchain como medio para enviar datos y su correspondiente prueba on-chain para que los contratos inteligentes lo usen.
- Output (opcional) — envía datos a sistemas externos tras la ejecución de un contrato inteligente. Por ejemplo, la remisión de instrucciones de pago a una red de pagos tradicionales o enviar instrucciones a algún sistema ciberfísico (IoT).
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.
¿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?
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.
- Adaptadores Externos — al permitir que los nodos almacenen claves API de forma segura y gestionen credenciales de acceso, los contratos inteligentes pueden obtener datos de cualquier sistema externo o API, incluyendo aquellos que están protegidos por contraseñas / credenciales.
- Descentralización — al aplicar la descentralización a nivel de oráculo y de las fuentes de datos se evita que alguien se convierta en una vulnerabilidad central para el sistema, lo cual proporciona a los usuarios la garantía de que los datos serán entregados a tiempo y serán resistentes ante las manipulaciones.
- Datos firmados — Como los nodos firman criptográficamente los datos que proporcionan a los contratos inteligentes, los usuarios pueden identificar qué nodos enviaron esos datos y ver su historial para determinar la calidad de su rendimiento.
- Acuerdos de Servicio — Mediante acuerdos vinculantes on-chain entre los oráculos y el contrato inteligente que solicita los datos, y un sistema de recompensas / penalizaciones, lo usuarios mitigan el riesgo de que sus peticiones de datos off-chain no se completen según lo acordado.
- Sistema de reputación — los sistemas de reputación pueden obtener los datos que los oráculos firman on-chain para crear estadísticas sobre el rendimiento de los nodos de la red (peticiones de datos realizadas con éxito, clientes a los que sirve, tiempo promedio de respuesta… etc). De este modo, los usuarios de la red y los desarrolladores de contratos inteligentes pueden tomar decisiones en base a esta información.
- Servicios de certificación — permiten que los nodos incrementen su seguridad y fiabilidad que transmiten de cara a los usuarios obteniendo certificados que garanticen algunos aspectos fundamentales del nodo como su identidad (KYC), su localización geográfica, auditorías de seguridad de su infrastructura y mucho más.
- Criptografía avanzada y hardware — los nodos además son lo suficientemente flexibles como para llevar a cabo criptografía más avanzada (como pruebas de conocimiento cero) y hardware (entornos de ejecución de confianza), lo cual hace posible que los oráculos lleven a cabo funciones adicionales como demostrar el origen de los datos a un contrato inteligente (ej: datos específicos que vienen de un servidor en concreto), mantener la confidencialidad de los datos (incluso para el propio oráculo), llevar a cabo computación off-chain… etc.
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.