Con todos afirmando que obtienen tiempos de bloque más bajos en L2, pensé que ya era hora de describir qué está sucediendo. Específicamente, veamos qué son los bloques L2, cómo difieren de los bloques L1 y por qué realmente no deberíamos preocuparnos tanto por los tiempos de bloque L2, incluso si son una métrica de ingeniería interesante.
En el pasado, cuando el término blockchain realmente significaba algo (alrededor de 2009), se introdujo el concepto de bloques porque necesitábamos una unidad para un grupo de transacciones enviadas al consenso.
Por ejemplo, en Bitcoin, cada productor de bloques intenta encontrar un arreglo de transacciones que cumpla con los requisitos de PoW, luego transmite este bloque a la red. Otros nodos verificarán que este bloque realmente cumple con los requisitos de PoW. En Ethereum, que ahora es PoS y basado en cuentas, los productores de bloques calculan un hash del estado de la cadena de bloques después de la ejecución de cada bloque (el compromiso del estado), y los validadores recalculan ese valor para una fácil validación del bloque. El proceso general siempre es el mismo:
En las cadenas de capa-1, los bloques importan: verificas la integridad de la cadena a nivel de bloques, gestionas las bifurcaciones a nivel de bloques, etc.
TL;DR: los bloques son un elemento esencial del consenso.
L2s existen porque el consenso es lento y la descentralización requiere el soporte de computadoras lentas y redes. El enfoque L2 descarga el procesamiento de transacciones a la máquina más rápida disponible, luego publica un resumen de ejecución verificable en L1 para el consenso. En pocas palabras, la mayoría de los L2 hoy son sistemas centralizados que fingen ser blockchains. Y eso está perfectamente bien.
Aquí es donde los tiempos de bloque se vuelven confusos. Los L2 continúan construyendo bloques principalmente para la compatibilidad de software L1, pero es en gran parte artificial. Al publicar resúmenes en L1, los L2 generalmente agrupan varios bloques juntos para reducir costos. Si bien los compromisos de estado son necesarios ocasionalmente para pruebas de fraude/validez, no son necesarios para cada bloque. Por lo tanto, los bloques de L2 son esencialmente inútiles.
Cuando alguien afirma que tiene bloques L2 rápidos, simplemente han ajustado un valor de configuración del sistema para disminuir los tiempos de bloque. Aunque todavía necesitan procesar un número significativo de transacciones por bloque, eso es todo.
Como usuario, te importa una cosa en cuanto al tiempo: el tiempo de ida y vuelta. En otras palabras, ¿cuánto tiempo tomará para que mi transacción llegue al secuenciador L2, se ejecute y el resultado sea visible en el nodo RPC que estoy utilizando? Centrémonos en esa última parte: ¿cuánto tiempo se tarda en comunicar la ejecución de una transacción a los RPCs?
Las blockchains más lentas suelen esperar al final de un bloque antes de enviarlo a los pares. Solana comenzó la idea de que podías transmitir bloques en lugar de enviar simplemente transacciones a los demás validadores tan pronto como las procesaras. Solana divide estas en entradas (grupos de máximo 64 transacciones), que a su vez se dividen en fragmentos para transferir en la red. Tenemos unartículo en profundidaden este tema si estás curioso. Estos se transmiten continuamente desde el nodo líder a otros, lo que significa que obtienes información sobre la ejecución de tus transacciones antes de que el bloque haya terminado.
L2s ahora han decidido reutilizar este mecanismo: Base, con Flashblocks, pasa de un tiempo de bloque de 2 segundos a subbloques más pequeños de 200 ms. MegaETH tiene un concepto de "mini-bloques", producidos cada 15 ms en su testnet (la mayor parte del tiempo). Eclipse utiliza el sistema de entrada/desglose de Solana. De esta forma, los usuarios tienen que esperar menos tiempo para que se ejecuten sus transacciones. ¡Eso es bastante bueno para la experiencia de usuario!
Pero seamos claros: la verdadera característica aquí es "intervalos reducidos de comunicación en toda la red." No tiene nada que ver con algunos bloques siendo inherentemente mejores que otros. Simplemente estamos dividiendo los bloques en piezas más pequeñas y transmitiéndolos en paralelo con la ejecución. Ya sea que llames a estas piezas bloques, mini-bloques o fragmentos, no importa. El objetivo final es una comunicación más rápida, no mejores bloques.
Con todos afirmando que obtienen tiempos de bloque más bajos en L2, pensé que ya era hora de describir qué está sucediendo. Específicamente, veamos qué son los bloques L2, cómo difieren de los bloques L1 y por qué realmente no deberíamos preocuparnos tanto por los tiempos de bloque L2, incluso si son una métrica de ingeniería interesante.
En el pasado, cuando el término blockchain realmente significaba algo (alrededor de 2009), se introdujo el concepto de bloques porque necesitábamos una unidad para un grupo de transacciones enviadas al consenso.
Por ejemplo, en Bitcoin, cada productor de bloques intenta encontrar un arreglo de transacciones que cumpla con los requisitos de PoW, luego transmite este bloque a la red. Otros nodos verificarán que este bloque realmente cumple con los requisitos de PoW. En Ethereum, que ahora es PoS y basado en cuentas, los productores de bloques calculan un hash del estado de la cadena de bloques después de la ejecución de cada bloque (el compromiso del estado), y los validadores recalculan ese valor para una fácil validación del bloque. El proceso general siempre es el mismo:
En las cadenas de capa-1, los bloques importan: verificas la integridad de la cadena a nivel de bloques, gestionas las bifurcaciones a nivel de bloques, etc.
TL;DR: los bloques son un elemento esencial del consenso.
L2s existen porque el consenso es lento y la descentralización requiere el soporte de computadoras lentas y redes. El enfoque L2 descarga el procesamiento de transacciones a la máquina más rápida disponible, luego publica un resumen de ejecución verificable en L1 para el consenso. En pocas palabras, la mayoría de los L2 hoy son sistemas centralizados que fingen ser blockchains. Y eso está perfectamente bien.
Aquí es donde los tiempos de bloque se vuelven confusos. Los L2 continúan construyendo bloques principalmente para la compatibilidad de software L1, pero es en gran parte artificial. Al publicar resúmenes en L1, los L2 generalmente agrupan varios bloques juntos para reducir costos. Si bien los compromisos de estado son necesarios ocasionalmente para pruebas de fraude/validez, no son necesarios para cada bloque. Por lo tanto, los bloques de L2 son esencialmente inútiles.
Cuando alguien afirma que tiene bloques L2 rápidos, simplemente han ajustado un valor de configuración del sistema para disminuir los tiempos de bloque. Aunque todavía necesitan procesar un número significativo de transacciones por bloque, eso es todo.
Como usuario, te importa una cosa en cuanto al tiempo: el tiempo de ida y vuelta. En otras palabras, ¿cuánto tiempo tomará para que mi transacción llegue al secuenciador L2, se ejecute y el resultado sea visible en el nodo RPC que estoy utilizando? Centrémonos en esa última parte: ¿cuánto tiempo se tarda en comunicar la ejecución de una transacción a los RPCs?
Las blockchains más lentas suelen esperar al final de un bloque antes de enviarlo a los pares. Solana comenzó la idea de que podías transmitir bloques en lugar de enviar simplemente transacciones a los demás validadores tan pronto como las procesaras. Solana divide estas en entradas (grupos de máximo 64 transacciones), que a su vez se dividen en fragmentos para transferir en la red. Tenemos unartículo en profundidaden este tema si estás curioso. Estos se transmiten continuamente desde el nodo líder a otros, lo que significa que obtienes información sobre la ejecución de tus transacciones antes de que el bloque haya terminado.
L2s ahora han decidido reutilizar este mecanismo: Base, con Flashblocks, pasa de un tiempo de bloque de 2 segundos a subbloques más pequeños de 200 ms. MegaETH tiene un concepto de "mini-bloques", producidos cada 15 ms en su testnet (la mayor parte del tiempo). Eclipse utiliza el sistema de entrada/desglose de Solana. De esta forma, los usuarios tienen que esperar menos tiempo para que se ejecuten sus transacciones. ¡Eso es bastante bueno para la experiencia de usuario!
Pero seamos claros: la verdadera característica aquí es "intervalos reducidos de comunicación en toda la red." No tiene nada que ver con algunos bloques siendo inherentemente mejores que otros. Simplemente estamos dividiendo los bloques en piezas más pequeñas y transmitiéndolos en paralelo con la ejecución. Ya sea que llames a estas piezas bloques, mini-bloques o fragmentos, no importa. El objetivo final es una comunicación más rápida, no mejores bloques.