Antecedentes históricos del coprocesador

En el campo de la informática tradicional, un coprocesador es una unidad de procesamiento responsable de manejar otras cosas complicadas para el cerebro de la CPU. El coprocesamiento es muy común en el campo de la informática. Por ejemplo, Apple lanzó el coprocesador de movimiento M7 en 2013, que mejoró enormemente la sensibilidad al movimiento de los dispositivos inteligentes. La conocida GPU es el coprocesador propuesto por Nvidia en 2007, que se encarga de manejar tareas como la representación de gráficos para la CPU. La GPU acelera las aplicaciones que se ejecutan en la CPU al descargar algunas partes del código que requieren mucho tiempo y computación, una arquitectura conocida como computación "heterogénea"/"híbrida".

El coprocesador puede descargar algunos códigos complejos con requisitos de rendimiento únicos o requisitos de rendimiento extremadamente altos, lo que permite que la CPU maneje partes más flexibles y cambiables.

En la cadena Ethereum existen dos problemas que dificultan seriamente el desarrollo de aplicaciones:

  1. Dado que la operación requiere una tarifa de gas alta, una transferencia ordinaria está codificada con un límite de 21,000 gas. Esto muestra el resultado final de la tarifa de gas de la red Ethereum. Otras operaciones, incluido el almacenamiento, costarán más gas, lo que limitará las aplicaciones en cadena. En términos de alcance de desarrollo, la mayoría de los códigos de contrato solo se escriben en torno a operaciones de activos. Una vez que se involucran operaciones complejas, se requerirá una gran cantidad de gas, lo que es un serio obstáculo para la "adopción masiva" de aplicaciones y usuarios.

  2. Dado que el contrato inteligente existe en la máquina virtual, el contrato inteligente en realidad solo puede acceder a los datos de los 256 bloques recientes. Especialmente en la actualización de Pectra del próximo año, introducida por la propuesta EIP-4444, el nodo completo ya no almacenará los bloques anteriores. bloquear datos, la falta de datos ha provocado un retraso en la aparición de aplicaciones innovadoras basadas en datos. Después de todo, las aplicaciones defi como Tiktok, Instagram, multidatos, LLM, etc. se basan en datos. Lens se basa en La razón por la que el protocolo social de datos lanzará la Capa 3 Momoka es porque creemos que la cadena de bloques tiene un flujo de datos muy fluido. Después de todo, la cadena es abierta y transparente, pero en realidad este no es el caso. Es solo que los datos de los activos simbólicos fluyen sin problemas, pero los activos de datos se deben a La imperfección de las instalaciones subyacentes sigue siendo un gran obstáculo, lo que también limitará seriamente la aparición de productos de "adopción masiva".

A través de este hecho, encontramos que tanto el cálculo como los datos son las razones que limitan el surgimiento del nuevo paradigma informático "Adopción Masiva". Sin embargo, esta es una deficiencia de la propia cadena de bloques Ethereum, y no fue diseñada para manejar grandes cantidades de cálculos y tareas con uso intensivo de datos. Pero, ¿cómo lograr la compatibilidad con estas aplicaciones informáticas y de uso intensivo de datos? Aquí necesitamos introducir un coprocesador. La cadena Ethereum en sí actúa como una CPU, y el coprocesador es similar a una GPU. La cadena en sí puede manejar algunos datos de activos y operaciones simples que no son informáticos. las aplicaciones quieren utilizar datos o cálculos de forma flexible. Los recursos pueden utilizar coprocesadores. Con la exploración de la tecnología ZK, para garantizar que los coprocesadores realicen cálculos y utilicen datos fuera de la cadena sin confianza, es natural que la mayoría de los coprocesadores se desarrollen con ZK como capa subyacente.

Para ZK Coporcessor, su límite de aplicación es tan amplio que puede cubrir cualquier escenario de aplicación dapp real, como redes sociales, juegos, bloques de construcción Defi, sistemas de control de riesgos basados ​​en datos en cadena, Oracle, almacenamiento de datos, entrenamiento de lenguajes de modelos grandes. e inferencia, etc. En teoría, cualquier cosa que las aplicaciones Web2 puedan hacer se puede lograr con el coprocesador ZK, y Ethereum sirve como la capa de liquidación final para proteger la seguridad de las aplicaciones.

En el mundo tradicional, no existe una definición clara de coprocesador, siempre que se pueda utilizar un chip independiente como auxiliar para ayudar a completar las tareas, se denomina coprocesador. La definición actual de coprocesadores ZK en la industria no es exactamente la misma. ZK-Query, ZK-Oracle, ZKM, etc. son todos coprocesadores que pueden ayudar a consultar datos completos en la cadena y datos confiables fuera de la cadena. Y los resultados del cálculo fuera de la cadena. A juzgar por esta definición, Layer2 en realidad se considera un coprocesador de Ethereum. También compararemos las similitudes y diferencias entre Layer2 y el coprocesador ZK general.

Lista de proyectos de coprocesador

Algunos proyectos del coprocesador ZK, fuente: Gate Ventures

En la actualidad, el coprocesamiento relativamente conocido en la industria se divide en tres partes, a saber, los tres escenarios de aplicación principales: indexación de datos en cadena, máquinas Oracle y ZKML. El proyecto incluido en los tres escenarios es General-ZKM. Y las máquinas virtuales que se ejecutan fuera de la cadena son diferentes. Por ejemplo, Delphinus se centra en zkWASM, mientras que Risc Zero se centra en la arquitectura Risc-V.

Arquitectura de tecnología de coprocesador

Tomamos el coprocesador General ZK como ejemplo para analizar su arquitectura y permitir a los lectores comprender las similitudes y diferencias en la tecnología y el diseño del mecanismo de esta máquina virtual de propósito general, y para juzgar la tendencia de desarrollo futuro de los coprocesadores, que gira principalmente en torno a Risc Three. Se analizaron proyectos como Zero, Lagrange y Succinct.

Calefacción Cero

En Risc Zero, su coprocesador ZK se llama Bonsai.

Arquitectura bonsái, fuente: Risc Zero

Componentes del bonsái, fuente: Risc Zero

En Bonsai, se ha creado un conjunto completo de componentes a prueba de conocimiento cero independientes de la cadena. El objetivo es convertirse en un coprocesador independiente de la cadena basado en la arquitectura del conjunto de instrucciones Risc-V, que tiene una gran versatilidad y lenguajes compatibles. Incluyendo Rust, C++, Solidity, Go, etc. Sus principales funciones incluyen:

  1. ZkVM universal capaz de ejecutar cualquier máquina virtual en un entorno verificable/con conocimiento cero.

  2. Sistema de generación de pruebas ZK que se puede integrar directamente en cualquier cadena o contrato inteligente

  3. Un paquete acumulativo de propósito general que distribuye cualquier cálculo de una prueba en Bonsai a la cadena, lo que permite a los mineros de la red realizar la generación de pruebas.

Sus componentes incluyen:

  1. Red Prover: a través de la API Bonsai, el probador recibe el código ZK que debe verificarse en la red y luego ejecuta el algoritmo de prueba para generar la prueba ZK. Esta red estará abierta a todos en el futuro.

  2. Grupo de solicitudes: este grupo almacena solicitudes de certificación iniciadas por los usuarios (similar al mempool de Ethereum, utilizado para almacenar transacciones temporalmente). Luego, el secuenciador ordenará este grupo de solicitudes para generar bloques y muchas de las solicitudes de certificación se dividirán en puntos. mejorar la eficiencia de la prueba.

  3. Motor acumulativo: este motor recopilará los resultados de las pruebas recopilados en la red del probador, luego los empaquetará en Root Proof y los cargará en la red principal de Ethereum para que los validadores de la cadena puedan verificarlos en cualquier momento.

  4. Image Hub: esta es una plataforma de desarrollador visual donde se pueden almacenar funciones y aplicaciones completas. Por lo tanto, los desarrolladores pueden llamar a la API correspondiente a través de contratos inteligentes. Por lo tanto, los contratos inteligentes en la cadena tienen la capacidad de llamar a programas fuera de la cadena.

  5. State Store: Bonsai también introdujo el almacenamiento de estado fuera de la cadena, que se almacena en forma de pares clave-valor en la base de datos, lo que puede reducir los costos de almacenamiento en la cadena y cooperar con la plataforma ImageHub para reducir la complejidad de los contratos inteligentes.

  6. Mercado de demostración: ZK demuestra los tramos medio y superior de la cadena industrial, y el mercado de potencia informática se utiliza para igualar los lados de la oferta y la demanda de potencia informática.

Lagrange

El objetivo de Lagrange es crear un coprocesador y una base de datos verificable que incluya datos históricos en la cadena de bloques y pueda utilizar estos datos sin problemas para crear aplicaciones que no sean confiables. Esto permite el desarrollo de aplicaciones informáticas y de uso intensivo de datos.

Esto implica dos funciones:

  1. Base de datos verificable: al indexar el almacenamiento del contrato inteligente en la cadena, el estado en cadena generado por el contrato inteligente se coloca en la base de datos. Básicamente, el almacenamiento, el estado y los bloques de la cadena de bloques se reconstruyen y luego se almacenan de manera actualizada en una base de datos fuera de la cadena para una fácil recuperación.

  2. Computación basada en el principio de MapReduce: el principio de MapReduce consiste en utilizar la separación de datos y la computación paralela de múltiples instancias en grandes bases de datos y, finalmente, integrar los resultados. Lagrange llama a esta arquitectura que admite la ejecución paralela zkMR.

En el diseño de la base de datos, se incluyen un total de tres partes de datos en cadena, a saber, datos de almacenamiento de contratos, datos de estado de EOA y datos de bloques.

Estructura de la base de datos de Lagrange, fuente: Lagrange

Lo anterior es la estructura de mapeo de los datos almacenados en su contrato. Las variables de estado del contrato se almacenan aquí, y cada contrato tiene un Trie de almacenamiento independiente. Este Trie se almacena en forma de árbol MPT en Ethereum. Aunque el árbol MPT es simple, su eficiencia es muy baja, razón por la cual los desarrolladores principales de Ethereum promueven el desarrollo de árboles Verkel. En Lagrange, cada nodo se puede "probar" utilizando SNARK/STARK, y el nodo principal contiene la prueba del nodo secundario, lo que requiere el uso de tecnología de prueba recursiva.

Estado de la cuenta, fuente: Lagrange

Las cuentas son cuentas EOA y de contrato, que se pueden almacenar en forma de cuenta/raíz de almacenamiento (espacio de almacenamiento para variables de contrato) para representar el estado de la cuenta, pero parece que Lagrange no ha diseñado completamente esta parte y en realidad necesita agregar State Trie. (La raíz del espacio de almacenamiento de estado de la cuenta externa).

Estructura de datos del bloque, fuente: Lagrange

En la nueva estructura de datos, Lagrange creó una estructura de datos de bloque que es compatible con las pruebas de SNARK. Cada hoja de este árbol es un encabezado de bloque. Si Ethereum produce un bloque una vez cada 12 segundos, entonces esta base de datos. Se puede utilizar durante unos 25 años.

En la máquina virtual ZKMR de Lagrange, su cálculo tiene dos pasos:

  1. Mapa: una máquina distribuida asigna datos completos y genera pares clave-valor.

  2. Reducir: las computadoras distribuidas calculan las pruebas por separado y luego combinan todas las pruebas.

En resumen, ZKMR puede combinar pruebas de cálculos más pequeños para crear pruebas de todo el cálculo. Esto permite que ZKMR escale de manera eficiente para realizar pruebas computacionales complejas en grandes conjuntos de datos que requieren múltiples pasos o capas de cálculo. Por ejemplo, si Uniswap se implementa en 100 cadenas, entonces si desea calcular el precio TWAP de un determinado token en 100 cadenas, se requerirán muchos cálculos e integración. En este momento, ZKMR puede calcular cada cadena por separado y luego. combinar Crea una prueba de cálculo completa.

Proceso de operación del coprocesador de Lagrange, fuente: Lagrange

Lo anterior es su proceso de ejecución:

  1. El contrato inteligente del desarrollador primero se registra en Lagrange y luego envía una solicitud de prueba al contrato inteligente en cadena de Lagrange. En este momento, el contrato de proxy es responsable de interactuar con el contrato del desarrollador.

  2. Lagrange fuera de la cadena realiza la coverificación dividiendo las solicitudes en pequeñas tareas paralelizables y distribuyéndolas a diferentes probadores.

  3. Este probador es en realidad una red y la seguridad de su red está garantizada por la tecnología Restating de EigenLayer.

Sucinto

El objetivo de Succinct Network es integrar hechos programables en cada parte de la pila de desarrollo de blockchain (incluidos L2, coprocesadores, puentes entre cadenas, etc.).

Proceso de operación sucinto, fuente: Sucinto

Succinct puede aceptar códigos que incluyen Solidity y lenguajes especializados (DSL) en campos de conocimiento cero y pasarlos al coprocesador de Succinct fuera de la cadena. Succinct completa el índice de datos de la cadena de destino y luego envía la certificación. aplicación al mercado de certificación, que puede admitir CPU, mineros de GPU y chips ETC envían pruebas en la red de pruebas. Su característica es que el mercado de pruebas es compatible con varios sistemas de pruebas, porque habrá un largo período de tiempo en el que varios sistemas de pruebas coexistirán en el futuro.

El ZKVM fuera de cadena de Succinct se llama SP (Procesador Succinct), que puede admitir el lenguaje Rust y otros lenguajes LLVM. Sus características principales incluyen:

  1. Recursión + verificación: la tecnología de verificación recursiva basada en la tecnología STARK puede mejorar exponencialmente la eficiencia de la compresión ZK.

  2. Admite envoltorios de SNARK a STARK: capaz de adoptar las ventajas de SNARK y STARK al mismo tiempo, resolviendo el problema de compensación entre el tamaño de la prueba y el tiempo de verificación.

  3. Arquitectura zkVM centrada en la precompilación: para algunos algoritmos comunes como SHA256, Keccak, ECDSA, etc., se pueden compilar con anticipación para reducir el tiempo de generación de pruebas y el tiempo de verificación en tiempo de ejecución.

Comparar

Al comparar coprocesadores ZK de uso general, principalmente hacemos comparaciones que satisfacen el primer principio de adopción masiva. También explicaremos por qué es importante:

  1. Problemas de indexación/sincronización de datos: solo los datos completos en cadena y las funciones de indexación sincronizadas pueden cumplir con los requisitos de las aplicaciones basadas en big data; de lo contrario, el alcance de su aplicación será relativamente único.

  2. Basado en la tecnología: las tecnologías SNARK y STARK tienen diferentes puntos de decisión. En el mediano plazo, la tecnología SNARK será la principal y, en el largo plazo, la tecnología STARK será la principal.

  3. Ya sea para admitir la recursividad: solo admitiendo la recursividad podemos comprimir datos en mayor medida y lograr pruebas de cálculos paralelos. Por lo tanto, lograr la recursividad completa es el punto culminante técnico del proyecto.

  4. Sistema de prueba: el sistema de prueba afecta directamente el tamaño y el tiempo de generación de la prueba. Esta es la parte más cara de la tecnología ZK. Actualmente, el mercado de potencia de computación en la nube de ZK y la red de prueba son los principales.

  5. Cooperación ecológica: Capaz de juzgar si su dirección técnica es reconocida por los usuarios finales B a través del tercer lado de la demanda real.

  6. Respaldo a los capitalistas de riesgo y estado de financiamiento: puede indicar apoyo de recursos posterior.

Fuente: Gate Ventures

De hecho, el camino técnico general es muy claro, por lo que la mayoría de las tecnologías son convergentes. Por ejemplo, todas utilizan envoltorios de STARK a SNARK, que pueden aprovechar las ventajas de STARK y SNARK al mismo tiempo y reducir el tiempo de generación de pruebas y el tiempo de verificación. y resistir ataques cuánticos. Dado que la recursividad del algoritmo ZK puede afectar en gran medida el rendimiento de ZK, actualmente los tres proyectos tienen funciones recursivas. La generación de prueba del algoritmo ZK es la parte que consume más tiempo y dinero. Por lo tanto, los tres proyectos dependen de su fuerte demanda de potencia informática ZK para construir la red de prueba y el mercado de potencia informática en la nube. En vista de esto, cuando los caminos técnicos actuales son muy similares, puede ser más necesario romper con el equipo y el VC detrás de ellos para ayudar con recursos de cooperación ecológica para ocupar participación de mercado.

Similitudes y diferencias entre coprocesador y Layer2

A diferencia de Layer2, el coprocesador está orientado a las aplicaciones, mientras que Layer2 todavía está orientado al usuario. El coprocesador se puede utilizar como componente de aceleración o componente modular para formar los siguientes escenarios de aplicación:

  1. Como componentes de máquinas virtuales fuera de la cadena de ZK Layer2, estas Layer2 pueden reemplazar sus propias máquinas virtuales con coprocesadores.

  2. Como coprocesador de aplicaciones en la cadena pública para descargar potencia informática fuera de la cadena.

  3. Como oráculo de aplicaciones de la cadena pública para obtener datos verificables de otras cadenas.

  4. Actúa como un puente cruzado entre las dos cadenas para transmitir mensajes.

Estos escenarios de aplicación son solo una lista parcial. Para el coprocesador, debemos comprender que brinda el potencial de sincronización de datos en tiempo real y computación confiable de alto rendimiento y bajo costo en toda la cadena, y se puede reconstruir de manera segura. casi todos los bloques a través del coprocesador. Todo el middleware de la cadena. Incluyendo Chainlink y The Graph, actualmente están desarrollando sus propios oráculos y consultas ZK; los principales puentes entre cadenas como Wormhole, Layerzero, etc. también están desarrollando tecnología de puentes entre cadenas basada en la capacitación de LLM (oráculos de modelos grandes) fuera de la cadena; y razonamiento confiable, etc.

Problemas que enfrentan los coprocesadores

  1. Existe resistencia para que los desarrolladores ingresen. La tecnología ZK es teóricamente factible, pero todavía hay muchas dificultades técnicas y la comprensión externa es difícil de entender. Por lo tanto, cuando los nuevos desarrolladores ingresan al ecosistema, deben dominar lenguajes y herramientas de desarrollo específicos. , puede haber una mayor resistencia.

  2. La pista se encuentra en una etapa muy temprana. El rendimiento de zkVM es muy complejo e involucra múltiples dimensiones (incluido el hardware, el rendimiento de un solo nodo y de varios nodos, el uso de memoria, el costo de recursividad, la selección de la función hash y otros factores). Proyectos en construcción en diversas dimensiones. La pista se encuentra en una etapa muy temprana y el panorama aún no está claro.

  3. Los requisitos previos como el hardware aún no se han implementado. Desde la perspectiva del hardware, el hardware principal actual se construye utilizando ASIC y FPGA. Los fabricantes incluyen Ingonyama, Cysic, etc., que aún se encuentran en la etapa de laboratorio y aún no se han comercializado. Creemos que el hardware es la tecnología ZK. Requisitos previos para la implementación a gran escala.

  4. Los caminos técnicos son similares y es difícil tener un liderazgo tecnológico entre generaciones. En la actualidad, la principal competencia son los recursos de VC detrás de él y las capacidades de BD del equipo, y si puede ganar el nicho ecológico de las aplicaciones principales y las cadenas públicas. .

Resumen y perspectivas

La tecnología ZK es extremadamente versátil y también ha ayudado al ecosistema Ethereum a pasar de una orientación de valor descentralizada a una orientación de valor sin confianza. “No confíes, verifícalo”, esta frase es la mejor práctica de la tecnología ZK. La tecnología ZK puede reconstruir una serie de escenarios de aplicación, como puentes entre cadenas, oráculos, consultas dentro de la cadena, cálculos fuera de la cadena, máquinas virtuales, etc., y el coprocesador ZK de uso general es una de las herramientas para implementar la tecnología ZK. . Para ZK Coporcessor, su límite de aplicación es tan amplio que puede cubrir cualquier escenario de aplicación dapp real. En teoría, cualquier cosa que las aplicaciones Web2 puedan hacer se puede lograr con el coprocesador ZK.

Curva de penetración tecnológica, fuente: Gartner

Desde la antigüedad, el desarrollo de la tecnología ha ido a la zaga de la imaginación humana de una vida mejor (como Chang'e volando a la luna o Apolo pisando la luna). Si algo es verdaderamente innovador, subversivo y necesario, entonces la tecnología definitivamente lo hará realidad. eso, solo se necesita tiempo. Creemos que el coprocesador universal ZK sigue esta tendencia de desarrollo. Tenemos dos indicadores para la "Adopción masiva" del coprocesador ZK: una base de datos demostrable en tiempo real en toda la cadena y computación fuera de la cadena de bajo costo. Si la cantidad de datos es suficiente y la sincronización en tiempo real se combina con cálculos verificables fuera de la cadena de bajo costo, entonces el paradigma de desarrollo de software se puede cambiar por completo. Sin embargo, este objetivo es lentamente iterativo, por lo que nos centramos en encontrar tendencias u orientaciones de valor. que son consistentes con estos dos puntos del proyecto, y la implementación de chips informáticos ZK es el requisito previo para la aplicación comercial a gran escala de los coprocesadores ZK. Este ciclo carece de innovación y es el período de ventana para construir verdaderamente la próxima generación de "adopción masiva". "tecnología y aplicaciones. Esperamos que en la próxima ronda Durante el ciclo, la cadena industrial ZK pueda comercializarse, por lo que ahora es el momento de volver a centrarse en algunas tecnologías que realmente pueden permitir que Web3 lleve a cabo mil millones de interacciones de personas en la cadena.