Documentos de Académico
Documentos de Profesional
Documentos de Cultura
ChainLink
Una red descentralizada de Oracle
Resumen
Los contratos inteligentes están a punto de revolucionar muchas
industrias al reemplazar la necesidad de acuerdos legales tradicionales y
acuerdos digitales centralmente automatizados. Tanto la verificación del
rendimiento como la ejecución dependen de acciones manuales de una de
las partes contratantes, o de un sistema automatizado que programa- mente
recupera y actualiza los cambios relevantes. Lamentablemente, debido a
sus protocolos de consenso subyacentes, las cadenas de bloqueo en las
que se ejecutan los contratos inteligentes no pueden soportar la
comunicación nativa con los sistemas externos.
Hoy en día, la solución a este problema es introducir una nueva
funcionalidad, llamada oráculo, que proporciona conectividad con el mundo
exterior. Los oráculos existentes son servicios centralizados. Cualquier
contrato inteligente que utilice esos servicios tiene un único punto de falla, lo
que lo hace no más seguro que un acuerdo digital tradicional y centralizado.
En este documento presentamos ChainLink, una red descentralizada de
oráculos. Describimos los componentes de la cadena que ChainLink
proporciona para los contratos para obtener la conectividad externa, y el
software que alimenta los nodos de la red. Presentamos tanto un sistema
simple de agregación de datos de contratos en cadena, como un mecanismo
de consenso fuera de la cadena más eficiente. También describimos los
servicios de apoyo de supervisión de la reputación y la seguridad de
ChainLink que ayudan a los usuarios a hacer una selección informada de
proveedores y a lograr un servicio robusto incluso en condiciones
agresivamente adversas. Por último, caracterizamos las propiedades de un
oráculo ideal como guía para nuestra estrategia de seguridad, y presentamos
posibles mejoras futuras, incluyendo la programación de oráculos con
muchas características, las modificaciones de la infraestructura de la fuente
1
de datos y la ejecución de contratos inteligentes confidenciales.
2
Contenido
1 Introducción 3
2 Visión general de la arquitectura 4
2.1 La arquitectura de la cadena......................................... .5
2.2 Arquitectura fuera de la cadena........................................... .6
3 Seguridad de Oracle 7
8 Conclusión 27
3
1 Introducción
Los contratos inteligentes son aplicaciones que se ejecutan en una infraestructura
descentralizada, como una cadena de bloques. Son a prueba de manipulaciones,
en el sentido de que ninguna parte (ni siquiera su creador) puede alterar su
código o interferir con su ejecución. Históricamente, los contratos incorporados
en el código se han ejecutado de manera centralizada, lo que los deja sujetos a la
alteración, terminación e incluso eliminación por una parte privilegiada. En
cambio, las garantías de ejecución de los contratos inteligentes, que obligan a
todas las partes en un acuerdo tal como está escrito, crean un nuevo y poderoso
tipo de relación de confianza que no se basa en la confianza en una sola parte. Al
ser autoverificables y autoejecutables (es decir, a prueba de manipulaciones,
como se ha explicado anteriormente), los contratos inteligentes ofrecen así un
vehículo superior para la realización y administración de acuerdos digitales.
Sin embargo, el nuevo y poderoso modelo de confianza que encarnan los
contratos inteligentes introduce un nuevo desafío técnico: la conectividad. La gran
mayoría de las interesantes[27]1 aplicaciones de los contratos inteligentes se
basan en datos sobre el mundo real que provienen de recursos clave,
específicamente los feeds de datos y los APIs, que son externos a la cadena de
bloqueo. Debido a la mecánica de los mecanismos de consenso que sustentan las
cadenas de bloques, una cadena de bloques no puede obtener directamente esos
datos críticos.
Proponemos una solución al problema de la conectividad del contrato
inteligente en forma de ChainLink, una red oráculo segura. Lo que diferencia a
ChainLink de otras soluciones de oráculo es su capacidad para funcionar como
una red totalmente descentralizada. Este enfoque descentralizado limita la
confianza en una sola parte, lo que permite que la calidad a prueba de
manipulaciones valorada en los contratos inteligentes se extienda a la operación de
extremo a extremo entre los contratos inteligentes y las API en las que confían. La
sensibilización externa de los contratos inteligentes, es decir, su capacidad de
interactuar con los recursos fuera de la cadena, es necesaria para que sustituyan a
los acuerdos digitales que se utilizan hoy en día.
Hoy en día, la mayor parte de los acuerdos contractuales tradicionales que se
han automatizado digitalmente utilizan datos externos para probar el
cumplimiento de los contratos, y requieren que los resultados de los datos se
trasladen a sistemas externos. Cuando los contratos inteligentes sustituyan a
estos mecanismos contractuales más antiguos, requerirán versiones de alta
seguridad de los mismos tipos de entradas y salidas de datos. Entre los ejemplos de
posibles contratos inteligentes de próxima generación y sus requisitos de datos
cabe citar:
4
Los contratos de valores inteligentes como los bonos, los derivados de los tipos de
- interés y muchos otros requerirán el acceso a las API que informan sobre los
• precios de mercado y los datos de referencia del mercado, por ejemplo, los
tipos de interés.
1
El principal uso de los contratos inteligentes en el Etéreo hoy en día es la gestión de fichas, que son
una funcionalidad común en la mayoría de las redes de contratos inteligentes. Creemos que el actual
enfoque en los tokens, excluyendo muchas otras posibles aplicaciones, se debe a la falta de servicios de
oráculo adecuados, situación que ChainLink pretende remediar específicamente.
5
- Los contratos de seguros inteligentes necesitarán datos sobre los datos de IO
• relacionados con el evento asegurable en cuestión, por ejemplo: ¿estaba la
puerta magnética del almacén cerrada en el momento del incumplimiento,
estaba el firewall de la compañía en línea, o el vuelo para el que tenía seguro
llegó a tiempo?
- Los contratos inteligentes de financiación del comercio necesitarán datos del GPS
• sobre los envíos, datos de los sistemas de planificación de recursos
empresariales de la cadena de suministro y datos de aduana sobre las
mercancías que se envíen para confirmar el cumplimiento de las
obligaciones contractuales.
7
2.1 Arquitectura en cadena
Como servicio de oráculo, los nodos ChainLink devuelven las respuestas a las
solicitudes o consultas de datos realizadas por o en nombre de un contrato de
usuario, a las que nos referimos como contratos de solicitud y que denotan el USER-
SC. La interfaz en cadena de ChainLink para solicitar contratos es en sí misma un
contrato en cadena que denominamos CHAINLINK-SC.
Detrás de CHAINLINK-SC, ChainLink tiene un componente en cadena que consiste
en tres contratos principales: un contrato de reputación, un contrato de coincidencia de
pedidos y un contrato de agregación. El contrato de reputación hace un seguimiento del
rendimiento del proveedor de servicios de oracle
métricas. El contrato inteligente de ajuste de pedidos toma un acuerdo de nivel de
servicio propuesto, registra los parámetros del SLA y recoge las ofertas de los
proveedores del oráculo. Luego selecciona las ofertas usando el contrato de
reputación y finaliza el SLA de oracle. El contrato de agregación recoge las
respuestas de los proveedores de oráculos y calcula el resultado colectivo final de
la consulta ChainLink. También alimenta la métrica del proveedor del oráculo en
el contrato de reputación. Los contratos ChainLink están diseñados de manera
modular, lo que permite que sean configurados o reemplazados por los usuarios
según sea necesario. El flujo de trabajo en la cadena tiene tres pasos: 1) selección
del oráculo, 2) reporte de datos, 3) agregación de resultados.
9
monitorear y filtrar en base a sus capacidades y objetivos de servicio. Los nodos
de ChainLink eligen entonces si licitan o no la propuesta, y el contrato sólo acepta
ofertas de los nodos que cumplen los requisitos del SLA. Cuando un proveedor de
servicios de oráculo licita un contrato, se compromete a ello, específicamente
adjuntando el importe de la pena que se perdería debido a su mal
comportamiento, tal como se define en el SLA.
Las ofertas son aceptadas por la totalidad de la ventana de licitación. Una vez
que el SLA ha recibido suficientes ofertas calificadas y la ventana de licitación ha
terminado, se selecciona el número de oráculos solicitado del conjunto de
ofertas. Los pagos de penalizaciones que se ofrecieron durante el proceso de
licitación se devuelven a los oráculos que no fueron seleccionados, y se crea un
registro de SLA finalizado. Cuando el SLA finalizado se registra, se activa un
registro que notifica a los oráculos seleccionados. A continuación, los oráculos
realizan la asignación detallada por el SLA.
Reporte de datos Una vez creado el nuevo registro del oráculo, los oráculos fuera
de la cadena ejecutan el acuerdo e informan de nuevo en la cadena. Para más
detalles sobre las interacciones fuera de la cadena, ver las secciones 2.2 y 4.
Agregación de resultados Una vez que los oráculos hayan revelado sus resultados
al con- tracto oráculo, sus resultados serán alimentados al contrato de
agregación. El contrato de agregación cuenta los resultados colectivos y calcula
una respuesta ponderada. La validez de cada respuesta del oráculo se comunica
entonces al contrato de reputación. Finalmente, la respuesta ponderada se
devuelve a la función de contrato especificada en USER-SC.
La detección de valores alejados o incorrectos es un problema específico de
cada tipo de alimentación y aplicación de datos. Por ejemplo, la detección y el
rechazo de las respuestas periféricas antes del promedio pueden ser necesarios
para los datos numéricos pero no para los booleanos. Por esta razón, no habrá un
contrato de agregación específico, sino una dirección de contrato configurable
que sea especificada por el comprador. ChainLink incluirá un conjunto estándar
de contratos de agregación, pero también se podrán especificar contratos
personalizados, siempre que se ajusten a la interfaz de cálculo estándar.
11
extensiones, conocidas como adaptadores externos, que permiten a los
operadores ofrecer servicios adicionales especializados fuera de la cadena. Los
nodos ChainLink ya se han desplegado a lo largo de las cadenas de bloqueo
públicas y las redes privadas en el ámbito empresarial; la motivación de la red
ChainLink es permitir que los nodos funcionen de manera descentralizada.
3 Seguridad de Oracle
Para explicar la arquitectura de seguridad de ChainLink, primero debemos
explicar por qué la curiosidad es importante y lo que significa.
12
¿Por qué los oráculos deben ser seguros? Volviendo a nuestros simples ejemplos en
la sección 1, si un contrato de seguridad inteligente recibe una alimentación de
datos falsos, puede pagar a la parte incorrecta, si las alimentaciones de datos del
contrato inteligente pueden ser manipuladas por la parte asegurada
13
Figura 1: Flujo de trabajo de ChainLink: 1) El USER-SC hace una solicitud en la
cadena; 2) El CHAINLINK-SC registra un evento para los oráculos; 3) El núcleo de
ChainLink recoge el evento y enruta la asignación a un adaptador; 4) El adaptador
ChainLink realiza una solicitud a una API externa; 5) El adaptador ChainLink procesa
la respuesta y la devuelve al núcleo; 6) El núcleo de ChainLink reporta los datos al
CHAINLINK-SC; 7) El CHAINLINK-SC agrega las respuestas y las devuelve como una sola
respuesta al USER-SC.
puede haber fraude al seguro, y si los datos del GPS dados a un contrato de
financiación comercial pueden ser modificados después de que salga del
proveedor de datos, el pago puede ser liberado para las mercancías que no han
llegado.
En términos más generales, una cadena de bloques que funciona bien, con su
libro de contabilidad o su tablón de anuncios, ofrece propiedades de seguridad
muy fuertes. Los usuarios confían en la cadena de bloqueo como una
funcionalidad que valida correctamente las transacciones y evita que los datos
sean alterados. La tratan en efecto como un tercero de confianza (un concepto
que discutiremos en detalle más adelante). Un servicio de oráculo de apoyo debe
ofrecer un nivel de seguridad acorde con el de la cadena de bloques que soporta.
Por lo tanto, un oráculo también debe servir a los usuarios como un tercero de
confianza efectivo, proporcionando respuestas correctas y oportunas con una
probabilidad muy alta. La seguridad de cualquier sistema es tan fuerte como su
eslabón más débil, por lo que se requiere un oráculo altamente confiable para
preservar la confiabilidad de una cadena de bloques bien diseñada.
Definiendo la seguridad del oráculo: Una vista ideal. Para poder razonar sobre la
seguridad del oráculo, primero debemos definirla. Una forma instructiva y de
principios para razonar sobre la seguridad del oráculo proviene del siguiente
experimento de pensamiento. Imagina que un tercero de confianza (TTP) -una
entidad o funcionalidad ideal que siempre lleva a cabo las instrucciones fielmente
al pie de la letra- se encargara de ejecutar un oráculo. Denominaremos a este
oráculo por ORACLE (usando todas las mayúsculas en general para denotar una
entidad en la que los usuarios confían plenamente), y supongamos que el TTP
14
obtiene datos de una fuente de datos perfectamente fiable Src. Dado este servicio
mágico de ORACLE, ¿qué instrucciones le pediríamos que llevara a cabo? Para
lograr la propiedad de integridad, también conocida como el propulsor de
autenticidad-
En el caso de la compañía de seguros, simplemente le pediríamos a ORACLE que realizara los
siguientes pasos:
15
Figura 2: El comportamiento de un oráculo ideal ORÁCULO se define por pasos: 1)
Aceptar la solicitud; 2) Obtener datos; 3) Devolver los datos. Además, para proteger la
confidencialidad de una solicitud, al desencriptarla, ORÁCULO nunca utiliza o revela los
datos que contiene, excepto para consultar Src.
el Src de origen a través de canales seguros, es decir, a prueba de manipulaciones. (Si Src es un servidor
web, se requiere TLS. Para comunicarse con el USUARIO-SC, ORACLE debe asegurarse de raspar la cadena
de bloqueo correcta y firmar digitalmente la A apropiadamente).
16
comercio financiero, Req podría filtrar información sobre las operaciones y la
cartera de un usuario. Hay muchos otros ejemplos, por supuesto.
Para proteger la confidencialidad de la Req, podemos exigir que los datos de la
Req sean encriptados bajo una (clave pública) perteneciente a ORACLE.
Continuando con la naturaleza TTP de ORACLE, podríamos entonces simplemente
darle a ORACLE la restricción del flujo de información:
Al desencriptar la Req, nunca revele o use datos en la Req excepto para consultar el Src.
Hay otras propiedades importantes del oráculo, como la disponibilidad, la
última de la clásica tríada CIA (Confidencialidad-Integridad-Disponibilidad). Un
servicio verdaderamente ideal O-ACLE, por supuesto, nunca se vendría abajo. La
disponibilidad también abarca propiedades más sutiles como la resistencia a la
censura: Un ORÁCULO honesto no seleccionará contratos inteligentes parciales y
negará sus peticiones.
El concepto de tercero de confianza es similar a la noción de una función
ideal- alidad [7] utilizada para probar la seguridad de los protocolos
criptográficos en ciertos modelos. También podemos modelar una cadena de
bloques en términos similares, conceptualizándola en términos de un TTP que
mantiene un tablero de anuncios ideal. Sus instrucciones son aceptar las
transacciones, validarlas, serializarlas y mantenerlas permanentemente en el
tablón de anuncios, una estructura de datos de sólo apéndice.
Por qué el oráculo ideal (ORÁCULO) es difícil de conseguir. No existe, por supuesto,
una fuente de datos perfectamente fiable, Src. Los datos pueden ser corrompidos
benigna o maliciosamente debido a sitios web defectuosos, proveedores de
servicios tramposos o errores honestos.
Si Src no es confiable, entonces incluso si ORACLE opera exactamente como un
TTP como en la estructura anterior, todavía no cumple completamente con la
noción de seguridad que queremos. Dada una fuente defectuosa Src, la propiedad de
integridad definida arriba ya no significa que un oráculo
La respuesta A es correcta. Si el precio real de Intel es de 40 dólares y
https://www.FountOfKnowledge.com lo informa erróneamente como 50 dólares, por
ejemplo, entonces ORACLE enviará el valor incorrecto a = 50 dólares
a USER-SC. Este problema es inevitable cuando se utiliza una sola fuente Src.
ORACLE simplemente no tiene forma de saber si las respuestas que el Src
proporciona a sus consultas son correctas. Un problema mayor, por supuesto, es
el hecho de que nuestro TTP para ORACLE es sólo una abstracción. Ningún
proveedor de servicios es incondicionalmente confiable. Incluso el mejor
intencionado
puede ser de buggy o hackeado. Por lo tanto, no hay manera de que un usuario o
un contrato inteligente tenga la absoluta seguridad de que un servicio ORACLE
llevará a cabo sus instrucciones fielmente.
ChainLink razona sobre sus protocolos de seguridad en términos de esta
17
funcionalidad ideal ORACLE. Nuestro objetivo en ChainLink es conseguir un
sistema en el mundo real con propiedades lo más cercanas posibles a las de ORACLE
bajo supuestos de confianza realistas. Ahora explicamos cómo.
Para simplificar lo que sigue, ahora denotamos por CHAINLINK-SC el conjunto
completo de contratos de ChainLink, es decir, su completa funcionalidad en
cadena (no sólo su interfaz
18
a la solicitud de contratos). De este modo, abstrajimos los múltiples contratos
individuales que se utilizan realmente en la arquitectura del sistema.
20
Figura 3: Las solicitudes se distribuyen en ambos oráculos y fuentes de datos. Esta
figura muestra un ejemplo de esa distribución en dos niveles.
se superponen con los de otros oráculos. Oi agrega las respuestas de sus fuentes
de datos y produce su propia respuesta distinta Ai a una consulta Req.
Algunos de estos oráculos pueden ser defectuosos. Así que claramente el
conjunto de todas las respuestas de los oráculos A1, A2, . . . ...A, deberá ser agregada
de manera confiable en un único valor iterativo de autor A. Pero dada la
posibilidad de oráculos defectuosos, ¿dónde y cómo ocurrirá esta agregación en
ChainLink?
21
cadena. Así, los usuarios, es decir, los creadores de USER-SC, pueden lograr
un alto grado de confianza en CHAINLINK-SC.
Por simple que sea, este enfoque presenta un novedoso e interesante desafío
técnico, a saber, el problema de la carga gratuita. Un oráculo tramposo Oz puede
observar la respuesta Ai de otro oráculo Oi y copiarla. De esta manera, el oráculo
Oz evita el gasto de consultar las fuentes de datos, que pueden cobrar por cada
consulta. La carga gratuita debilita la seguridad al socavar la diversidad de las
consultas de las fuentes de datos y también desincentiva a los oráculos a
responder rápidamente: Responder lentamente y el "freeloading" es una
estrategia más barata.
Sugerimos una solución bien conocida a este problema, a saber, el uso de un
esquema de compromiso/revelación. En una primera ronda, los oráculos envían
compromisos criptográficos CHAINLINK-SC a sus respuestas. Después de que
CHAINLINK-SC ha recibido un quórum de respuestas, inicia una segunda ronda en
la que los oráculos revelan sus respuestas.
El algoritmo 1 muestra un simple protocolo secuencial que garantiza la
disponibilidad dada 3f + 1 nodos. Utiliza un esquema de compromiso/revelación
para prevenir la carga gratuita. Las respuestas de los oráculos se descomprimen y,
por lo tanto, se exponen a un posible aprovechador sólo después de que se hayan
hecho todos los compromisos, excluyendo así al aprovechador de copiar las
respuestas de otros oráculos.
Los protocolos de la cadena pueden aprovechar los tiempos de bloqueo para
soportar los desvíos de los protocolos sincrónicos. En ChainLink, sin embargo, los
nodos oráculos obtienen datos de fuentes que pueden tener tiempos de respuesta
muy variables, y los tiempos de descompromiso de los nodos pueden variar
debido, por ejemplo, al uso de diferentes precios del gas en el Etéreo. Por lo
tanto, para asegurar la respuesta más rápida posible del protocolo, Alg. 1 está
diseñado como un protocolo asíncrono.
Aquí, Commitr(A) denota un compromiso de valor A con el testigo r, mientras que SID
denota el conjunto de identificaciones de sesión válidas. El protocolo asume
canales autentificados entre todos los jugadores.
Es fácil ver a ese Alg. 1 terminará con éxito. Dados 3f + 1 nodos en total, a lo
sumo f son defectuosos, así que al menos 2f + 1 enviará compromisos en el paso
4. De esos compromisos, a lo sumo f provienen de nodos defectuosos, así que al
menos f + 1 provienen de nodos honestos. Todos esos compromisos serán
eventualmente liberados.
Además, es fácil ver que A será correcto en Alg.1. De las
22
descompromisos de f + 1 en el valor único A, al menos uno tiene que provenir de
un nodo honesto. La agregación en el contrato a través de Alg. 1 será el enfoque
principal apoyado por Chain- Link a corto plazo. La implementación inicial
propuesta implicará una variante del algoritmo más sofisticada y concurrente.
Nuestra propuesta a largo plazo se refleja
en el protocolo bastante más complicado OCA (Off-Chain Aggregation)
especificado en los Algoritmos 2 y 3 del Apéndice A. OCA es un protocolo de
agregación fuera de la cadena que
23
Algoritmo 1 InChainAgg({Oi}n )i=(código para CHAINLINK-SC)
1
1: Espere hasta que se reciba la solicitud de USER-SC.
2: sid$←SID
3: Emisión (petición, sid).
4: Espere hasta que el conjunto C de 2f + 1 mensajes (commit, ci = Commitri (Ai), sid) de
distinto
Oi son recibidos.
5: Emisión (comprometida, sid).
6: Espere hasta que el conjunto D de f + 1 distinto de descompromisos válidos
(decommit, (ri, Ai), sid)
se reciben donde, para algunos A, todo Ai = A.
7: Enviar (Respuesta, A, sid) a USER-SC.
25
Figura 4: Sigsk[A] puede ser alcanzado por cualquier n/2+1 de los oráculos.
generar una firma parcial σi = Sigski [Ai] que puede ser verificada con respecto a pki.
La característica fundamental de esta configuración es que las firmas parciales
en el mismo valor A pueden agregarse a través de cualquier conjunto de oráculos t
para producir una única firma colectiva válida
− Σ = Sigsk[A] en una respuesta A. Sin
embargo, ningún conjunto de oráculos t 1 puede producir una firma válida en
ningún valor. Así pues, la firma única Σ encarna implícitamente la
firmas de por lo menos t oráculos.
Las firmas de los umbrales pueden realizarse ingenuamente dejando que Σ
consista explícitamente en un conjunto de firmas t válidas e independientes de los
nodos individuales. Las firmas de umbral tienen propiedades de seguridad
similares a este enfoque ingenuo. Pero proporcionan una mejora significativa en
el rendimiento de la cadena: Reducen el tamaño y el costo de la verificación de Σ
por un factor de t.
Con esta configuración, parece que los oráculos pueden generar y emitir
firmas parciales hasta que dichas firmas parciales permitan el cálculo de Σ. De
nuevo, sin embargo, surge el problema de la carga gratuita. Por lo tanto, debemos
asegurarnos de que los oráculos obtengan realmente datos de sus fuentes
designadas, en lugar de engañar y copiar a Ai de
otro oráculo. Nuestra solución implica un mecanismo financiero: Una entidad PROVEEDORA
(realizable como un contrato inteligente) recompensa sólo a los oráculos que han
obtenido datos originales por sus firmas parciales.
En un entorno distribuido, determinar qué oráculos cumplen los requisitos
para recibir el pago resulta difícil. Los oráculos pueden intercomunicarse fuera de
la cadena y ya no tenemos una entidad autoritaria de pecado (CHAINLINK-SC) que
26
reciba respuestas y por lo tanto no son...
27
capaz de identificar a los beneficiarios elegibles directamente entre los oráculos
participantes. En consecuencia, el PROVEEDOR debe obtener pruebas de mal
comportamiento de los propios oráculos, algunas de las cuales pueden ser poco
fiables. Proponemos el uso de mecanismos de consenso en nuestra solución para
ChainLink para asegurar que PROVEEDOR no pague a los oráculos que se cargan
gratis.
El sistema de agregación fuera de la cadena que proponemos para ChainLink,
con los bocetos de prueba de seguridad que lo acompañan, puede encontrarse en
el Apéndice A. Utiliza un protocolo distribuido basado en firmas de umbral que
proporciona resistencia a la carga por oráculos f < n/3. Creemos que la resistencia
a la carga gratuita es un nuevo e interesante problema técnico.
29
- Disponibilidad: El Sistema de Validación debe registrar los fallos de un
• oráculo para poder responder oportunamente a las consultas. Recopilará
estadísticas de tiempo de funcionamiento continuo.
30
proporcionar información esencial sobre el nodo del oráculo
3"Desviación" debe definirse de manera específica para cada dato. Para respuestas booleanas simples -
por ejemplo, si un vuelo llegó a tiempo- la desviación significa simplemente una respuesta opuesta a la de
la mayoría. Para, digamos, la temperatura de una ciudad, que puede variar legítimamente a través de los
sensores y fuentes, la desviación puede significar una desviación numérica significativa. Por supuesto, por
varias razones, por ejemplo, sen- sores rotos, incluso un oráculo que funcione bien puede desviarse de la
respuesta de la mayoría en alguna fracción del tiempo.
31
perfiles de seguridad. Estos pueden incluir la familiaridad de los usuarios con las
marcas de los oráculos, las entidades operativas y las arquitecturas. Prevemos que
el Sistema de Reputación de ChainLink incluya un componente básico en la
cadena donde las calificaciones de los usuarios estén disponibles para que otros
contratos inteligentes los consulten. Además, la métrica de la reputación debería
ser fácilmente accesible fuera de la cadena donde se puedan procesar
eficientemente grandes cantidades de datos y ponderarlos de manera más
flexible.
Para un operador de oráculo determinado, el Sistema de Reputación se
propone inicialmente como soporte de las siguientes métricas, tanto en la
granularidad de los tipos de asignación específicos (véase la Sección 2), como en
general para todos los tipos soportados por un nodo:
- Tiempo medio de respuesta: Si bien puede ser necesario dar tiempo a las
• respuestas de los oráculos para su confirmación, la puntualidad de sus
respuestas será útil para determinar la puntualidad futura. El tiempo medio
de respuesta se calcula sobre la base de las solicitudes completadas.
- El monto de las multas: Si las multas se fijaran para asegurar el desempeño del
• operador de un nodo, el resultado sería una medición financiera del
compromiso de un proveedor de oráculos de no participar en un ataque de
"estafa de salida", en el que el proveedor se lleva el dinero de los usuarios y
no presta servicios. Esta métrica implicaría una dimensión tanto temporal
como financiera.
33
5.3 Servicio de certificación
Mientras que nuestros sistemas de validación y reputación tienen como objetivo
abordar una amplia gama de comportamientos defectuosos de los oráculos y se
propone como una forma de asegurar la integridad del sistema en la gran mayoría
de los casos, ChainLink también puede incluir un mecanismo adicional llamado
Servicio de Certificación. Su objetivo es prevenir y/o remediar eventos raros pero
catastróficos, específicamente el engaño en bloque en forma de Sybil y los ataques
espejo, que ahora explicamos.
Sybil y los ataques de espejo. Tanto nuestros proto- cols de agregación simple
como en contrato buscan prevenir la libre carga en el sentido de que los nodos
deshonestos copien las respuestas de los nodos honestos. Pero ninguno de los dos
protege contra los ataques de Sybil [9]. Tales ataques implican un ad- versary que
controla múltiples oráculos ostensiblemente independientes. Este adversario
puede intentar dominar el conjunto de oráculos, haciendo que más de f
oráculos participen en el protocolo de agregación y proporcionen datos
falsos en momentos estratégicos, por ejemplo, para influir en grandes
transacciones en contratos de alto valor. Los quórumes de oráculos tramposos
también pueden surgir no sólo bajo el control de un solo adversario, sino también
mediante la colusión entre múltiples adversarios. Los ataques o fallos que
implican > oráculos son especialmente perniciosos en el sentido de que son
indetectables sólo por el comportamiento en cadena.
Además, para reducir los costos operacionales, un atacante de Sybil puede
adoptar un comportamiento llamado mirroring, en el que hace que los oráculos
envíen respuestas individuales basadas en datos obtenidos de una sola consulta de
fuente de datos. En otras palabras, los oráculos que se comportan mal pueden
compartir datos fuera de la cadena pero pretenden obtener datos de forma
independiente. El espejamiento beneficia a un adversario independientemente de
si decide o no enviar datos falsos. Supone una amenaza de seguridad mucho
menos grave que la falsificación de datos, pero degrada ligeramente la seguridad
en el sentido de que elimina la corrección de errores resultante de las consultas
diversificadas contra una fuente determinada Src. Por ejemplo, si
https://www.datasource.com emite datos erróneos debido, por ejemplo, a un error
desencadenado esporádicamente, varias consultas pueden obtener un resultado
mayoritario correcto.
Los ataques de Sybil que resultan en datos falsos, espejismos y colusión en
general pueden ser eliminados mediante el uso de hardware de confianza en
nuestra estrategia a largo plazo (véase la Sección 6).
35
en los oráculos y realizar una verificación puntual post-hoc de las respuestas en la
cadena, especialmente para las transacciones de alto valor, comparándolas con las
respuestas obtenidas directamente de las fuentes de datos representativas. Con
una demanda suficiente de los datos de un proveedor de oráculos, esperamos que
haya suficiente incentivo económico para justificar las auditorías fuera de la
cadena de los proveedores de oráculos, confirmando el cumplimiento de las
normas de seguridad pertinentes, como los controles pertinentes en la Matriz de
controles en la nube de la Cloud Security Alliance (CSA) [26], así como
proporcionar información de seguridad útil para que lleven a cabo auditorías
adecuadas de la fuente y el código de bytes de los oráculos para sus contratos
inteligentes.
Además de la métrica de la reputación, los sistemas automatizados en cadena
y los sistemas automatizados fuera de la cadena para la detección de fraudes, el
Servicio de Certificación está previsto como un medio para identificar los ataques
a Sybil y otros actos ilícitos que los sistemas automatizados en cadena no pueden
identificar. Por ejemplo, si todos los nodos están de acuerdo en que la luna está
hecha de queso verde, ellos
puede causar que el USER-SC ingiera este hecho falso. COMPONENTES DE LA LUNA = {QUESO
VERDE}
se registrarán en la cadena de bloques, sin embargo, y se podrán ver en una revisión post-
hoc.
37
whitehat hacking [1] o tenedores duros. La migración a los contratos actualizados
será visible en la cadena de bloqueo, y estará disponible para ser auditada por los
usuarios para que la revisen antes de actualizarla.
No obstante, reconocemos que algunos usuarios no se sentirán cómodos con
un grupo que controle una escotilla de escape en forma de migración/envío. La
migración forzada podría facultar al controlador del contrato de migración, o a un
hacker que com- promete credenciales relevantes, a emprender actividades
maliciosas, como cambiar las respuestas de los oráculos. Es por esta razón que los
contratos solicitantes tienen el control total de la característica de for- warding y
por lo tanto pueden optar por no activar la trampilla de escape. Además, de
conformidad con el enfoque de ChainLink sobre la descentralización, esperamos
que los proveedores
ser capaz de soportar múltiples versiones de CHAINLINK-SC desarrolladas por la comunidad.
6.1 Confidencialidad
Una red de oráculos distribuidos tiene como objetivo ofrecer un alto grado de
protección contra oráculos defectuosos. En la mayoría de los escenarios de
38
despliegue, busca lograr una respuesta correcta frente a las fallas f bizantinas
(para f < n/2 en nuestro simple protocolo de agregación). El hardware de
confianza puede ofrecer mucho más y se propone como un mejor enfoque para
asegurar la red ChainLink. El hardware de confianza es la piedra angular del
oráculo del Town Crier (TC) [24], que actualmente está operando en la red
principal Ethereum [33] y cuyos creadores se asociaron con SmartContract en el
lanzamiento del TC.
39
Ciertas formas de hardware de confianza, más notablemente el reciente
conjunto de extensiones de arquitectura de conjuntos de instrucciones de Intel
Software Guard eXtensions (SGX) [12]-[15], [18], buscan proporcionar un
poderoso complemento a las formas distribuidas de confianza. Brevemente, SGX
permite que una aplicación se ejecute en un entorno llamado enclave que reclama
dos propiedades de seguridad críticas. En primer lugar, los enclaves protegen la
integridad de la aplicación, es decir, su flujo de datos, código y control, contra la
subversión de otros procesos. En segundo lugar, un enclave protege la
confidencialidad de una aplicación, lo que significa que sus datos, código y estado
de ejecución son opacos para otros procesos. El SGX trata de proteger las
aplicaciones enclavijadas incluso contra un sistema operativo malicioso, y por lo
tanto contra el administrador del host en el que se está ejecutando una aplicación.
Si bien existen desde hace algún tiempo formas alternativas de hardware de
confianza, como ARM TrustZone, el SGX proporciona una característica clave
adicional que falta en estas tecnologías. Permite que una plataforma genere un
certificado de ejecución de una aplicación particular (identificada por una
construcción de su estado de hachís). Este atestado puede verificarse a distancia y
permite que una instancia específica de la aplicación se vincule a una clave
pública y establezca así canales autenticados y confidenciales con otras partes. La
ejecución de un oráculo en un enclave y la distribución de los atestados pueden
ofrecer una garantía muy sólida de que el oráculo está ejecutando una aplicación
concreta, concretamente una creada o respaldada por los desarrolladores del
ecosistema ChainLink. Además, un oráculo que se ejecuta en un enclave que
puede conectarse a una fuente de datos mediante HTTPS puede proporcionar
una fuerte garantía de que los datos que recupera no han sido manipulados. (Ver
[24], [33] para más detalles.) Estas propiedades ayudan mucho a proteger contra
mal comportamiento del oráculo en el sentido de corrupción de datos, ataques de Sybil, etc.
Sin embargo, una oportunidad aún mayor reside en la capacidad de los
equipos de confianza para proporcionar una fuerte confidencialidad. La
necesidad de confidencialidad es en general uno de los principales obstáculos
para bloquear el despliegue de la cadena. Los oráculos que preservan la
confidencialidad pueden ser fundamentales para resolver el problema.
41
Oráculos que preservan la confidencialidad a través del SGX. Un oráculo que utiliza
SGX puede ingerir y procesar datos dentro de un enclave, en esencia actuando
como un TTP de confianza por su integridad y confidencialidad. Para empezar, tal
oráculo puede descifrar las consultas dentro de su enclave. Luego puede
procesarlos sin exponerlos a ningún otro proceso (o a ningún ser humano). El
enclave también puede procesar los datos de las fuentes de forma confidencial y
puede gestionar de forma segura información sensible como las credenciales de
los usuarios, una capacidad muy poderosa, como ilustramos a continuación.
El sistema de Town Crier soporta consultas confidenciales de datos de vuelo.
La información de vuelo puede ser pasada a un contrato inteligente de TC
encriptado bajo la clave pública del servicio de TC. TC descifra la consulta y luego
contacta con una fuente de datos (por ejemplo, flightaware.com) a través de
HTTPS. Devuelve al contrato inteligente de consulta una simple respuesta de
sí/no a la pregunta "¿Se ha retrasado este vuelo?" y no expone ninguna otra
información en cadena.
Una capacidad de CT aún más interesante es su soporte para el comercio en la
plataforma de juegos Steam. TC puede ingerir de forma segura credenciales de
usuario (contraseñas) para comprobar que la propiedad del juego ha sido
transferida de un comprador a un vendedor. De este modo, puede crear un
mercado seguro que de otro modo sería inalcanzable, con intercambios justos y
de alta seguridad de criptografía por bienes digitales. (En cambio, un simple
oráculo distribuido no podría gestionar de forma segura las contraseñas de los
usuarios en su nombre).
La CT también puede realizar una agregación fiable fuera de la cadena de
datos de múltiples fuentes, así como un cálculo fiable sobre datos de múltiples
fuentes (por ejemplo, promedios) y una consulta interactiva de las fuentes de
datos (por ejemplo, búsqueda en la base de datos de una fuente en respuesta a la
respuesta de otra).
El hardware de confianza ofrece un nuevo y excitante enfoque para el uso escalable de las
cadenas de bloques [24], [29], en el que grandes porciones de la infraestructura de las
cadenas de bloques, incluyendo contratos inteligentes, se ejecutan en enclaves. Tal
arquitectura combinaría los beneficios de transparencia de las cadenas de bloques con las
propiedades de confidencialidad de la ejecución fuera de la cadena y el hardware de
confianza. Si bien se han sugerido ideas similares utilizando otras técnicas, como
zk-SNARKs [21], el hardware de confianza es mucho más práctico (y menos
complicado). Nuestra actual agenda de investigación incluye esta visión
expansiva, con los oráculos como servicio catalizador.
Discutimos brevemente el tema de Intel como una raíz de confianza en el Apéndice B.
43
esquema Σsgx. El argumento progencl denota el programa que se ejecuta en un
enclave, es decir, el entorno protegido porRel hardware. denota el código no fiable
que se ejecuta en un host SGX, es decir, el software que llama a la aplicación que
se ejecuta en el enclave.
La figura 5 (tomada de [24]) muestra el funcionamiento de la funcionalidad
Fsgx. Al ser inicializado, se ejecuta outp := progencl. Inicializar(), generando y
atestiguando el código de progencl y outp. Un atestado σatt es una declaración
firmada digitalmente por la plataforma de que progencl se está ejecutando en un
enclave y ha dado salida a outp. En el uso típico, progencl. Initalize() produce una
clave pública específica para la instancia que puede utilizarse para crear un canal
seguro hacia la instancia de la aplicación. Tras una llamada de reanudación con
(id, params), Fsgx continúa la ejecución y da salida al resultado de progencl.
Resume(id, params), donde id denota un identificador de sesión y params denota
parámetros de entrada a progencl.
44
nuestro modelo). Más formalmente, para cualquier adversario probable de tiempo polinomial A,
45
4. Confidencialidad: El TLS-N no puede admitir la gestión confidencial fuera de
banda de las credenciales o consultas de los usuarios, sino que exige que los
usuarios consulten ellos mismos una fuente de datos con este fin. Por ejemplo,
la información confidencial sobre los vuelos no puede almacenarse en un
contrato inteligente para una posterior consulta automática confidencial de
un sitio web.
46
6.3 Computación fuera de la cadena
Algunos usos intrigantes de los oráculos, como el uso de API dependientes de
credenciales, requieren que un oráculo haga mucho más que transmitir datos.
Puede que tenga que gestionar credenciales, entrar en cuentas para raspar datos,
y así sucesivamente. De hecho, si se cuenta con oráculos verdaderamente
confiables y confidenciales, algo que los sistemas respaldados por SGX à la Town
Crier y técnicas como las pruebas de conocimiento cero [21] pueden ayudar a
lograr, la frontera entre oráculos y contratos inteligentes puede hacerse fluida.
ChainLink ya soporta un lenguaje basado en regex para las consultas que
permite a los usuarios especificar con flexibilidad el procesamiento de los datos
fuera de la cadena. Nuestra estrategia a largo plazo, sin embargo, busca crear un
mundo donde los oráculos sean un recurso de computación clave fuera de la
cadena utilizado
por la mayoría de los contratos inteligentes. Creemos que esto será posible
construyendo un modelo de computación fuera de la cadena totalmente general y
privado dentro de los oráculos cuyos resultados son consumidos por los contratos
inteligentes. Si esto se puede lograr con una fuerte seguridad, como creemos que
puede, empujar la lógica de cálculo costosa y sensible dentro de los oráculos
resultará en
mejor confidencialidad, menores costos de ejecución de contratos y arquitecturas más flexibles.
48
de las noticias. Sin embargo, lamentablemente, debido a que la cognición humana
es costosa y lenta, los oráculos de entrada manual requieren muchos recursos, no
son en tiempo real, y sólo pueden manejar un conjunto limitado de preguntas en
un momento dado. Creemos que ChainLink también podría ser muy útil para
resolver rápida y automáticamente contratos de mercado de predicción que
pueden resolverse con datos estructurados.
Un último enfoque es cambiar la forma de los datos en la fuente. Si una fuente
de datos firmara digitalmente los datos que proporciona, entonces el servidor de
retransmisión no necesitaría ser de confianza. El USER-SC podría simplemente
comprobar las firmas de los datos que recibe. Un excelente, general
Este tipo de enfoque es el que proporciona el TLS-N, como se ha mencionado
anteriormente. Lamentablemente, como ya se ha mencionado, el TLS-N requiere
cambios en la infraestructura existente.
8 Conclusión
Hemos introducido ChainLink, una red descentralizada de oráculos para que los
contratos inteligentes interactúen de forma segura con los recursos externos a la
cadena de bloques. Hemos esbozado la arquitectura de ChainLink, describiendo
tanto los componentes dentro como fuera de la cadena. Después de definir la
seguridad en el contexto de los oráculos, hemos descrito el enfoque multicapa de
ChainLink para la descentralización. Propusimos un protocolo novedoso con
nuevas características, como la protección contra la carga gratuita (con protocolos
adicionales y bocetos a prueba de seguridad en el apéndice del documento).
También expusimos una hoja de ruta sobre la forma en que ChainLink puede
aprovechar los avances tecnológicos y de infraestructura, como el hardware de
confianza y la firma digital de los datos por las fuentes. Por último, tras examinar
las soluciones de oráculo existentes y sus deficiencias, hemos expuesto la
necesidad actual de un sistema como ChainLink.
50
pocas partes, trataremos de diseñar un ecosistema que permita utilizar
implementaciones que compitan entre sí.
Referencias
[1] Paridad. El hacking de Multi-sig: Una autopsia. https://blog.ethcore.io/the-
multi- sig-hack-a-postmortem/. 20 de julio de 2017.
[2]Gun Sirer. Ataques de repetición de cadena cruzada. Hacking, Blog distribuido.
17 de julio de 2016. [3] Adi Shamir. "Cómo compartir un secreto".
En:Comunicaciones de la ACM 22.11
(1979), págs. 612 y 613.
[4] Claus-Peter Schnorr. "Generación eficiente de firmas por medio de tarjetas
inteligentes". En:Journal of cryptology 4.3 (1991), pp. 161-174.
[5] Rosario Gennaro, Stanislaw Jarecki, Hugo Krawczyk y otros: "Secure
distributed key generation for discrete-log based cryptosystems". En:
Eurocrypt. Vol. 99. Springer. 1999, págs. 295 y 310.
[6]R. Canetti. "Seguridad de composición universal": Un nuevo paradigma para
los protocolos criptográficos". En: FOCS. 2001.
[7] Ran Canetti. "Seguridad compuesta universalmente: Un nuevo paradigma
para los protocolos criptográficos". En: Foundations of Computer Science, 2001.
Actas. 42º Simposio del IEEE sobre. IEEE. 2001, págs. 136-145.
[8] Douglas R. Stinson y Reto Strobl. "Signo de Schnorr distribuido de forma
segura y un esquema de umbral de (t, n) para los certificados implícitos".
En: ACISP. Vol. 1. Springer. 2001, págs. 417 a 434.
[9] John R. Douceur. "El ataque de la sibila". En: Taller Internacional sobre Sistemas
de Peer-to-peer. Springer. 2002, págs. 251 a 260.
51
[10] Aniket Kate e Ian Goldberg. "Generación de claves distribuidas para Internet".
Dentro: Distributed Computing Systems, 2009. ICDCS'09. 29th IEEE International
Conference on. IEEE. 2009, págs. 119-128.
[11] Claudio Orlandi. "¿Es buena la computación multipartidaria en la práctica?"
Dentro: Acústica, Procesamiento de Voz y Señal (ICASSP), 2011 IEEE International
Con- ferencia en. IEEE. 2011, págs. 5848-5851.
[12] Ittai Anati, Shay Gueron, Simon Johnson y otros: "Tecnología innovadora
para la certificación y el sellado basados en la CPU". En: Actas del 2º Taller
Internacional sobre Hardware y Soporte Arquitectónico para la Seguridad y la
Privacidad. Vol. 13. 2013. URL: https : / / software . intel . com / es - us / articles /
innovative- technology for- cpu- based- attestation- and- sealing (vis- ited on
05/23/2016).
[13] Matthew Hoekstra, Reshma Lal, Pradeep Pappachan y otros, "Using
Innovative Instructions to Create Trustworthy Software Solutions". En:
Proceedings of the 2Nd International Workshop on Hardware and Architectural
Support for Se- curity and Privacy. HASP '13. Tel-Aviv, Israel: ACM, 2013, 11:1-
11:1. ISBN: 978-1-4503-2118-1. DOI: 10.1145/2487726.2488370. URL:
http://doi.acm. org/10.1145/2487726.2488370.
[14] Frank McKeen, Ilya Alexandrovich, Alex Berenzon y otros. "Instrucciones
innovadoras y modelo de software para ejecución aislada". Dentro: Actas del
2º Taller Internacional de Hardware y Soporte Arquitectónico para la Seguridad y la
Privacidad. 2013, p. 10. URL: http://css.csail.mit.edu/6.858/2015/
readings/intel-sgx.pdf (visitado el 23/05/2016).
[15] Inteligencia. Referencia de programación de las extensiones de la protección de
software de Intel. 2014. (Visitado el 23/05/2016).
[16] Gavin Wood. "Etéreo": Un libro de transacciones descentralizado y seguro".
Dentro: Libro amarillo del Proyecto Etéreo (2014).
[17] Jack Peterson y Joseph Krug. "Augur: una plataforma descentralizada y de
código abierto para los mercados de predicción". En: arXiv preprint
arXiv:1501.01042 (2015).
[18] Victor Costan y Srinivas Devadas. "Intel SGX Explicado". En: Archivo ePrint de
Criptología (2016). URL: https : / / eprint . iacr . org / 2016 / 086 . pdf (visitado el
24/05/2016).
[19] Victor Costan, Ilia A Lebedev y Srinivas Devadas. "Sanctum: Mínimas
extensiones de hardware para un fuerte aislamiento del software". Dentro:
USENIX Security Sympo- sium. 2016, pp. 857-874.
52
[20] Kevin Delmolino, Mitchell Arnett, Ahmed Kosba y otros. "Paso a paso hacia la
creación de un contrato seguro e inteligente: Lecciones y conocimientos de
un laboratorio de criptografía". En: Conferencia Internacional sobre Criptografía
Financiera y Seguridad de Datos. Springer. 2016, págs. 79 a 94.
[21] Ahmed Kosba, Andrew Miller, Elaine Shi y otros. "Hawk": El modelo de
cadena de bloques de criptografía y contratos inteligentes de preservación
de la privacidad". En: S&P'16. IEEE. 2016.
[22] Loi Luu, Duc-Hiep Chu, Hrishi Olickel y otros. "Haciendo más inteligentes los contratos
inteligentes".
Dentro: Actas de la Conferencia ACM SIGSAC 2016 sobre Seguridad Informática y
Comunicaciones. ACM. 2016, pp. 254-269.
[23] Bill Marino y Ari Juels. "Establecer estándares para alterar y deshacer
contratos inteligentes". En: Simposio internacional sobre reglas y lenguajes de
marcado de reglas para la web semántica. Springer. 2016, pp. 151-166.
[24] Fan Zhang, Ethan Cecchetti, Kyle Croman, y otros. "Town Crier": Una fuente
de datos autenticada para contratos inteligentes". En: Actas de la Conferencia
ACM SIGSAC 2016 sobre Seguridad Informática y de las Comunicaciones. ACM.
2016, págs. 270 a 282.
[25] Página del proyecto Augur. https://augur.net. 2017.
[26] Matriz de control de nubes de CSA. URL:
https://cloudsecurityalliance.org/group/cloud- controls-matrix. 2017.
[27] Mark Flood y Oliver Goodenough. Contrato como autómata: La representación
computacional de los acuerdos financieros. https://www.financialresearch. gov/
workinging- papers/ files/ OFRwp- 2015 - 04 _ Contrato como autómata: La
representación computacional de los acuerdos financieros. pdf. Of-
de Investigación Financiera, 2017.
[28] Página del proyecto Gnosis. https://gnosis.pm. 2017.
[29] Hyperledger Sawtooth. https://intelledger.github.io/introduction.html. 2017.
[30] Abhiram Kothapalli, Andrew Miller y Nikita Borisov. "SmartCast": Una
In-
Protocolo de Consenso Compatible Censual Usando Contratos Inteligentes".
En: Criptografía Financiera y Seguridad de Datos (FC). 2017.
[31] Página del proyecto Oraclize. http://www.oraclize.it. 2017.
[32] Rafael Pass, Elaine Shi y Florian Tramer. "Abstracciones formales para
procesadores seguros de ejecución certificada". En: Eurocrypt. Springer.
2017, pp. 260-289.
[33] Servicio Ethereum de Town Crier. http://www.town-crier.org/. 2017.
53
[34] Florian Tramer, Fan Zhang, Huang Lin y otros. "Pruebas de vidrio sellado:
Usando enclaves trans- parentales para probar y vender el conocimiento".
En: Seguridad y Privacidad (Eu- roS&P), 2017 IEEE European Symposium on.
IEEE. 2017, págs. 19 a 34.
[35] Vitalik Buterin et al. Ethereum white paper. https://github.com/ethereum/
wiki/wiki/White-Paper.
[36] JSON Schema. http://json-schema.org/.
[37] Hubert Ritzdorf, Karl Wüst, Arthur Gervais, et al. TLS-N: No repudio sobre el
TLS que permite la firma de contenido ubicuo para la desintermediación. Informe
ePrint del IACR 2017/578. URL: https://eprint.iacr.org/2017/578.
54
Divulgaciones
† Ari Juels es un miembro de la facultad del Instituto Jacobs en Cornell Tech. Es
co-autor de este trabajo en su calidad de asesor de SmartContract ChainLink Ltd.,
en el que tiene un interés financiero.
** Las fichas LINK están siendo vendidas por SCCL de acuerdo con los términos y
condiciones de las condiciones de venta de fichas disponibles en
https://link.smartcontract.com/terms. Para más detalles, revise los términos. Las
Fichas LINK no son valores, inversiones o divisas, y no se venden o comercializan
como tales. Además: participar en la venta implica riesgos tecnológicos y
sistémicos significativos; la venta no está abierta a personas que residan o sean
ciudadanos de los Estados Unidos o el Canadá. El período de venta, la duración,
el precio y otras disposiciones pueden cambiar, como se indica en las condiciones
de la venta simbólica. La venta de fichas LINK To - ken implica riesgos conocidos
y desconocidos, incertidumbres y otros factores que pueden hacer que la
funcionalidad, utilidad o niveles de uso reales de las fichas LINK sean
materialmente diferentes de cualquier resultado, uso, funcionalidad o utilidad
futuros proyectados, expresados o implícitos por SCCL en los términos.
55
A Agregación fuera de la cadena
Para asegurar tanto respuestas válidas y firmadas como para evitar la carga
excesiva, nuestro protocolo de agregación fuera de la cadena, discutido en la
sección 4.2, se basará en un simple protocolo distribuido basado en firmas de
umbral [8]. El beneficio de este enfoque es que para una consulta dada, una sola
firma puede ser generada fuera de la cadena por una colección de n nodos
oráculos. Como resultado, sólo es necesario manejar un único mensaje
autenticado dentro de la cadena, en lugar de los mensajes O(n) de los distintos
nodos oráculos. Este enfoque reduce en gran medida los costos en comparación
con los del Algoritmo 1. La idea puede ampliarse aún más, como en [30], para
agregar las respuestas a múltiples consultas dentro de una sola firma de umbral,
una idea que no exploramos aquí pero que podemos considerar en nuestra
arquitectura.
Supongamos que f < n/3 oráculos son defectuosos y t = f + 1. Los nodos
defectuosos pueden tratar de realizar una carga gratuita y/o cualquier otro
comportamiento deshonesto, como firmar respuestas inválidas.
Nuestro protocolo completo para la agregación fuera de la cadena consiste en
un par de algoritmos OCA = (DistOracle, RewardOracles) para calcular una firma
Sigsk[A] en el valor A = Agg(A1, A2, . . . , An), para la función mayoritaria Agg. Una
versión simplificada, de una sola ronda
de estos protocolos se muestra respectivamente en los algoritmos 2 y 3. El
primero es ejecutado por los oráculos participantes, mientras que el segundo es
ejecutado por una entidad PROVEEDOR que puede, como se ha mencionado
anteriormente, tomar la forma de un contrato inteligente.
Antes de presentar la OCA, damos algunos antecedentes básicos sobre las firmas
de Schnorr y el esquema de umbral para computarlas que se da en [8].
57
Firma de Schnorr: Entrada del firmante (m, sk = x); Entrada del
verificador pk = y
Firma Verifica
nte
r ←$ Zxp dor
e← r
cg = H(m ||e)
s = cx + e
(e,s),m
-−−
→ c = H(m ||e)
?
gs = ryc
Una firma parcial de Oi dada clave efímera e toma la forma σ(e)i = cxi + ei,
donde c = H(m e),
| como en la firma completa. Para cada jugador Oi existe también
| (σi; (pk, e)) que verifica su firma parcial. Nos referimos a una
una función validi
firma parcial como válida para Oi si verifica correctamente bajo validi.
Hemos modificado algo la notación y condensado en gran medida el esquema
de nuestra exposición aquí. Remitimos al lector a [8] para más detalles.
58
Algoritmo 2 DistOracle(f, n, i, ski = xi, pk, Src) (código para Oi)
59
Algoritmo 3 RewardOracles (código para PROVEEDOR)
1: Esperar hasta el C−set de n f conjuntos de compromisos (Ci ) de oráculos
distintos y se recibe PS∗.
2: por cada oráculo Oj do
3: si σj ∈CP S ∗ y > 2f se establece en incluir compromisos con σj de Oj y luego
4:Envía $recompensa a Oj.
5:Finalizar si
6: fin para
A.3 Discusión
OCA presenta algunos desafíos de diseño que discutimos brevemente aquí.
Gestión de llaves. Por supuesto, como suele ser el caso, la gestión de claves es un
gran desafío en los protocolos de este tipo. La distribución de las acciones de sk
61
puede realizarse de forma distribuida [5] y se pueden hacer actualizaciones para
acomodar nuevos nodos y eliminar los nodos salientes, así como para
proporcionar una seguridad proactiva, es decir, una resistencia continua contra el
compromiso de las claves de los nodos. Además, los nodos pueden organizarse
62
en distintas camarillas para limitar el tamaño de n. Proponemos que ChainLink
emplee estas técnicas para asegurar un oráculo distribuido flexible, sensible y
seguro.
64