CANNON CANNON CANNON: Presentamos Cannon

O: Gana $50k ayudándonos a hackear geohot

Hoy, estamos muy emocionados de presentar formalmente Cannon al mundo. Cannon es la fault proof de la siguiente generación de Optimism. Su implementación inicial por geohot se convirtió en la primera implementación pública a fault proof que puede ejecutar una L2 EVM-equivalent. Ah, y también habilita los costos mínimos teóricos de gas de calldata.

Desde el día 1, Cannon se ha creado pensando en Optimism: Bedrock - nuestro próximo lanzamiento importante -. Cannon se convertirá en una de las bases de Optimism de los siguientes años.

¡Hoy, estamos dando el siguiente paso para hacer realidad la promesa de Cannon, al lanzar un bug bounty con hasta $ 250k en premios! Los detalles se pueden encontrar en la parte inferior.

Pero, ¿qué es exactamente Cannon?…

Cannon…

…es EVM equivalente

Cannon (github) es la primera implementación de fault proof EVM-equivalent del mundo. Cannon nos permite ejecutar EVM inalterado en L2 sin sacrificios.

… reutiliza el geth de EVM

Cannon adopta un nuevo enfoque para las pruebas de fallas en comparación con los paquetes acumulativos existentes, logrando una verdadera equivalencia de EVM: en lugar de volver a implementar EVM, aprovecha una implementación de EVM existente (¡geth!).

En particular, minigeth , es un subset mínimamente modificado de go-ethereum (sin JSON-RPC, sin proof-of-work), se compila en MIPS , una Reduced Instruction Set Computer ( RISC ). RISC está diseñado para ser lo más simple posible. Si sabe algo sobre Optimism, sabe que nosotros ❤️ simplicidad: ¡la máquina virtual MIPS se implementa on-chain en menos de 400 líneas ! 😍

… usa magia stateless (sin estado)

A diferencia de nuestro diseño anterior de fault proof, que volvía a ejecutar el EVM en una transacción completa en L1, Cannon solo necesita ejecutar una única instrucción MIPS minigeth on-chain. Este es un enfoque similar a los proyectos existentes como Truebit, Arbitrum y Cartesi, pero presenta una nueva característica clave.

Minigeth reemplaza la base de datos de estado de geth con una nueva  primitiva llamada preimage oracle (oráculo de preimagen) . El oráculo de preimagen se puede consultar con un hash de 32 bytes y devolverá la preimagen para ese hash a la memoria de la máquina. Esto puede parecer contradictorio, pero funciona. Y es increíblemente poderoso.

Esta simple abstracción permite que el programa de fault proof acceda a cualquier cosa en el estado de la L1 o L2 , con una sobrecarga on-chain independiente del tamaño de ese estado. Otras implementaciones de L2, como AVM de Arbitrum, requirieron implementaciones desde cero la administración del estado para lograr esto. Pero, dado que la base de datos utilizada por geth ya asigna hashes a sus preimágenes, el oráculo de preimagen logra esto sin sacrificar la equivalencia de EVM y con cambios mínimos en el código.

… minimiza los costos de transacción

Todos los rollups existentes en la actualidad envían datos de transacciones a un contrato inteligente, y un hash de los datos de calldata se almacena en el estado. Esos gastos generales imponen costos que luego deben trasladarse a los usuarios.

Esto es necesario porque las transacciones deben ser accesibles para disputar contratos durante una fault proof. Sin embargo, el oráculo de preimagen nos brinda una nueva forma de acceder a los datos de transacciones: el header del bloque L1 en sí.

Debido a que no se requiere el procesamiento on-chain de las transacciones, se pueden publicar como calldata en una account en L1 sin ningún código .

Esto produce el costo de gas L1 lo más pequeño posible para una transacción L2. También se combina con otras técnicas de ahorro, como la calldata compression y las transacciones blob , que juntas transmiten ahorros masivos a los usuarios.

… está llegando a producción

(¡una vez que todos lo rompan!)

Todavía queda un largo camino por recorrer antes de que podamos implementar Cannon en producción. Desempeñará un papel fundamental en la seguridad de Optimism, y merece una gran cantidad de escrutinio y endurecimiento.

Hoy, estamos dando el siguiente paso para asegurar Cannon: ¡estamos lanzando un bug bounty!

¡Ven a Romper el Cannon!

Ahora tenemos un bug bounty abierto en ImmuneFi. Los términos son simples: si puede romper Cannon, obtendrá $50k. ¡Sin mencionar la influencia que obtendrás por hackear a un hacker famoso!

Para comenzar, diríjase directamente al depósito de Cannon o consulte los detalles en Immunefi . También recomendamos consultar la descripción general de alto nivel de Cannon , así como la descripción detallada .

Gracias

Nos gustaría agradecer enormemente a geohot por ser pionero en la implementación inicial de Cannon y por tantas conversaciones a lo largo del camino. ¡También nos gustaría agradecer a Immunefi por organizar el bug bounty para nosotros!

Como siempre, si está interesado en unirse a un talentoso grupo de optimistas dedicados a construir un futuro escalable y sostenible para Ethereum, ¡nos encantaría saber de usted! Echa un vistazo a todos los puestos vacantes.

Notas

[1] Cuando comenzamos a compartir el cannon, descubrimos que Cartesi había propuesto previamente un "dehashing device" como un área de trabajo futuro. Sin embargo, esto se enmarcó como una herramienta para leer datos externos de la blockchain: lo que es único acerca de nuestro enfoque al aplicar este método al estado L2 en sí mismo y las ventajas para la equivalencia EVM que brinda.

[2] Como se mencionó en la nota anterior, el "deshasher" de Cartesi se propuso como trabajo futuro para brindar una forma de leer otras blockchains. El documento técnico de Arbitrum también propuso mapear bloques L1 en tuplas AVM como trabajo futuro, y lightclients también propuso otra forma de implementar esto. Nuestra contribución es lograr los costos de datos L1 óptimos y los costos de acceso de estado L2, con una abstracción unificada que preserva la equivalencia EVM.

Subscribe to Optimism Español
Receive the latest updates directly to your inbox.
Mint this entry as an NFT to add it to your collection.
Verification
This entry has been permanently stored onchain and signed by its creator.