Arquitectura de Optimism
Optimism es un protocolo de rollup optimista, equivalente a EVM, diseñado para escalar Ethereum. Escalar Ethereum significa aumentar el número de transacciones útiles que la red de Ethereum puede procesar. Rollup optimista es una técnica de escalabilidad de capa 2 que aumenta la capacidad de cómputo y almacenamiento de Ethereum sin sacrificar seguridad ni descentralización. Equivalencia EVM es el cumplimiento completo de la función de transición de estado descrita en el libro amarillo de Ethereum, la definición formal del protocolo.
El rollup optimista funciona agrupando múltiples transacciones en una sola transacción, que luego es verificada por un contrato inteligente en la red de Ethereum. Este proceso se denomina "rolling up" (agrupación) porque las transacciones individuales se combinan en una transacción más grande que se envía a la red de Ethereum. El término "optimista" se refiere al hecho de que el sistema asume que las transacciones son válidas a menos que se demuestre lo contrario, lo que permite un procesamiento de transacciones más rápido y eficiente.
Arquitectura General
op-node + op-geth
El nodo rollup puede ejecutarse en modo validador o secuenciador:
- validador (también conocido como verificador): Similar a ejecutar un nodo de Ethereum, simula transacciones L2 localmente, sin limitación de velocidad. También permite al validador verificar el trabajo del secuenciador, volviendo a derivar las raíces de salida y comparándolas con las enviadas por el secuenciador. En caso de una discrepancia, el validador puede realizar una prueba de falla.
- secuenciador: El secuenciador es un actor privilegiado que recibe transacciones L2 de usuarios L2, crea bloques L2 en consecuencia y luego los envía al proveedor de disponibilidad de datos (a través de un batcher). También envía raíces de salida a L1. Por ahora, solo hay un secuenciador en toda la pila, y es aquí donde la gente critica que la pila OP no está descentralizada.
op-batcher
El remitente de lotes, también conocido como batcher, es la entidad que envía los datos del secuenciador L2 a L1, para hacerlos disponibles para los verificadores.
op-proposer
El proponente genera y envía puntos de control de salida L2 al contrato oráculo de salida L2 en Ethereum. Después de que ha pasado el período de finalización, estos datos permiten los retiros.
Tanto el batcher como el proponente envían estados a L1. ¿Por qué están separados?
El batcher recopila y envía datos de transacciones a L1 en un lote, mientras que el proponente envía los compromisos (raíces de salida) al estado de L2, lo que finaliza la vista de los estados de las cuentas L2. Están desacoplados para que puedan trabajar en paralelo para mayor eficiencia.
contracts-bedrock
Varios contratos para que L2 interactúe con L1:
- OptimismPortal: Un flujo de transacciones L2 que se originaron como llamadas a contratos inteligentes en el estado L1.
- Bandeja de entrada de lotes: Una dirección L1 a la que el remitente de lotes envía lotes de transacciones.
- Oráculo de salida L2: Un contrato inteligente que almacena raíces de salida L2 para su uso en retiros y pruebas de falla.
¿Cómo depositar?
¿Cómo retirar?
Comentarios sobre la Documentación de Optimism
Comprender la pila OP puede ser un desafío debido a varios factores. Uno de ellos son los numerosos componentes a los que se hace referencia varias veces con nombres ligeramente diferentes en el código y la documentación. Por ejemplo, los términos "op-batcher" y "batch-submitter" / "verifiers" y "validators" pueden usarse indistintamente, lo que lleva a confusión y dificultad para comprender la función exacta de cada componente.
Otro desafío para comprender la pila OP es la arquitectura en evolución, que puede resultar en que algunos elementos de diseño queden obsoletos con el tiempo. Desafortunadamente, la documentación no siempre se actualiza para reflejar estos cambios. Esto puede generar más confusión y dificultad para comprender el sistema, ya que los usuarios pueden estar trabajando con información desactualizada o inexacta.
Para superar estos desafíos, es importante revisar cuidadosamente toda la documentación disponible, mantener los conceptos de forma consistente en todos los lugares y mantenerse al día con cualquier cambio o actualización de la pila OP. Esto puede requerir investigación adicional y colaboración con otros usuarios o desarrolladores, pero es esencial para comprender y utilizar plenamente este complejo sistema.