En un mercado relativamente lento, la demanda de oráculos ha crecido exponencialmente.

Discurso: Frank, ingeniero de relaciones con desarrolladores, Chainlink Labs

Organizado por: Aididiaojp.eth, Foresight News

Soy Frank, ingeniero de relaciones con desarrolladores de Chainlink Labs. Mi trabajo principal es permitir que más desarrolladores o constructores apasionados por esta industria aprendan más sobre los oráculos. Según los contratos inteligentes de nuestra infraestructura actual, podemos considerarlo como un contrato inteligente híbrido. Los contratos inteligentes se pueden integrar mejor con diversos datos en el mundo Web2, incluidos los servicios informáticos, y luego, en función de esta arquitectura, podemos ampliar en gran medida lo que pueden hacer los contratos inteligentes en la cadena.

En el intercambio de hoy, primero presentaré el concepto de oráculos y luego, basándome en el concepto de oráculos, presentaré brevemente la red de oráculos descentralizada y algunos de los servicios que podemos proporcionar, incluidos los servicios de datos y los servicios informáticos.

¿Qué es un oráculo?

El estado de la red y los datos cambian constantemente en estas tres etapas, desde Web 1 hasta Web 2 y Web 3. Al principio, Web1 era un servicio de sitio web donde los datos solo se podían leer de forma estática. Cuando se desarrolló hasta la etapa Web2, los datos se volvieron legibles, escribibles y participables. Muchas grandes empresas han construido imperios empresariales basados ​​en sus propios servicios. Almacenan todos los datos de los usuarios en sus propias bases de datos. Si es necesario, pueden poseer y modificar los datos de los usuarios. Entonces surge una pregunta, es decir, algunos de los datos que creamos en Internet o en el mundo virtual a veces tienen algún valor, entonces, ¿a quién pertenece ese valor? Con base en estos antecedentes, esperamos resolver bien este problema en la etapa Web 3. Todos los datos en la etapa Web 3 no existen en un servidor o nodo. Tiene una red descentralizada, y la red descentralizada es un sistema de libros múltiples compuesto por múltiples nodos. Los datos se almacenan en varios nodos. Solo cuando cada nodo está de acuerdo con la modificación y el almacenamiento de los datos se pueden guardar los datos finales. Esto nos traerá un beneficio, es decir, no importa qué tipo de modificación queramos hacer a los datos, debemos realizar la modificación de acuerdo con el consenso previamente acordado. Por ejemplo, si quiero modificar el saldo de mi billetera, si nadie me transfiere dinero, no importa cómo el propietario de los datos quiera modificarlos, en última instancia no podrá pasar el proceso de consenso, lo que significa que el saldo de mi billetera no se puede modificar. Sólo el propietario de los datos puede finalmente modificarlos enviando una transacción que cumpla con las reglas. Esto tiene un beneficio muy obvio. Al mismo tiempo, también trae algunas desventajas. La mayor desventaja es que convierte al sistema en un sistema determinista. En otras palabras, debido a que habrá un proceso de consenso durante todo el proceso, solo podrá realizar operaciones que otros puedan verificar. Cuando envía una operación, otros deben realizar su operación. Si otros nodos pueden realizar la operación con éxito, en realidad pueden devolver los resultados. En cuanto a si supera el 50% o el 70%, depende del algoritmo de consenso.Finalmente, la operación se puede escribir en la transacción y la transacción se puede escribir en el bloque para convertirse en una transacción completa.

Pero si necesitamos realizar algunas operaciones no deterministas, como obtener algunos datos API fuera de la cadena de bloques y generar números aleatorios, etc., el sistema de cadena de bloques determinista no se puede completar. Nuestra lotería necesita generar números aleatorios, o el protocolo dentro de la cadena necesita conocer el precio de los activos fuera de la cadena, como obtener el precio de acciones o materias primas, lo cual es una operación no determinista y la propia cadena de bloques no puede completarla. . Otro ejemplo son las llamadas API. Como nodo en la red, llamo datos API externos y luego les digo el resultado a otros nodos en la red. Para verificar la autenticidad del resultado, otros nodos también lo ejecutarán. y obtener un resultado. Pero para una API externa, si diferentes personas acceden a la misma API en diferentes momentos, el servidor puede colgarse, el servicio puede suspenderse o los datos pueden cambiar a medida que cambia la hora. Si haces lo mismo en diferentes momentos, los resultados que obtendrás serán inconsistentes. Mientras los resultados sean inconsistentes, no hay forma de bloquear la operación final ni de completarla. Es por eso que una vez que tenemos la propiedad de los datos, también debemos soportar algunas de las deficiencias que esto conlleva.

Para resolver este problema, es necesario confiar en los oráculos. La cadena de bloques es un sistema aislado y determinista. No puede obtener datos activamente fuera de la cadena. La aparición de oráculos es para resolver este problema. El concepto de oráculos apareció hace dos o tres años, pero en ese momento no había muchos escenarios aplicables y tenía grandes limitaciones. Por ejemplo, si desea obtener algunos datos de mercado, cargar datos de acciones en la red blockchain o crear una estructura para colocar la lógica en la cadena para su ejecución, pero colocar los activos en la cadena y proteger la conducta normal de las transacciones a través de contratos inteligentes, etc. En este momento, es necesario obtener algunos datos de la cadena y sincronizarlos periódicamente, incluidos pagos bancarios o datos minoristas, e incluso algunos otros datos de eventos públicos, como condiciones climáticas, información geográfica, información logística, resultados de competiciones deportivas, etc., estos datos no se pueden obtener sin pasar por la máquina Oracle. Esto hará que la ecología de la cadena sea muy limitada. A medida que el ecosistema Web 3 continúe desarrollándose, el vínculo entre los dos mundos de Web 3 y Web 2 se volverá cada vez más estrecho. Si queremos que Web3 logre una adopción a gran escala o sea utilizado por más personas, debe proporcionar funciones muy ricas y no puede limitarse a operaciones que solo se pueden realizar a través de datos nativos en la cadena.

Oracle se hizo popular recién en 2020, el verano DeFi, cuando la mayoría de la gente se dio cuenta. Al principio, la máquina Oracle hacía cosas muy simples. Por ejemplo, si desea obtener datos externos y cargarlos en la red descentralizada, es decir, la cadena de bloques, entonces la forma más sencilla es establecer un nodo centralizado debajo de la cadena. es decir, construir un servidor, luego obtener los datos a través del servidor y finalmente escribir los datos en la red blockchain de deduplicación, entonces este modelo se llama oráculo centralizado. Aunque es relativamente simple de implementar, traerá algunos problemas, como el riesgo de un punto único de falla, es decir, el nodo centralizado puede causar tiempo de inactividad por sus propias razones básicas. Otra posibilidad es que si el servicio proporcionado por el contrato inteligente en la cadena se basa en los datos proporcionados por el nodo centralizado, y si la cantidad de fondos involucrados en el contrato inteligente en la cadena es muy grande, entonces el oráculo centralizado puede pasar su Los propios datos que pueden ser manipulados pueden utilizarse para lanzar ataques a servicios. Mientras los beneficios sean lo suficientemente grandes y no haya forma de lograr una protección completa a través de medios técnicos, entonces este será un punto único de falla. Queremos colocar aplicaciones en redes descentralizadas, incluido Ethereum u otros ecosistemas de Capa 2. De hecho, también esperamos poder garantizar la equidad de nuestras aplicaciones, es decir, contratos inteligentes, a través de cientos o miles de nodos de Oracle en la red. sexo y seguridad.

Por supuesto, si confiamos en nodos centralizados para obtener el terminal de datos, incluso si se puede garantizar la seguridad de otros aspectos, si no hay manera de garantizar la seguridad del activo más importante, el terminal de datos, todo el proceso se verá afectado. dApp no ​​tiene sentido. Por lo tanto, después de la máquina Oracle centralizada, surgió la red de máquinas Oracle descentralizada, que bien puede resolver el riesgo de falla de un solo punto que acabamos de mencionar. La mayor diferencia entre la red de Oracle descentralizada no es que un solo nodo de Oracle proporcione servicios a la red descentralizada, sino que los servicios se brindan a través de la red de Oracle descentralizada. También puede entenderse como una especie de Capa 2, es decir, cada uno. Los nodos en la red centralizada de Oracle pueden obtener datos a través de sus propias fuentes de datos. Después de obtener los resultados, pueden agregar datos con otras redes descentralizadas. Esto también puede entenderse como un proceso de consenso, incluida la verificación de si no hay nodos. o si los datos devueltos se desvían demasiado del promedio, o simplemente hacer un promedio, luego agregar los datos, etc., y luego escribirlos en la red descentralizada. Uno de los beneficios de este enfoque es que técnicamente puede garantizar que el servicio no se interrumpirá a menos que todos los nodos de la red descentralizada de Oracle dejen de funcionar, pero esta posibilidad es muy baja. Además, en el lado de los datos, también se puede garantizar que los datos proporcionados por el oráculo al contrato en la cadena no estén controlados por un solo nodo, sino por muchos nodos. Si desea manipular datos para lanzar un ataque, el costo es muy alto. Esto equivale a atacar la Capa 2, o incluso una red descentralizada como Ethereum, que básicamente es poco probable que tenga éxito.

Las redes descentralizadas pueden mejorar en gran medida la seguridad y la equidad de los datos recibidos mediante contratos inteligentes. Para los usuarios, somos solo una red Oracle descentralizada, pero basándonos en la red Oracle descentralizada, podemos proporcionar otros servicios, como servicios de datos, servicios informáticos y servicios entre cadenas. Si los datos se proporcionan a la red en función de Oracle, algunas operaciones más complejas y costosas también se pueden completar fuera de la cadena, es decir, se empaquetan en la red de Oracle fuera de la cadena para su cálculo y luego se vuelven a escribir en la comparación de seguridad. alto en la cadena de bloques. Si podemos obtener datos fuera de la cadena, también podemos obtener datos de otras cadenas y luego escribirlos en esta cadena de bloques, entonces esto en realidad implica una cadena cruzada. Siempre que la seguridad de la red Oracle descentralizada sea lo suficientemente sólida, puede garantizar que los servicios de datos, los servicios informáticos y los servicios entre cadenas integrados en ella sean muy seguros. Chainlink proporciona una variedad de servicios basados ​​​​en oráculos descentralizados, que pueden conectar datos de Web 3 y Web 2, incluidos datos de Capa 1 y Capa 2, para que todos puedan obtener la mayor cantidad posible de datos y servicios correspondientes.

¿Qué servicios proporciona Chainlink Oracles?

A continuación, permítanme presentarles brevemente los servicios proporcionados por Chainlink Oracles. Por supuesto, Chainlink proporciona muchos servicios. Compartiré algunos servicios que son aplicables a muchos escenarios.

Si desea realizar algunas innovaciones en los campos de DeFi, GameFi, NFT y SocialFi en el futuro, existe una alta probabilidad de que necesite un oráculo para obtener datos. Porque debe obtener los datos de la cadena de una manera muy descentralizada y segura y volver a escribirlos en su contrato inteligente en la cadena.

El primer servicio es la alimentación de precios, que puede ser un término que haya escuchado a menudo antes. Se hizo popular en el verano DeFi de 2020. Muchos proyectos DeFi aparecieron en 2020, comenzando con Uniswap, seguido por el contrato de préstamo Compound y luego el proyecto de activos sintéticos Synthetics y otras aplicaciones. Todos tienen una gran demanda de datos fuera de la cadena, porque solo se pueden utilizar datos seguros. por los usuarios de forma descentralizada a través de contratos, en los que el servicio de alimentación de precios del oráculo juega un papel importante.

La imagen de arriba es el diagrama de flujo básico del servicio de alimentación de precios, que incluye 3 partes importantes. El primero es la red descentralizada de Oracle que acabamos de mencionar; el segundo es el proveedor de datos, que puede ser un intercambio u otras grandes instituciones autorizadas, todos los cuales pueden servir como proveedores de datos; el tercero es un contrato de usuario; El proceso que se muestra en la figura anterior es muy simple. Cada proveedor de datos puede proporcionarlos a un determinado nodo de la red Oracle Chanlink a través de la interfaz o servicio de fuente de datos. Cada nodo de la red Oracle también puede obtener datos de acuerdo con su propio servicio. Y luego, a través del proceso de agregación, los datos obtenidos de cada canal se escriben en el contrato de verificación implementado en la cadena. Si pasa la verificación, los datos pueden ser registrados y utilizados por el usuario en el futuro. Este es todo el proceso. El cliente solo necesita utilizar contratos para obtener y utilizar múltiples datos.

Hay muchos casos de uso para la alimentación de precios, como Compound, Uniswap y Synthetics que acabamos de mencionar. Necesitan asignar los activos en Web2 a Web3. En este momento, necesitan un mecanismo externo para proporcionar el precio del activo. Al igual que una moneda estable, cuántas monedas estables se pueden emitir en función de la cantidad de activos disponibles y el precio de su activo también debe obtenerse en función de un oráculo. Además, algunas plataformas de gestión de activos y aplicaciones populares de negociación de derivados dependen en gran medida de los precios, por lo que en realidad son usuarios importantes de los servicios de alimentación de precios. A juzgar por la tendencia, la demanda de servicios de alimentación a precios está aumentando exponencialmente. Aunque el mercado no es tan activo, el uso de datos sigue creciendo.

A continuación, presentaré el segundo servicio más distintivo, que es Any API. En pocas palabras, ayuda a los contratos inteligentes en la cadena a obtener algunos datos no estándar, como algunos datos de cola larga. Es posible que estos datos solo estén disponibles para determinadas personas o determinados contratos, pero no son datos estándar como los precios de los tokens o los precios de los activos. Muchas DApps requieren datos no estándar, por ejemplo, las aplicaciones comerciales de seguros Web 3 necesitan obtener datos meteorológicos o datos de retrasos de vuelos. Por ejemplo, los gases de efecto invernadero se pueden utilizar para proyectos similares a los ESG, incluidas elecciones y competiciones deportivas que se pueden combinar con mercados de predicción. Proporcionamos un mercado de datos basado en Cualquier API. En cada mercado de datos, existen varios proveedores de datos que brindan servicios al exterior en función de sus propios datos. Siempre que el usuario envíe una solicitud, puede devolverle los datos. contrato de acuerdo a los requerimientos del servicio. Tanto el proveedor como el receptor de datos están determinados por el mercado. Existe un mercado para usuarios y proveedores de datos, y no corresponde a los funcionarios de Chainlink monopolizar todos los datos y luego proporcionarlos a la cadena.

El flujo de trabajo de Any API y la alimentación de precios es en realidad relativamente consistente. El contrato primero envía una solicitud y luego el nodo Chanlink descubrirá la solicitud. Después del descubrimiento, Chanlink puede seleccionar los datos requeridos según la solicitud y luego volver a escribirlos en la cadena de bloques. Cualquier API puede proporcionar a los usuarios una variedad de datos, pero una de sus características es que, aunque se configura relativamente rápido, proporciona datos desde un solo nodo. Lo que Any API quiere hacer es obtener datos lo más rápido posible de una manera sencilla, en lugar de obtener datos a través del oráculo de red descentralizado que mencionamos antes.

Más tarde, a medida que aumentó la diversidad de requisitos de datos, muchos datos no estándar también esperaban volver a escribirse en la cadena de manera descentralizada. También creamos un nuevo servicio llamado Funciones a principios de abril de este año. En pocas palabras, ejecuta cualquier solicitud de usuario a través de una red Oracle descentralizada. Los usuarios pueden utilizar algunos lenguajes de programación avanzados como Javascript para escribir programas operativos. Ya no se pueden escribir únicamente en el lenguaje Solidity. Los programas escritos en Javascript son definitivamente más ricos que Solidity. El servicio Functions puede encapsular el programa escrito en una solicitud y enviarlo a toda la red Oracle. Cada nodo de la red realizará la misma operación, que puede ser servicios informáticos, servicios de adquisición de datos u otros servicios. Después de que cada nodo se ejecuta y obtiene el resultado, pasa por el proceso de agregación que acabamos de mencionar y luego lo vuelve a escribir en el contrato inteligente.

En comparación con la alimentación de precios, su grado de libertad es muy alto. En otras palabras, al contrato inteligente se le puede dar una interfaz externa para usarla de la forma que desee. También puede escribir parte de la lógica que necesita hacer en el contrato, y luego no la ejecuta la cadena de bloques, sino la máquina Oracle, lo que equivale a incrustar el servicio de la máquina Oracle directamente en el contrato inteligente, convirtiéndolo en Un contrato inteligente híbrido. Si lo hace de esta manera, su ejecución está garantizada a través de una red descentralizada. Luego, sus operaciones no deterministas, que no se pueden realizar en la cadena de bloques, se pueden realizar a través de un oráculo descentralizado. La red se ejecuta y devuelve los resultados. En general, puede mejorar enormemente la funcionalidad de los contratos inteligentes. Las funciones que puede realizar serán más ricas que antes, y la aplicación real en el lado del usuario también es muy simple. Solo necesita agregar dos funciones a su contrato y puede usar directamente la red Oracle descentralizada como parte de su contrato inteligente. . usar. También es muy amigable para los programadores Web2 tradicionales, porque la lógica de ejecución se puede completar a través de lenguajes de programación tradicionales. El proceso general no ha cambiado. Envíe una solicitud, luego envíela a la red Oracle descentralizada, agréguela después de la ejecución y finalmente escríbala nuevamente en el contrato inteligente del usuario.

Lo anterior es lo que compartí sobre Oracles y algunos de los servicios que pueden proporcionar las redes descentralizadas basadas en Oracles.