zkOracle y zkCoprocessor

Intermedio1/7/2024, 1:23:40 PM
El artículo explica los conceptos de zkCorprocessor y zkOracle, destacando las diferencias entre los dos y detallando los escenarios en los que cada tipo de zk es adecuado para diferentes casos de uso.

0. Introducción

En esta publicación, analizaremos los conceptos recientemente populares de zkCoprocessor y zkOracle y compararemos sus diferencias.

1. Definición de zkCoprocessor

Cuando se acuña un término, su verdadero significado no está definido por sí mismo. Hemos visto esto muy a menudo en el caso de blockchain.

  1. ZK: Si bien los académicos a menudo se refieren a las características de privacidad del Zero Knowledge, en el contexto de la cadena de bloques, ZK a menudo solo significa la concisión y validez de la tecnología. Incluso los proyectos que se basan en ZK Rollup se llaman a sí mismos zkSomething.
  2. DA: Hasta ahora, muchas personas realmente no se dieron cuenta de que la Disponibilidad de Datos no es Almacenamiento de Datos, por lo que para resolver este problema de terminología, algunas personas tienen sugerido reemplazando DA con DP(Publicación de datos), o hacer que todo el significado de DA se convierta en Publicación de datos + Almacenamiento de datos (1, 2).

Vemos un fenómeno similar en el término zkCoprocessor. Todos usan el término, pero no necesariamente se refieren a las mismas cosas.

Entonces queríamos expresar lo que el proyecto mismo piensa sobre zkCoprocessor, lo que la comunidad entiende sobre zkCoprocessor, y lo que zkCoprocessor realmente significa y hace desde nuestra perspectiva.

a) Desde el Proyecto Mismos

Definición 1 de Axiom: zkCoprocessor demuestra datos históricos en la cadena.

El concepto del zkCoprocessor fue popularizado por Axiom, que originalmente lo concibió como un zkAttestor. A partir de la idea de Axiom, zkCoprocessor representa el componente que “prueba datos históricos en la cadena y utiliza esos datos de forma fiable en un contrato inteligente”.

Tenga en cuenta que el equipo Brevis dijo que este tipo de zkCoprocessors son esencialmente una capa API/DSL encima del circuito zk subyacente. Por lo tanto, esto no es programable.

Definición 2 de RISC Zero: el coprocesador zk descarga la computación de la cadena al exterior de la cadena.

RISC Zero también se refiere a menudo a sí mismo como un zkCoprocessor. Desde su perspectiva, ven zkCoprocessor como un concepto más amplio, 'una herramienta para utilizar ZKPs para descargar cálculos de la cadena a fuera de la cadena'.

b) Desde la comunidad

Definición de Peteris (igual que 1): zkCoprocessor puede acceder al estado histórico en cadena.

Peteris de Aera Financecreeese zkCoprocessor actúa de manera muy similar a un oráculo de estado, con la principal función siendo el acceso a datos históricos. Al mismo tiempo, él y Rishabh de BananaHQcree que la descripción de la definición 2 se parece más a un zkVM que a una subclase de zkCoprocessor.

Definición de Messari, Modular Media y Kobi (lo mismo que 2): zkCoprocessor descarga la computación de la cadena a la cadena.

Messari también ha dado su propia definición de zkCoprocessor. Sami, un investigador en Messari,creeque zkCoprocessor permite a los desarrolladores de contratos inteligentes descargar fácilmente la lógica compleja fuera de la cadena sin nuevas suposiciones de confianza. También Modular Mediada el mismo concepto. Kobi de Geometríacompara rollup con un coprocesador, Brevis agregó que zkCoprocessorintercambia el costo de mantener un almacenamiento de estado permanente contra un rendimiento hiper-reforzado, Taiko ideó el diseño de Booster Rollupque exploró aún más la idea de Coprocesador de Rollup. Estas son la misma definición que RISC Zero.

c) De nosotros

Para resumir, concluimos que hay dos tipos de zkCoprocessor en la práctica, y son los siguientes:

  1. Acceso de datos zkCoprocessor: alimenta principalmente ciertos datos (bloque histórico, estado histórico) a un lugar específico (contrato inteligente).
  2. zkVM Compute zkCoprocessor: calcula mediante el zkVM fuera de la cadena, luego devuelve el resultado a la cadena.Comprime el cálculo O(n) en solo una verificación O(1).

2. Definición de zkOracle

a) Oracle

Hyper Oracle nos proporciona una explicación de Oracle en Definición de zkOracle para Ethereum.

Oracle prácticamente resume la "infra" en cualquier espacio de blockchain, como una definición mejor que coprocesador.

Si la entrada al infra/oráculo es datos fuera de la cadena y la salida es en la cadena, entonces es un oráculo de entrada (por ejemplo, Chainlink Price Feed). Por el contrario, es un oráculo de salida (por ejemplo, The Graph). Si el oráculo de salida va primero, entonces el oráculo de entrada, entonces es un oráculo de E/S (por ejemplo, Gelato Network).

En resumen, el oráculo es muy similar al concepto de coprocesador, pero al mismo tiempo tiene las características de acceso a datos y computación.

b) zkOracle

Tomando Hyper Oracle como ejemplo, ¿cuál es la relación entre un zkOracle y ¿un zkCoprocessor?

El zkOracle discutido en Definición de zkOracle para Ethereum en realidad tiene las capacidades de ambos zkCoprocesadores.

Por ejemplo, un zkOracle como Hyper Oracle:

  1. Acceso a datos históricos de forma confiable.
  2. Puede realizar cálculos programables.

3. zkCoprocessor y zkOracle

Cuando comparamos directamente los dos tipos de zkCoprocessor con zkOracle, podemos ver que zkOracle tiene todas las características de zkCoprocessor al mismo tiempo:

  1. procesamiento asíncrono para contrato inteligente
  2. interoperando con y mejorando las capacidades de las aplicaciones existentes en L1 o L2
  3. descarga de cálculos en un sistema con recursos limitados

En comparación directa, zkOracle es una solución más integral que puede proporcionar a los desarrolladores una pila de tecnología más completa.

Los dos zkCoprocessors se expanden en sus respectivas verticales, por ejemplo, el zkCoprocessor de Acceso a Datos desbloquea escenarios de cadena cruzada, y el zkCoprocessor de Cálculo zkVM representa un zk rollup basado en zkVM.

4. Construir con zkCoprocessor o zkOracle

¿Cuál elegir al construir?

En un orden paso a paso, podemos tomar algunas decisiones sobre la construcción de una aplicación.

a) DApp con Contrato Inteligente Puro

Primero, una implementación pura de Solidity de contratos inteligentes sigue siendo una muy buena elección. Si bien los contratos inteligentes puros no ofrecen algunas de las mejores características novedosas, aún son suficientesen ciertos escenarios. Además, la disponibilidad actual de Arbitrum Stylus ha desbloqueado muchas nuevas aplicaciones con contratos inteligentes puros.

b) DApp que necesita un acceso a datos más rico

En muchos casos, los desarrolladores pueden querer usar Data Access zkCoprocessor o zkOracle para contratos inteligentes para acceder a fuentes de datos más ricas.

En este escenario, si Data Access zkCoprocessor se utiliza solo, el cálculo todavía se maneja en el contrato inteligente. El papel del zkCoprocessor es reducir la complejidad de obtener datos de la manera tradicional, pero no hacer que el contrato inteligente sea más computacionalmente poderoso.

En este escenario, vemos muchos proyectos pequeños relacionados con datos, en lugar de DApps completamente desarrolladas en el sentido tradicional:

  1. Usando el Axioma zkCoprocessor: Mejor Gestión de LP, Reembolso de MEVictim
  2. Usando zkOracle Hyper Oracle: Monitor de volumen USDT de actividad comercial de OpenSea, Precio de Uniswap v2

c) DApp que Necesita Cálculos Pesados

A menudo, algunos algoritmos complejos no se pueden calcular directamente en la cadena, para juegos, la lógica computacional es muy compleja, como etherquake y GameOfLife que cuesta $2k para ejecutar un paso. O algoritmos complejos relacionados con ML. O algoritmos complejos relacionados con ML que son imposibles de ejecutar en la cadena. Por lo tanto, necesitamos zkVM zkCoprocessor o zkOracle para ejecutar la computación en el offchain, y luego enviarla a la cadena como ZKP.

En este ejemplo, podemos ver parte de su potencial computacional ilimitado:

  1. Usando zkCoprocessor Bonsai: Zeth (Prove Reth en zkVM), zk-sentimiento
  2. Usando zkOracle Hyper Oracle o zkWASM: zkGo (Prove L2-Geth en zkVM, Tipo-0 zkEVM),zkAMM

d) Next-Gen DApp with Full Features (DeFi 3.0)

Finalmente, hablamos sobre aplicaciones que solo se pueden construir con zkOracle. Tomando la aplicación DeFi como ejemplo, un DeFi completo es muy complejo. La próxima generación de aplicaciones DeFi, o DeFi 3.0 Aplicaciones descentralizadas, requerirá:

  1. Acceso a datos más rico
  2. Cómputo ilimitado
  3. Autónomo (para liquidación, actualización de parámetros, gobernanza de protocolo)

Ya hemos discutido cómo zkOracle comparte las capacidades de ambos zkCoprocessors, al tiempo que cumple con los dos primeros requisitos funcionales. ¿Cómo cumple zkOracle con la característica autónoma y cómo no lo hace zkCoprocessor?

  1. zkOracle: No se requiere intervención humana. Las tareas de acceso a datos y cálculo pueden ser completamente definidas y ejecutadas de manera programable y automatizada. Todas las llamadas onchain son siempre confiables y válidas.
  2. zkCoprocessor: Requiere monitoreo en cadena y filtrado de la respuesta de la computación por el relayer, o la adición de mecanismos extra complejos.

Entonces, ¿qué implica la ausencia de autonomía en el zkCoprocessor: el

  1. Decentralización insuficiente
  2. Riesgo de mecanismos potencialmente complejos
  3. Carga mental del desarrollador

Por lo tanto, zkOracle es una opción perfecta y suficiente para una aplicación completa como DeFi.

Vale la pena señalar que los Hooks también pueden manejar parte de la funcionalidad faltante de zkCoprocessor, pero ÚNICAMENTE en escenarios como DeFi, y no de manera universal.

Descargo de responsabilidad:

  1. Este artículo se reimprime de [Gateespejo]. Todos los derechos de autor pertenecen al autor original [SevenX Ventures]. Si hay objeciones a esta reimpresión, por favor contacte al Gate Aprenderequipo, y lo resolverán rápidamente.
  2. Descargo de responsabilidad: Las opiniones expresadas en este artículo son únicamente las del autor y no constituyen ningún consejo de inversión.
  3. Las traducciones del artículo a otros idiomas son realizadas por el equipo de Gate Learn. A menos que se mencione, está prohibido copiar, distribuir o plagiar los artículos traducidos.

zkOracle y zkCoprocessor

Intermedio1/7/2024, 1:23:40 PM
El artículo explica los conceptos de zkCorprocessor y zkOracle, destacando las diferencias entre los dos y detallando los escenarios en los que cada tipo de zk es adecuado para diferentes casos de uso.

0. Introducción

En esta publicación, analizaremos los conceptos recientemente populares de zkCoprocessor y zkOracle y compararemos sus diferencias.

1. Definición de zkCoprocessor

Cuando se acuña un término, su verdadero significado no está definido por sí mismo. Hemos visto esto muy a menudo en el caso de blockchain.

  1. ZK: Si bien los académicos a menudo se refieren a las características de privacidad del Zero Knowledge, en el contexto de la cadena de bloques, ZK a menudo solo significa la concisión y validez de la tecnología. Incluso los proyectos que se basan en ZK Rollup se llaman a sí mismos zkSomething.
  2. DA: Hasta ahora, muchas personas realmente no se dieron cuenta de que la Disponibilidad de Datos no es Almacenamiento de Datos, por lo que para resolver este problema de terminología, algunas personas tienen sugerido reemplazando DA con DP(Publicación de datos), o hacer que todo el significado de DA se convierta en Publicación de datos + Almacenamiento de datos (1, 2).

Vemos un fenómeno similar en el término zkCoprocessor. Todos usan el término, pero no necesariamente se refieren a las mismas cosas.

Entonces queríamos expresar lo que el proyecto mismo piensa sobre zkCoprocessor, lo que la comunidad entiende sobre zkCoprocessor, y lo que zkCoprocessor realmente significa y hace desde nuestra perspectiva.

a) Desde el Proyecto Mismos

Definición 1 de Axiom: zkCoprocessor demuestra datos históricos en la cadena.

El concepto del zkCoprocessor fue popularizado por Axiom, que originalmente lo concibió como un zkAttestor. A partir de la idea de Axiom, zkCoprocessor representa el componente que “prueba datos históricos en la cadena y utiliza esos datos de forma fiable en un contrato inteligente”.

Tenga en cuenta que el equipo Brevis dijo que este tipo de zkCoprocessors son esencialmente una capa API/DSL encima del circuito zk subyacente. Por lo tanto, esto no es programable.

Definición 2 de RISC Zero: el coprocesador zk descarga la computación de la cadena al exterior de la cadena.

RISC Zero también se refiere a menudo a sí mismo como un zkCoprocessor. Desde su perspectiva, ven zkCoprocessor como un concepto más amplio, 'una herramienta para utilizar ZKPs para descargar cálculos de la cadena a fuera de la cadena'.

b) Desde la comunidad

Definición de Peteris (igual que 1): zkCoprocessor puede acceder al estado histórico en cadena.

Peteris de Aera Financecreeese zkCoprocessor actúa de manera muy similar a un oráculo de estado, con la principal función siendo el acceso a datos históricos. Al mismo tiempo, él y Rishabh de BananaHQcree que la descripción de la definición 2 se parece más a un zkVM que a una subclase de zkCoprocessor.

Definición de Messari, Modular Media y Kobi (lo mismo que 2): zkCoprocessor descarga la computación de la cadena a la cadena.

Messari también ha dado su propia definición de zkCoprocessor. Sami, un investigador en Messari,creeque zkCoprocessor permite a los desarrolladores de contratos inteligentes descargar fácilmente la lógica compleja fuera de la cadena sin nuevas suposiciones de confianza. También Modular Mediada el mismo concepto. Kobi de Geometríacompara rollup con un coprocesador, Brevis agregó que zkCoprocessorintercambia el costo de mantener un almacenamiento de estado permanente contra un rendimiento hiper-reforzado, Taiko ideó el diseño de Booster Rollupque exploró aún más la idea de Coprocesador de Rollup. Estas son la misma definición que RISC Zero.

c) De nosotros

Para resumir, concluimos que hay dos tipos de zkCoprocessor en la práctica, y son los siguientes:

  1. Acceso de datos zkCoprocessor: alimenta principalmente ciertos datos (bloque histórico, estado histórico) a un lugar específico (contrato inteligente).
  2. zkVM Compute zkCoprocessor: calcula mediante el zkVM fuera de la cadena, luego devuelve el resultado a la cadena.Comprime el cálculo O(n) en solo una verificación O(1).

2. Definición de zkOracle

a) Oracle

Hyper Oracle nos proporciona una explicación de Oracle en Definición de zkOracle para Ethereum.

Oracle prácticamente resume la "infra" en cualquier espacio de blockchain, como una definición mejor que coprocesador.

Si la entrada al infra/oráculo es datos fuera de la cadena y la salida es en la cadena, entonces es un oráculo de entrada (por ejemplo, Chainlink Price Feed). Por el contrario, es un oráculo de salida (por ejemplo, The Graph). Si el oráculo de salida va primero, entonces el oráculo de entrada, entonces es un oráculo de E/S (por ejemplo, Gelato Network).

En resumen, el oráculo es muy similar al concepto de coprocesador, pero al mismo tiempo tiene las características de acceso a datos y computación.

b) zkOracle

Tomando Hyper Oracle como ejemplo, ¿cuál es la relación entre un zkOracle y ¿un zkCoprocessor?

El zkOracle discutido en Definición de zkOracle para Ethereum en realidad tiene las capacidades de ambos zkCoprocesadores.

Por ejemplo, un zkOracle como Hyper Oracle:

  1. Acceso a datos históricos de forma confiable.
  2. Puede realizar cálculos programables.

3. zkCoprocessor y zkOracle

Cuando comparamos directamente los dos tipos de zkCoprocessor con zkOracle, podemos ver que zkOracle tiene todas las características de zkCoprocessor al mismo tiempo:

  1. procesamiento asíncrono para contrato inteligente
  2. interoperando con y mejorando las capacidades de las aplicaciones existentes en L1 o L2
  3. descarga de cálculos en un sistema con recursos limitados

En comparación directa, zkOracle es una solución más integral que puede proporcionar a los desarrolladores una pila de tecnología más completa.

Los dos zkCoprocessors se expanden en sus respectivas verticales, por ejemplo, el zkCoprocessor de Acceso a Datos desbloquea escenarios de cadena cruzada, y el zkCoprocessor de Cálculo zkVM representa un zk rollup basado en zkVM.

4. Construir con zkCoprocessor o zkOracle

¿Cuál elegir al construir?

En un orden paso a paso, podemos tomar algunas decisiones sobre la construcción de una aplicación.

a) DApp con Contrato Inteligente Puro

Primero, una implementación pura de Solidity de contratos inteligentes sigue siendo una muy buena elección. Si bien los contratos inteligentes puros no ofrecen algunas de las mejores características novedosas, aún son suficientesen ciertos escenarios. Además, la disponibilidad actual de Arbitrum Stylus ha desbloqueado muchas nuevas aplicaciones con contratos inteligentes puros.

b) DApp que necesita un acceso a datos más rico

En muchos casos, los desarrolladores pueden querer usar Data Access zkCoprocessor o zkOracle para contratos inteligentes para acceder a fuentes de datos más ricas.

En este escenario, si Data Access zkCoprocessor se utiliza solo, el cálculo todavía se maneja en el contrato inteligente. El papel del zkCoprocessor es reducir la complejidad de obtener datos de la manera tradicional, pero no hacer que el contrato inteligente sea más computacionalmente poderoso.

En este escenario, vemos muchos proyectos pequeños relacionados con datos, en lugar de DApps completamente desarrolladas en el sentido tradicional:

  1. Usando el Axioma zkCoprocessor: Mejor Gestión de LP, Reembolso de MEVictim
  2. Usando zkOracle Hyper Oracle: Monitor de volumen USDT de actividad comercial de OpenSea, Precio de Uniswap v2

c) DApp que Necesita Cálculos Pesados

A menudo, algunos algoritmos complejos no se pueden calcular directamente en la cadena, para juegos, la lógica computacional es muy compleja, como etherquake y GameOfLife que cuesta $2k para ejecutar un paso. O algoritmos complejos relacionados con ML. O algoritmos complejos relacionados con ML que son imposibles de ejecutar en la cadena. Por lo tanto, necesitamos zkVM zkCoprocessor o zkOracle para ejecutar la computación en el offchain, y luego enviarla a la cadena como ZKP.

En este ejemplo, podemos ver parte de su potencial computacional ilimitado:

  1. Usando zkCoprocessor Bonsai: Zeth (Prove Reth en zkVM), zk-sentimiento
  2. Usando zkOracle Hyper Oracle o zkWASM: zkGo (Prove L2-Geth en zkVM, Tipo-0 zkEVM),zkAMM

d) Next-Gen DApp with Full Features (DeFi 3.0)

Finalmente, hablamos sobre aplicaciones que solo se pueden construir con zkOracle. Tomando la aplicación DeFi como ejemplo, un DeFi completo es muy complejo. La próxima generación de aplicaciones DeFi, o DeFi 3.0 Aplicaciones descentralizadas, requerirá:

  1. Acceso a datos más rico
  2. Cómputo ilimitado
  3. Autónomo (para liquidación, actualización de parámetros, gobernanza de protocolo)

Ya hemos discutido cómo zkOracle comparte las capacidades de ambos zkCoprocessors, al tiempo que cumple con los dos primeros requisitos funcionales. ¿Cómo cumple zkOracle con la característica autónoma y cómo no lo hace zkCoprocessor?

  1. zkOracle: No se requiere intervención humana. Las tareas de acceso a datos y cálculo pueden ser completamente definidas y ejecutadas de manera programable y automatizada. Todas las llamadas onchain son siempre confiables y válidas.
  2. zkCoprocessor: Requiere monitoreo en cadena y filtrado de la respuesta de la computación por el relayer, o la adición de mecanismos extra complejos.

Entonces, ¿qué implica la ausencia de autonomía en el zkCoprocessor: el

  1. Decentralización insuficiente
  2. Riesgo de mecanismos potencialmente complejos
  3. Carga mental del desarrollador

Por lo tanto, zkOracle es una opción perfecta y suficiente para una aplicación completa como DeFi.

Vale la pena señalar que los Hooks también pueden manejar parte de la funcionalidad faltante de zkCoprocessor, pero ÚNICAMENTE en escenarios como DeFi, y no de manera universal.

Descargo de responsabilidad:

  1. Este artículo se reimprime de [Gateespejo]. Todos los derechos de autor pertenecen al autor original [SevenX Ventures]. Si hay objeciones a esta reimpresión, por favor contacte al Gate Aprenderequipo, y lo resolverán rápidamente.
  2. Descargo de responsabilidad: Las opiniones expresadas en este artículo son únicamente las del autor y no constituyen ningún consejo de inversión.
  3. Las traducciones del artículo a otros idiomas son realizadas por el equipo de Gate Learn. A menos que se mencione, está prohibido copiar, distribuir o plagiar los artículos traducidos.
今すぐ始める
登録して、
$100
のボーナスを獲得しよう!