prueba de fraude y ZK Fraud Proof: principios de implementación de la tecnología de seguridad moderna de la cadena de bloques
La prueba de fraude es una solución técnica ampliamente utilizada en el campo de la cadena de bloques, que se originó en la comunidad de Ethereum y fue adoptada por conocidos Layer2 de Ethereum como Arbitrum y Optimism. Tras el surgimiento del ecosistema de Bitcoin en 2023, Robin Linus propuso el esquema BitVM, con la prueba de fraude como idea central, que proporciona un nuevo modelo de seguridad para la segunda capa de Bitcoin o puentes, basado en tecnologías existentes de Bitcoin como Taproot.
BitVM ha pasado por la evolución de varias versiones teóricas, desde las primeras BitVM0 hasta las posteriores BitVM2, con rutas de implementación técnica que han madurado constantemente, atrayendo la amplia atención de la industria. Varios proyectos como Bitlayer, Citrea, BOB, entre otros, han basado sus implementaciones en diferentes versiones de BitVM.
Este artículo tomará como ejemplo el esquema de prueba de fraude de Optimism, analizando su solución basada en la máquina virtual MIPS y la prueba de fraude interactiva, así como las principales ideas detrás de la prueba de fraude ZK.
OutputRoot y StateRoot
Optimism es un conocido proyecto de Rollup Optimista, cuya infraestructura está compuesta por un secuenciador y contratos inteligentes en la cadena de bloques de Ethereum. Después de que el secuenciador procesa los datos de las transacciones, estos datos se envían a Ethereum. Los usuarios que ejecutan el cliente de nodo de Optimism pueden descargar estos datos, ejecutar transacciones localmente y calcular el hash del conjunto de estados actual.
Si el secuenciador sube un hash de conjunto de estados incorrecto, el resultado del cálculo local será diferente, en este caso se puede iniciar una disputa a través del sistema de prueba de fraude. Las cadenas de bloques del tipo EVM suelen usar la estructura de datos Merkle Tree para registrar el conjunto de estados, conocida como World State Trie. Después de la ejecución de la transacción, el World State Trie cambiará y su hash final también se actualizará. Ethereum llama a este hash StateRoot, que se utiliza para representar el cambio en el conjunto de estados.
El sistema de cuentas de Optimism es similar al de Ethereum, y también utiliza el campo StateRoot para reflejar los cambios en el conjunto de estados. El secuenciador subirá periódicamente el OutputRoot a Ethereum, que se calcula a partir de StateRoot y otros dos campos.
Máquina virtual MIPS y Árbol de Merkle de memoria
Para verificar la corrección de OutputRoot en la cadena, la forma más sencilla es implementar un cliente de nodo OP en Ethereum, pero esto enfrenta dos problemas:
El contrato inteligente no puede obtener automáticamente los parámetros de entrada necesarios para la prueba de fraude.
El límite de Gas de Ethereum no admite tareas de cálculo complejas
La primera pregunta se puede resolver mediante el despliegue del contrato PreimageOracle. Para la segunda pregunta, el equipo de OP ha escrito la máquina virtual MIPS en Solidity, implementando algunas funciones del cliente del nodo.
Debido a la imposibilidad de ejecutar todas las transacciones de forma completa en la cadena, OP diseñó un sistema interactivo de prueba de fraude, que descompone el proceso de manejo de transacciones en un procesamiento ordenado de códigos de operación MIPS. Después de que se ejecute cada código de operación, el hash del estado de la máquina virtual cambiará, y estos registros se resumirán en un árbol de Merkle.
En el proceso de prueba de fraude, es necesario determinar qué código de operación MIPS causó el problema en el hash del estado de la máquina virtual, luego reproducir el estado de ese momento en la cadena, ejecutar el código de operación y comparar los resultados. Esto requiere cargar parte de la información del estado de la máquina virtual MIPS en la cadena.
Prueba de fraude interactiva
El equipo de OP desarrolló el protocolo Fault Dispute Game(FDG), que incluye dos roles: el retador y el defensor. Los participantes deben construir localmente un GameTree, que consta de dos capas de árboles Merkle. Las hojas de la primera capa del árbol son los OutputRoot de diferentes Bloquears, y las hojas de la segunda capa son el hash del estado de la máquina virtual MIPS.
Ambas partes interactuaron varias veces en la cadena, finalmente localizando el opcode MIPS en disputa. El mecanismo central de la prueba de fraude interactiva incluye:
La ubicación de FDG requiere la ejecución en la cadena de bloques del código de operación MIPS y la información del estado de la VM.
Ejecutar el código de operación en la máquina virtual MIPS en la cadena de bloques de Ethereum, obteniendo el resultado final.
Prueba de fraude ZK
La interacción compleja de la prueba de fraude tradicional presenta los siguientes problemas:
Las interacciones múltiples generan altos costos de gas
El proceso de interacción es largo, durante el cual Rollup no puede ejecutar transacciones correctamente.
La dificultad de desarrollo para implementar instrucciones de reproducción específicas de VM en la cadena es alta.
Para resolver estos problemas, Optimism propuso el concepto de prueba de fraude ZK. La clave es que, cuando ocurre un desafío, el secuenciador de Rollup proporciona la prueba ZK de la transacción desafiada, que es verificada por un contrato inteligente de Ethereum. Si la verificación es exitosa, indica que el procesamiento de la transacción es correcto.
En comparación con la prueba de fraude interactiva, la Prueba de Fraude ZK simplifica múltiples interacciones a una sola generación y verificación de prueba ZK, ahorrando tiempo y costos. En comparación con ZK Rollup, el OP Rollup basado en la Prueba de Fraude ZK genera prueba ZK solo cuando es desafiado, reduciendo los costos de computación.
Esta idea también fue adoptada por BitVM2. Proyectos que utilizan BitVM2, como Bitlayer y Goat Network, implementan programas de verificación de ZK Proof a través de scripts de Bitcoin, y han reducido significativamente la escala de los programas que necesitan estar en la cadena.
Esta página puede contener contenido de terceros, que se proporciona únicamente con fines informativos (sin garantías ni declaraciones) y no debe considerarse como un respaldo por parte de Gate a las opiniones expresadas ni como asesoramiento financiero o profesional. Consulte el Descargo de responsabilidad para obtener más detalles.
prueba de fraude y ZK Fraud Proof: análisis de los principios de implementación de la seguridad moderna de la Cadena de bloques
prueba de fraude y ZK Fraud Proof: principios de implementación de la tecnología de seguridad moderna de la cadena de bloques
La prueba de fraude es una solución técnica ampliamente utilizada en el campo de la cadena de bloques, que se originó en la comunidad de Ethereum y fue adoptada por conocidos Layer2 de Ethereum como Arbitrum y Optimism. Tras el surgimiento del ecosistema de Bitcoin en 2023, Robin Linus propuso el esquema BitVM, con la prueba de fraude como idea central, que proporciona un nuevo modelo de seguridad para la segunda capa de Bitcoin o puentes, basado en tecnologías existentes de Bitcoin como Taproot.
BitVM ha pasado por la evolución de varias versiones teóricas, desde las primeras BitVM0 hasta las posteriores BitVM2, con rutas de implementación técnica que han madurado constantemente, atrayendo la amplia atención de la industria. Varios proyectos como Bitlayer, Citrea, BOB, entre otros, han basado sus implementaciones en diferentes versiones de BitVM.
Este artículo tomará como ejemplo el esquema de prueba de fraude de Optimism, analizando su solución basada en la máquina virtual MIPS y la prueba de fraude interactiva, así como las principales ideas detrás de la prueba de fraude ZK.
OutputRoot y StateRoot
Optimism es un conocido proyecto de Rollup Optimista, cuya infraestructura está compuesta por un secuenciador y contratos inteligentes en la cadena de bloques de Ethereum. Después de que el secuenciador procesa los datos de las transacciones, estos datos se envían a Ethereum. Los usuarios que ejecutan el cliente de nodo de Optimism pueden descargar estos datos, ejecutar transacciones localmente y calcular el hash del conjunto de estados actual.
Si el secuenciador sube un hash de conjunto de estados incorrecto, el resultado del cálculo local será diferente, en este caso se puede iniciar una disputa a través del sistema de prueba de fraude. Las cadenas de bloques del tipo EVM suelen usar la estructura de datos Merkle Tree para registrar el conjunto de estados, conocida como World State Trie. Después de la ejecución de la transacción, el World State Trie cambiará y su hash final también se actualizará. Ethereum llama a este hash StateRoot, que se utiliza para representar el cambio en el conjunto de estados.
El sistema de cuentas de Optimism es similar al de Ethereum, y también utiliza el campo StateRoot para reflejar los cambios en el conjunto de estados. El secuenciador subirá periódicamente el OutputRoot a Ethereum, que se calcula a partir de StateRoot y otros dos campos.
Máquina virtual MIPS y Árbol de Merkle de memoria
Para verificar la corrección de OutputRoot en la cadena, la forma más sencilla es implementar un cliente de nodo OP en Ethereum, pero esto enfrenta dos problemas:
La primera pregunta se puede resolver mediante el despliegue del contrato PreimageOracle. Para la segunda pregunta, el equipo de OP ha escrito la máquina virtual MIPS en Solidity, implementando algunas funciones del cliente del nodo.
Debido a la imposibilidad de ejecutar todas las transacciones de forma completa en la cadena, OP diseñó un sistema interactivo de prueba de fraude, que descompone el proceso de manejo de transacciones en un procesamiento ordenado de códigos de operación MIPS. Después de que se ejecute cada código de operación, el hash del estado de la máquina virtual cambiará, y estos registros se resumirán en un árbol de Merkle.
En el proceso de prueba de fraude, es necesario determinar qué código de operación MIPS causó el problema en el hash del estado de la máquina virtual, luego reproducir el estado de ese momento en la cadena, ejecutar el código de operación y comparar los resultados. Esto requiere cargar parte de la información del estado de la máquina virtual MIPS en la cadena.
Prueba de fraude interactiva
El equipo de OP desarrolló el protocolo Fault Dispute Game(FDG), que incluye dos roles: el retador y el defensor. Los participantes deben construir localmente un GameTree, que consta de dos capas de árboles Merkle. Las hojas de la primera capa del árbol son los OutputRoot de diferentes Bloquears, y las hojas de la segunda capa son el hash del estado de la máquina virtual MIPS.
Ambas partes interactuaron varias veces en la cadena, finalmente localizando el opcode MIPS en disputa. El mecanismo central de la prueba de fraude interactiva incluye:
Prueba de fraude ZK
La interacción compleja de la prueba de fraude tradicional presenta los siguientes problemas:
Para resolver estos problemas, Optimism propuso el concepto de prueba de fraude ZK. La clave es que, cuando ocurre un desafío, el secuenciador de Rollup proporciona la prueba ZK de la transacción desafiada, que es verificada por un contrato inteligente de Ethereum. Si la verificación es exitosa, indica que el procesamiento de la transacción es correcto.
En comparación con la prueba de fraude interactiva, la Prueba de Fraude ZK simplifica múltiples interacciones a una sola generación y verificación de prueba ZK, ahorrando tiempo y costos. En comparación con ZK Rollup, el OP Rollup basado en la Prueba de Fraude ZK genera prueba ZK solo cuando es desafiado, reduciendo los costos de computación.
Esta idea también fue adoptada por BitVM2. Proyectos que utilizan BitVM2, como Bitlayer y Goat Network, implementan programas de verificación de ZK Proof a través de scripts de Bitcoin, y han reducido significativamente la escala de los programas que necesitan estar en la cadena.