Town Crier y Chainlink: Enriqueciendo y Ampliando las Capacidades de los Oráculos
Este artículo es una traducción de https://blog.chain.link/town-crier-and-chainlink/ escrito por ChainLink y traducido por Ari Kiry
A menudo la gente me pregunta si los contratos inteligentes van a tener un impacto real algún día. Desde mi punto de vista hacer predicciones en el ámbito tecnológico es un juego peligroso. Por suerte en este caso no hace falta: Los contratos inteligentes ya están teniendo un gran impacto.
La financiación del sector tecnológico ha sido transformada gracias a contratos inteligentes, con ventas de miles de millones de dólares en tokens ERC20, superando la inversión en las primeras startups de Internet. Incluso han conseguido que la gente pague más por gatos digitales que por el ejemplar de carne y hueso más caro (un animal hermoso, comparado a un CryptoKitty).
Sin embargo, por mucho dinero y pelaje que hayan revuelto, estos logros en materia de contratos inteligentes son bastante banales, técnicamente hablando. Los contratos de tokens son poco más que registros o blockchains dentro de blockchains. Los CryptoKitties son sólo tokens (no fungibles).
Cuando empecé a investigar sobre los contratos inteligentes en sus inicios (en 2015), estaba bastante claro que para hacer algo interesante los contratos inteligentes necesitarían conectarse con el mundo real. Esas conexiones llamadas oráculos, estaban muy poco desarrolladas para sistemas blockchain. Por eso mi equipo, dirigido por Fan Zhang, se embarcó en la creación del oráculo Town Crier (TC).
Es tan raro como gratificante ver investigaciones académicas adoptadas por la industria. Sin embargo, gracias a la ayuda de Intel, TC fue la primera aplicación pública que utilizó la nueva tecnología SGX de Intel (de la que hablaremos más adelante) allá en 2017. El mundo blockchain avanza tan rápido que la demanda de buenos oráculos no para de crecer. Así Town Crier ha pasado a formar parte de Chainlink y nuestro equipo está encantado de que esto ocurra.
Quiero expresar algunas ideas sobre cómo Town Crier puede enriquecer a Chainlink. Me gustaría hacer hincapié en ciertos aspectos en los que TC complementa las capacidades de Chainlink como sistema descentralizado, y como estas se verán ampliadas, permitiendo a los oráculos hacer cosas que eran difíciles de imaginar.
Déjenme comenzar con una respuesta a la pregunta:
¿Qué es Town Crier?
En pocas palabras, TC es un oráculo respaldado por un entorno de ejecución de confianza (TEE, por sus siglas en inglés).
Un oráculo, en su forma más básica, es un servicio que recibe una petición Q de un contrato inteligente SC y devuelve una respuesta A. La petición Q puede referirse a casi cualquier cosa, por ejemplo, “¿Cuál era el precio de Ether en USD a las 3 de la tarde de hoy?” (para un contrato inteligente financiero), “¿Alquiló Alice el dron #2871?” (para un contrato inteligente de alquiler de drones), “¿Aterrizó a tiempo el vuelo #123 de Seraphim Airways?” (para un contrato de seguro de vuelo), “¿Consiguió Trump su muro?” (para un contrato de apuestas). Normalmente, el servicio obtiene su respuesta A de uno o varios sitios web de confianza.
TEE es una capacidad de hardware que permite a programas como Town Crier ejecutarse en un entorno protegido. Este entorno, llamado enclave, proporciona integridad y confidencialidad. Por integridad entendemos que es inviable que un atacante manipule el código en un enclave. Lo que garantiza a los usuarios que TC está actuando como un oráculo honesto. La confidencialidad significa que un atacante tampoco puede inspeccionar el contenido de un enclave. TC aprovecha la confidencialidad de TEE para manejar datos sensibles de forma segura. Cualquier dato desde contraseñas hasta claves privadas que controlan criptomonedas o información de identificación personal. (Doy algunas salvedades al final de este blog explicando cómo la seguridad de los TEE no es perfecta).
Para conceptualizar, puedes imaginar un enclave como una caja negra, un entorno robusto y opaco en el que ejecutar programas de forma segura. También puedes pensar en TC como un oráculo que se ejecuta en dicha caja negra.
Integridad del oráculo
Como sistema de oráculos descentralizado, Chainlink puede facilitar a los contratos inteligentes respuestas de múltiples nodos o fuentes. Por ejemplo, un contrato inteligente puede recibir respuestas de tres nodos diferentes de Chainlink a la pregunta: “¿Cuál era el precio del Ether en dólares a las 15 horas de hoy?” Si la mayoría de nodos son honestos, es fácil asegurarse de que A es correcto: simplemente se toma el valor predominante de las respuestas de los nodos. Siempre que dos de las tres respuestas sean correctas (y coherentes), se obtendrá un valor correcto de A. Incluso si un oráculo proporciona una respuesta incorrecta, A seguirá siendo correcto.
TC, además, puede garantizar respuestas correctas con un solo nodo. Concretamente, proporciona una garantía de extremo a extremo: Siempre que un nodo ejecute TC en un TEE, un adversario no puede manipular una respuesta mientras sea transmitida por el oráculo desde el sitio web al contrato inteligente.
Quizá algunos usuarios sean escépticos respecto a la seguridad de las TEEs, por las razones que explico en el anexo de este blog. Por suerte la descentralización y las TEEs no son opciones excluyentes. Se pueden usar ambas de forma sencilla, complementaria y segura. Ejecutar TC en los nodos de un sistema descentralizado ayuda a garantizar que estos nodos se comporten honestamente. Para que el oráculo envíe respuestas erróneas a los contratos inteligentes, la mayoría de los nodos tendrían que estar corruptos o actuar de forma deshonesta y ADEMÁS las TEEs de sus nodos tendrían que fallar. Dicho de otro modo, un sistema descentralizado que utiliza TEEs, incluso si son defectuosos, es estrictamente más robusto que un sistema que no lo hace.
Confidencialidad del oráculo
La otra característica fundamental de TC es su capacidad para imponer la confidencialidad. Esta capacidad en particular amplía las funciones que los oráculos descentralizados pueden ofrecer de forma segura.
Tomemos un ejemplo de la publicación de Town Crier para mostrar cómo un oráculo con más funciones de este tipo puede generar nuevos mercados. Alice quiere vender un juego de Steam a Bob por 1 ETH. Para hacerlo de forma justa, es decir, para asegurarse de que ella recibe su dinero y Bob su juego, ambos pueden utilizar un contrato inteligente. Evidentemente el contrato inteligente puede actuar como intermediario en la transacción de 1 ETH de Alice a Bob. Pero sin un soporte explícito de Steam (una API), que Steam no proporciona, ¿cómo puede el contrato determinar si Alice le envió el juego a Bob?
La respuesta es que Alice puede dar su contraseña al oráculo ejecutando TC, el cual puede entrar en su cuenta y verificar que ha enviado el juego a Bob.
Gracias al uso de un TEE, TC en principio puede manejar de forma segura las contraseñas, incluyendo la de Alice[1]. En cambio, no hay manera de confiar una contraseña de manera segura a un nodo ordinario en una red de oráculos descentralizada. Ni siquiera técnicas como las pruebas de conocimiento cero o computación segura multipartita ayudan. Sea cual sea la técnica criptográfica que se utilice, a fin de cuentas, algún nodo tiene que enviar la contraseña de Alice a Steam. Este nodo solo puede proteger adecuadamente la contraseña utilizando un TEE.
El ejemplo de Steam, es sólo uno entre tantos. TC puede hacer cosas que los oráculos descentralizados por sí solos no pueden conseguir con garantías de seguridad razonables. Aquí hay un par más:
Consultas confidenciales: La petición a un servicio de oráculo es a menudo algo delicado y debería estar oculto, no sólo en la blockchain, sino en el propio servicio de oráculo.
Una utilidad interesante, expuesta en la publicación Town Crier, es la de un contrato de seguro de vuelo.
Supongamos que Alice ha adquirido una póliza con contrato de seguro de vuelo. El contrato necesita saber qué vuelo va a tomar y si su vuelo se retrasa para determinar si se le debe indemnizar.
Alice podría enviar su información de vuelo directamente al contrato, pero entonces sus planes de viaje estarían en la blockchain y serían visibles para todo el mundo. También podría ocultar la información de su vuelo (aerolínea, número y fecha) en la cadena encriptándola bajo la clave pública del servicio de oráculo. Pero esta información debe ser desencriptada en algún lugar. En un sistema de oráculo descentralizado, sería descifrada por los nodos, y por tanto expuesta a sus operadores.
En cambio, TC puede ocultar la información de vuelo de Alice dentro de su TEE, ocultándola tanto en la blockchain como al operador de TC. La idea se resume de la siguiente manera:
Cómputo privado: Considera un contrato inteligente de préstamo que necesita determinar si Alice es solvente según una fórmula especial F que es propiedad del creador del contrato. (Por ejemplo, F podría combinar el saldo de su cuenta bancaria, la calidad de su comunidad en las redes sociales y su puntuación de crédito en las principales agencias). En este ejemplo, hay tres aspectos críticos de confidencialidad que deben ser respetados: (1) Las credenciales (p. ej. contraseñas) que Alice utiliza para entrar en los sitios web con sus datos; (2) Los datos relacionados con el crédito en sí; y (3) La fórmula F, que el creador del contrato puede querer mantener en secreto.
En un un mundo ideal, los operadores de nodo y el contrato sólo deberían ver un bit de información: Si Alice es solvente o no según F. Este nivel de confidencialidad al procesar datos sofisticados, viene de la mano de TC para este y otros tantos casos de uso.
El futuro de Town Crier en Chainlink
Aunque es evocador, por desgracia el término “oráculo” limita la imaginación. Sugiere un servicio que meramente responde a preguntas. Un oráculo puede ser y será mucho más: Un conector general, bidireccional y con capacidad de computación entre sistemas on-chain y off-chain. Esta es básicamente la visión de Chainlink para ampliar las capacidades de los oráculos.
Al usar los oráculos en este sentido más amplio, los contratos inteligentes podrían, por ejemplo, monitorear y controlar dispositivos del Internet de las cosas. Podrían utilizar el GPS AIS para rastrear envíos de alimentos, controlar y analizar datos de sensores de temperatura para garantizar la integridad de la cadena de frío y desbloquear los contenedores cuando se cumplan las condiciones de pago y otras. Para que sea viable con las industrias existentes, tendrán que interconectarse con los anteriores sistemas, un objetivo englobado en el Gran Desafío IC3 “Sound Migration”. Y, en muchos casos, tendrán que realizar cálculos intensivos y privados que sólo son viables off-chain[2].
Si tuviera que hacer una predicción, diría que TC, gracias a sus capacidades respaldadas por los TEE, desempeñará un papel importante a la hora de hacer realidad esta panoplia de posibilidades en Chainlink.
Aviso: Desarrollé TC en mi papel como miembro de la facultad en Cornell Tech, donde también soy co-director de la Iniciativa para Criptomonedas y Contratos (IC3). Más tarde, me convertí en asesor técnico de Chainlink, una función distinta de mis actividades académicas. Las opiniones expresadas en este artículo son mías.
1] Los TEE también pueden utilizarse de forma que la propia Alice se conecte a su cuenta utilizando su propio TEE, que a su vez produce un certificado a prueba de manipulaciones del hecho de que ha transferido el juego.
2] Para ejemplos de cómo implementar contratos inteligentes completos en TEEs, haciéndolos privados y eficaces, ver Private Data Objects y Ekiden.
Anexo
Pero, ¿los TEEs no eran vulnerables?
Hoy en día, Intel Software Guard eXtensions (SGX) es el único TEE ampliamente disponible que tiene las propiedades de integridad y confidencialidad que he descrito, además de ser compatible con otra característica clave llamada atestación: prueba remota de que un programa concreto se está ejecutando en un enclave. SGX está integrado en Skylake y en las CPUs de Intel más recientes.
SGX está pensado para trabajar en un entorno de fuerte adversidad. Proporciona protecciones de hardware para el código y los datos incluso contra el sistema operativo de la máquina en la que se ejecuta un programa. También protege contra la manipulación física y, por tanto, contra el operador y/o el poseedor físico del host. Pero SGX viene con importantes salvedades.
Intel ya advirtió, y los investigadores lo demostraron desde el principio, que SGX es vulnerable a los ataques de canal lateral (side-channel). La arquitectura SGX filtra intrínsecamente cierta información sobre la ejecución de la aplicación (como los fallos de página, que el propio sistema operativo puede inducir). Los ataques más recientes, sobre todo el de Foreshadow, han socavado gravemente la seguridad de SGX, tanto su integridad como confidencialidad.
Entonces, ¿significa esto que SGX es inútil? Teniendo en cuenta los retos arquitectónicos que los ataques a SGX han puesto de manifiesto, ¿es viable llevar a cabo la visión de los TEEs?
En materia de seguridad no existen absolutos. No sirve de nada preguntarse si un sistema es seguro, sino si es seguro contra una clase particular de adversario o adversarios. Las vulnerabilidades críticas son un hecho ineludible en toda infraestructura informática. Los ataques y protecciones también evolucionan. Ya se vislumbran nuevas arquitecturas TEE.
Por lo tanto, las preguntas relevantes que hay que hacerse son: ¿Qué protege el TEE? ¿Quién lo maneja? ¿Y para cuándo estará operativo?? Un TEE alojado por un proveedor de servicios de confianza y utilizado para proteger activos valorados en varios millones, probablemente me inspire confianza. Un contrato inteligente multimillonario cuya seguridad depende de que no se rompa ningún TEE en ningún lugar del mundo es definitivamente una mala idea.
También existen modelos en los que es posible limitar la exposición de los TEE confiando en su integridad, en lugar de en sus propiedades (más vulnerables) de confidencialidad.
Town Crier y los Entornos de Ejecución de Confianza en general pueden considerarse una alternativa o un complemento a la descentralización. Creo firmemente y he apostado gran parte de mi investigación más reciente en la hipótesis de que los TEEs resultarán no sólo valiosos, sino vitales para la infraestructura práctica de blockchain.
Ari Juels