Al principio, Ethereum tenía dos estrategias de escalado en su hoja de ruta. Uno (por ejemplo, ver este primer documentodesde 2015) fue “fragmentación”: en lugar de verificar y almacenar todas las transacciones en la cadena, cada nodo solo necesitaría verificar y almacenar una pequeña fracción de las transacciones. Así es como funciona cualquier otra red peer-to-peer (por ejemplo, BitTorrent), por lo que seguramente podríamos hacer que las blockchains funcionen de la misma manera. Otro fue los protocolos de capa 2: redes que se ubicarían encima de Ethereum de una manera que les permita beneficiarse plenamente de su seguridad, al tiempo que mantienen la mayor parte de los datos y cálculos fuera de la cadena principal. Los “protocolos de capa 2” significaban canales de estadoen 2015, Plasmaen 2017, y luegorollupsen 2019. Rollups son más poderosos que los canales de estado o Plasma, pero requieren una gran cantidad de ancho de banda de datos en cadena. Afortunadamente, para 2019 la investigación de shardings había resuelto el problema de verificar la "disponibilidad de datos" a escala. Como resultado, los dos caminos convergieron, y obtuvimos el hoja de ruta centrada en rollupque sigue siendo la estrategia de escalado de Ethereum hoy.
La oleada, edición de la hoja de ruta de 2023.
La hoja de ruta centrada en rollups propone una simple división del trabajo: Ethereum L1 se enfoca en ser una capa base sólida y descentralizada, mientras que L2 se encarga de ayudar a escalar el ecosistema. Este es un patrón que se repite en todas partes en la sociedad: el sistema judicial (L1) no está ahí para ser ultra rápido y eficiente, está ahí para proteger contratos y derechos de propiedad, y corresponde a los emprendedores (L2) construir sobre esosólido base capay llevar a la humanidad a Marte (metafórica y literalmente).
Este año, la hoja de ruta centrada en rollup ha tenido importantes éxitos: el ancho de banda de datos de Ethereum L1 ha aumentado considerablemente con blobs EIP-4844, y ahora hay múltiples rollups de EVM en la etapa 1. Un muy implementación heterogénea y pluralista de sharding, donde cada L2 actúa como un “fragmento” con sus propias reglas y lógica interna, es ahora una realidad. Pero como hemos visto, tomar este camino tiene sus propios desafíos únicos. Y así que ahora nuestra tarea es llevar el mapa de ruta centrado en rollup a su finalización, y resolver estos problemas, mientras se preserva la solidez y descentralización que hacen especial a Ethereum L1.
El trilema de escalabilidad era una idea introducido en 2017, que argumentó que hay una tensión entre tres propiedades de una cadena de bloques: descentralización (más específicamente: bajo costo para ejecutar un nodo), escalabilidad (más específicamente: alto número de transacciones procesadas) y seguridad (más específicamente: un atacante necesitando corromper una gran parte de los nodos en toda la red para hacer que falle incluso una sola transacción).
Es importante destacar que el trilema no es un teorema, y la publicación que introduce el trilema no venía acompañada de una prueba matemática. Sin embargo, sí proporcionó un argumento matemático heurístico: si un nodo amigable con la descentralización (por ejemplo, una computadora portátil de consumidor) puede verificar N transacciones por segundo, y tienes una cadena que procesa k*N transacciones por segundo, entonces o bien (i) cada transacción solo es vista por 1/k de los nodos, lo que implica que un atacante solo necesita corromper unos pocos nodos para hacer pasar una transacción incorrecta, o (ii) tus nodos van a ser potentes y tu cadena no será descentralizada. El propósito de la publicación nunca fue demostrar que romper el trilema es imposible; más bien, fue mostrar que romper el trilema es difícil, requiere de alguna manera pensar fuera de la caja que el argumento implica.
Durante muchos años, ha sido común que algunas cadenas de alto rendimiento afirmen que resuelven el trilema sin hacer nada inteligente a nivel de arquitectura fundamental, típicamente utilizando trucos de ingeniería de software para optimizar el nodo. Esto siempre es engañoso, y ejecutar un nodo en dichas cadenas siempre termina siendo mucho más difícil que en Ethereum.Esta publicaciónentra en algunas de las muchas sutilezas de por qué esto es así (y, por lo tanto, por qué la ingeniería de software del cliente L1 por sí sola no puede escalar Ethereum en sí mismo).
Sin embargo, la combinación de muestreo de disponibilidad de datos y SNARKs resuelve el trilema: permite a un cliente verificar que cierta cantidad de datos está disponible y que se llevaron a cabo correctamente cierta cantidad de pasos de cálculo, mientras descarga solo una pequeña porción de esos datos y ejecuta una cantidad mucho menor de cálculos. Los SNARKs no requieren confianza. El muestreo de disponibilidad de datos tiene un enfoque sutil modelo de confianza few-of-N, pero conserva la propiedad fundamental que tienen las cadenas no escalables, que es que ni siquiera un ataque del 51% puede obligar a que los bloques malos sean aceptados por la red.
Otra forma de resolver el trilema es a través de arquitecturas de Plasma, que utilizan técnicas ingeniosas para trasladar la responsabilidad de vigilar la disponibilidad de datos al usuario de manera compatible con los incentivos. En 2017-2019, cuando todo lo que teníamos para escalar la computación eran pruebas de fraude, Plasma estaba muy limitado en lo que podía hacer de forma segura, pero la incorporación de SNARKs hace que las arquitecturas de Plasma mucho más viablepara una gama más amplia de casos de uso que antes.
A partir del 13 de marzo de 2024, cuando el Actualización de DencunCuando se puso en marcha, la cadena de bloques de Ethereum tiene tres "blobs" de ~125 kB por ranura de 12 segundos, o ~375 kB por ranura de ancho de banda de disponibilidad de datos. Suponiendo que los datos de transacción se publican en la cadena directamente, una transferencia ERC20 es de ~180 bytes, por lo que el TPS máximo de rollups en Ethereum es:
375000 / 12 / 180 = 173.6 TPS
Si agregamos los calldatas de Ethereum (máximo teórico: 30 millones de gas por ranura / 16 gas por byte = 1,875,000 bytes por ranura), esto se convierte en 607 TPS. Con PeerDAS, el plan es aumentar el objetivo de recuento de blobs a 8-16, lo que nos daría 463-926 TPS en calldata.
Este es un gran aumento sobre el Ethereum L1, pero no es suficiente. Queremos mucha más escalabilidad. Nuestro objetivo a medio plazo es de 16 MB por ranura, lo que, combinado con mejoras en la compresión de datos de rollup, nos daría ~58,000 TPS.
PeerDAS es una implementación relativamente simple de "muestreo 1D". Cada blob en Ethereum es un polinomio de grado 4096 sobre un campo primo de 253 bits. Transmitimos "partes" del polinomio, donde cada parte consta de 16 evaluaciones en 16 coordenadas adyacentes tomadas de un conjunto total de 8192 coordenadas. Cualquier conjunto de 4096 de las 8192 evaluaciones (con los parámetros propuestos actuales: cualquier conjunto de 64 de las 128 muestras posibles) puede recuperar el blob.
PeerDAS funciona haciendo que cada cliente escuche en un pequeño número de subredes, donde la subred i-ésima transmite la i-ésima muestra de cualquier blob, y además solicita blobs en otras subredes que necesite preguntando a sus pares en la red p2p global (que estarían escuchando diferentes subredes). Una versión más conservadora, SubnetDAS, utiliza solo el mecanismo de subred, sin la capa adicional de preguntar a los pares. Una propuesta actual es que los nodos que participan en la prueba de participación utilicen SubnetDAS, y que otros nodos (es decir, "clientes") utilicen PeerDAS.
Teóricamente, podemos escalar el muestreo 1D bastante lejos: si aumentamos el recuento máximo de blobs a 256 (por lo tanto, el objetivo a 128), entonces llegaríamos a nuestro objetivo de 16 MB mientras que el muestreo de disponibilidad de datos solo costaría a cada nodo 16 muestras128 blobs512 bytes por muestra por fragmento = 1 MB de ancho de banda de datos por ranura. Esto está justo dentro de nuestro alcance de tolerancia: es factible, pero significaría que los clientes con restricciones de ancho de banda no podrían muestrear. Podríamos optimizar esto en cierta medida disminuyendo el recuento de fragmentos y aumentando el tamaño de los fragmentos, pero esto haría que la reconstrucción fuera más costosa.
Y así, en última instancia, queremos ir más allá y hacerMuestreo 2D, que funciona mediante muestreo aleatorio no solo dentro de los bloques, sino también entre los bloques. Las propiedades lineales de las confirmaciones KZG se utilizan para “extender” el conjunto de bloques en un bloque con una lista de nuevos “bloques virtuales” que codifican redundante la misma información.
Muestreo 2D. Fuente: a16z crypto
Es crucial destacar que calcular la extensión de los compromisos no requiere tener los bloques, por lo que el esquema es fundamentalmente amigable para la construcción de bloques distribuidos. El nodo que realmente construye el bloque solo necesitaría tener los compromisos de bloques KZG y puede confiar en DAS para verificar la disponibilidad de los bloques. 1D DAS también es inherentemente amigable para la construcción de bloques distribuidos.
El siguiente paso inmediato es terminar la implementación y el despliegue de PeerDAS. A partir de ahí, es una tarea progresiva seguir aumentando el recuento de blobs en PeerDAS mientras se vigila cuidadosamente la red y se mejora el software para garantizar la seguridad. Al mismo tiempo, queremos más trabajos académicos para formalizar PeerDAS y otras versiones de DAS y sus interacciones con problemas como la seguridad de la regla de elección de bifurcación.
Más adelante en el futuro, necesitamos mucho más trabajo para descubrir la versión ideal de 2D DAS y demostrar sus propiedades de seguridad. También queremos eventualmente migrar lejos de KZG a una alternativa resistente a la computación cuántica y libre de configuración confiable. Actualmente, no conocemos candidatos que sean amigables para la construcción de bloques distribuidos. Incluso la costosa técnica de "fuerza bruta" de usar STARKs recursivos para generar pruebas de validez para la reconstrucción de filas y columnas no es suficiente, porque técnicamente un STARK tiene un tamaño de O(log(n) * log(log(n)) hashes.STIR) en la práctica, un STARK es casi tan grande como un blob completo.
Los caminos realistas que veo a largo plazo son:
Podemos ver esto a lo largo de un espectro de compensación:
Tenga en cuenta que esta opción existe incluso si decidimos escalar la ejecución en L1 directamente. Esto se debe a que si L1 va a procesar muchas TPS, los bloques de L1 serán muy grandes y los clientes querrán una forma eficiente de verificar que son correctos, por lo que tendríamos que utilizar la misma tecnología que impulsa los rollups (ZK-EVM y DAS) en L1.
La necesidad de 2D DAS se reduce en cierta medida, o al menos se retrasa, si se implementa la compresión de datos (ver abajo), y se reduce aún más si Plasma se usa ampliamente. DAS también plantea un desafío a los protocolos y mecanismos de construcción de bloques distribuidos: aunque DAS es teóricamente amigable para la reconstrucción distribuida, esto necesita combinarse en la práctica conlista de inclusiónpropuestas y su mecánica de selección de bifurcación circundante.
Cada transacción en un rollup ocupa una cantidad significativa de espacio de datos en la cadena: una transferencia ERC20 ocupa alrededor de 180 bytes. Incluso con un muestreo ideal de disponibilidad de datos, esto pone un límite a la escalabilidad de los protocolos de capa 2. Con 16 MB por ranura, obtenemos:
16000000 / 12 / 180 = 7407 TPS
¿Y si además de abordar el numerador, también podemos abordar el denominador y hacer que cada transacción en un rollup ocupe menos bytes en la cadena?
La mejor explicación en mi opinión es este diagramahace dos años:
Las ganancias más simples son simplemente compresión de bytes cero: reemplazando cada secuencia larga de bytes cero con dos bytes que representan cuántos bytes cero hay. Para ir más allá, aprovechamos las propiedades específicas de las transacciones:
Lo principal que queda por hacer es implementar realmente los esquemas anteriores. Los principales compromisos son:
La adopción de ERC-4337, y eventualmente la consagración de partes de ella en L2 EVMs, puede acelerar en gran medida la implementación de técnicas de agregación. La consagración de partes de ERC-4337 en L1 puede acelerar su implementación en L2s.
Incluso con blobs de 16 MB y compresión de datos, 58.000 TPS no son necesariamente suficientes para hacerse cargo por completo de los pagos de los consumidores, las redes sociales descentralizadas u otros sectores de gran ancho de banda, y esto se vuelve especialmente cierto si comenzamos a tener en cuenta la privacidad, que podría reducir la escalabilidad entre 3 y 8 veces. Para aplicaciones de alto volumen y bajo valor, una opción hoy en día es un validium, que mantiene los datos fuera de la cadena y tiene un interesante modelo de seguridad donde el operador no puede robar los fondos de los usuarios, pero pueden desaparecer y congelar temporal o permanentemente todos los fondos de los usuarios. Pero podemos hacerlo mejor.
Plasma es una solución de escalado que implica que un operador publique bloques fuera de la cadena, y coloque las raíces de Merkle de esos bloques en la cadena (a diferencia de los rollups, donde el bloque completo se coloca en la cadena). Para cada bloque, el operador envía a cada usuario una rama de Merkle que prueba lo que sucedió, o no sucedió, con los activos de ese usuario. Los usuarios pueden retirar sus activos proporcionando una rama de Merkle. Es importante destacar que esta rama no tiene que estar enraizada en el estado más reciente, por esta razón, incluso si la disponibilidad de datos falla, el usuario aún puede recuperar sus activos retirando el estado más reciente que tienen disponible. Si un usuario envía una rama inválida (por ejemplo, sale de un activo que ya envió a otra persona, o el mismo operador crea un activo de la nada), un mecanismo de desafío en cadena puede decidir a quién pertenece legítimamente el activo.
Un diagrama de una cadena de Plasma Cash. Las transacciones que gastan la moneda i se colocan en la posición i-ésima en el árbol. En este ejemplo, asumiendo que todos los árboles anteriores son válidos, sabemos que Eve actualmente posee la moneda 1, David posee la moneda 4 y George posee la moneda 6.
Las primeras versiones de Plasma solo podían manejar el caso de uso de pagos y no podían generalizarse de manera efectiva. Sin embargo, si requerimos que cada raíz sea verificada con un SNARK, Plasma se vuelve mucho más poderoso. Cada juego de desafío puede simplificarse significativamente, porque eliminamos la mayoría de los posibles caminos para que el operador haga trampa. También se abren nuevos caminos para permitir que las técnicas de Plasma se extiendan a una clase mucho más general de activos. Finalmente, en el caso de que el operador no haga trampa, los usuarios pueden retirar sus fondos al instante, sin necesidad de esperar un período de desafío de una semana.
Una forma (no la única forma) de crear una cadena de plasma de EVM: utilizar un ZK-SNARK para construir un árbol UTXO paralelo que refleje los cambios de saldo realizados por el EVM, y defina un mapeo único de lo que es “la misma moneda” en diferentes momentos de la historia. Una construcción de Plasma puede entonces construirse sobre eso.
Una idea clave es que el sistema Plasma no necesita ser perfecto. Incluso si solo puedes proteger un subconjunto de activos (por ejemplo, incluso solo monedas que no se han movido en la última semana), ya has mejorado en gran medida el estado actual del EVM ultramoderno, que es un validium válido.
Otra clase de construcciones son los plasmas híbridos/rollups, como Intmax. Estas construcciones colocan una cantidad muy pequeña de datos por usuario en la cadena (por ejemplo, 5 bytes), y al hacerlo, obtienen propiedades que se encuentran en algún punto intermedio entre plasma y rollups: en el caso de Intmax, se obtiene un nivel muy alto de escalabilidad y privacidad, aunque incluso en el mundo de 16 MB, la capacidad está teóricamente limitada a aproximadamente 16,000,000 / 12 / 5 = 266,667 TPS.
La principal tarea pendiente es llevar los sistemas de plasma a la producción. Como se mencionó anteriormente, "plasma vs validium" no es binario: cualquier validium puede mejorar sus propiedades de seguridad al menos un poco al agregar características de plasma en el mecanismo de salida. La parte de investigación consiste en obtener las propiedades óptimas (en términos de requisitos de confianza, el costo del gas L1 en el peor de los casos y la vulnerabilidad a DoS) para una EVM, así como construcciones alternativas específicas de la aplicación. Además, la mayor complejidad conceptual de Plasma en relación con los rollups debe abordarse directamente, tanto a través de la investigación como a través de la construcción de mejores marcos generalizados.
El principal compromiso en el uso de los diseños de Plasma es que dependen más de los operadores y son más difíciles de hacer “basadoAunque los diseños híbridos de plasma/rollup a menudo pueden evitar esta debilidad.
Cuanto más efectivas sean las soluciones de Plasma, menos presión habrá para que el L1 tenga una funcionalidad de disponibilidad de datos de alto rendimiento. Mover la actividad al L2 también reduce la presión de MEV en el L1.
Hoy en día, la mayoría de los rollups aún no son realmente descentralizados; hay un consejo de seguridad que tiene la capacidad de anular el comportamiento del (optimista o de validez)sistema de pruebaEn algunos casos, el sistema de prueba ni siquiera está en funcionamiento, o si lo está, solo tiene una funcionalidad "asesora". Los más avanzados son (i) algunos rollups específicos de aplicaciones, como Fuel, que son sin confianza, y (ii) en el momento de esta escritura, Optimism y Arbitrum, dos rollups completos de EVM que han logrado un hito de "parcial sin confianza" conocido como "etapa 1". La razón por la que los rollups no han avanzado más es la preocupación por los errores en el código. Necesitamos rollups sin confianza, y por lo tanto, debemos abordar este problema de frente.
Primero, vamos a repasar el sistema de 'etapas', originalmente introducido en esta publicación. Hay más requisitos detallados, pero el resumen es:
El objetivo es llegar a la Etapa 2. El principal desafío para llegar a la etapa 2 es obtener suficiente confianza en que el sistema de prueba es realmente lo suficientemente confiable. Hay dos formas principales de hacer esto:
Diagrama estilizado de un multi-demostrador, combinando un sistema de prueba optimista, un sistema de prueba de validez y un consejo de seguridad.
Para la verificación formal, mucho. Necesitamos crear una versión formalmente verificada de un probador de SNARK completo de un EVM. Este es un proyecto increíblemente complejo, aunque es uno que Ya hemos empezado. Hay un truco que simplifica significativamente la tarea: podemos hacer un probador SNARK verificado formalmente de una VM mínima, por ejemplo. RISC-VoCairo, y luego escribir una implementación del EVM en esa VM minimalista (y demostrar formalmente su equivalencia con alguna otra especificación del EVM).
Para los multi-provers, quedan dos piezas principales restantes. Primero, necesitamos tener suficiente confianza en al menos dos sistemas de prueba diferentes, ambos que son razonablemente seguros individualmente y que si fallan, fallarían por razones diferentes e no relacionadas (y por lo tanto no fallarían al mismo tiempo). Segundo, necesitamos obtener un nivel muy alto de seguridad en la lógica subyacente que fusiona los sistemas de prueba. Esta es una pieza de código mucho más pequeña. Hay formas de hacerla extremadamente pequeña: simplemente almacenar fondos en un Contrato seguro de firma múltiplecuyos firmantes son contratos que representan sistemas de prueba individuales, pero esto tiene el inconveniente de altos costos de gas en la cadena. Será necesario encontrar un equilibrio entre eficiencia y seguridad.
Mover la actividad a L2 reduce la presión de MEV en L1.
Uno de los principales desafíos con el ecosistema L2 hoy en día es que es difícil para los usuarios navegar. Además, las formas más fáciles de hacerlo a menudo reintroducen suposiciones de confianza: puentes centralizados, clientes de RPC, y así sucesivamente. Si tomamos en serio la idea de que los L2 son parte de Ethereum, necesitamos hacer que el uso del ecosistema L2 se sienta como usar un ecosistema unificado de Ethereum.
Un ejemplo de una experiencia de usuario entre capas (L2) patológicamente mala (e incluso peligrosa: personalmente perdí $100 debido a un error en la selección de cadena aquí) - aunque esto no es culpa de Polymarket, la interoperabilidad entre capas L2 debería ser responsabilidad de las carteras y la comunidad de estándares de Ethereum (ERC). En un ecosistema Ethereum bien funcionando, enviar monedas de L1 a L2, o de una L2 a otra, debería sentirse igual que enviar monedas dentro de la misma L1.
Hay muchas categorías de mejoras de interoperabilidad cruzada de L2. En general, la forma de idearlas es darse cuenta de que en teoría, un Ethereum centrado en rollups es lo mismo que el particionamiento de ejecución L1, y luego preguntar dónde la actual Ethereum L2-verse se queda corta de ese ideal en la práctica. Aquí hay algunos:
Cómo un cliente ligero puede actualizar su vista de la cadena de encabezado de Ethereum. Una vez que tenga la cadena de encabezados, puede usar pruebas de Merkle para validar cualquier objeto de estado. Y una vez que tenga los objetos de estado L1 correctos, puede usar pruebas de Merkle (y posiblemente firmas, si desea verificar preconfirmaciones) para validar cualquier objeto de estado en L2. Helios ya hace lo primero. Extenderlo al último es un desafío de estandarización.
Un diagrama estilizado de cómo funcionan las billeteras de almacén de claves.
Muchos de los ejemplos anteriores enfrentan dilemas estándar sobre cuándo estandarizar y en qué capas estandarizar. Si estandarizas demasiado pronto, corres el riesgo de consolidar una solución inferior. Si estandarizas demasiado tarde, corres el riesgo de crear una fragmentación innecesaria. En algunos casos, hay una solución a corto plazo que tiene propiedades más débiles pero es más fácil de implementar, y una solución a largo plazo que es "en última instancia correcta" pero llevará bastantes años llegar a ella.
Una forma en la que esta sección es única es que estas tareas no son solo problemas técnicos: también son (¡quizás incluso principalmente!) problemas sociales. Requieren que L2 y las billeteras y L1 cooperen. Nuestra capacidad para manejar este problema con éxito es una prueba de nuestra capacidad para permanecer unidos como comunidad.
La mayoría de estas propuestas son construcciones de "capa superior" y, por lo tanto, no afectan en gran medida las consideraciones de L1. Una excepción es la secuenciación compartida, que tiene un fuerte impacto en MEV.
Si las capas 2 se vuelven muy escalables y exitosas pero la capa 1 sigue siendo capaz de procesar solo un volumen muy bajo de transacciones, existen muchos riesgos para Ethereum que podrían surgir:
Por estas razones, es valioso seguir escalando L1 en sí mismo y asegurarse de que pueda seguir acomodando un número creciente de usos.
La forma más fácil de escalar es simplemente aumentar el límite de gas. Sin embargo, esto corre el riesgo de centralizar la L1 y, por lo tanto, debilitar la otra propiedad importante que hace que la L1 de Ethereum sea tan poderosa: su credibilidad como una capa base robusta. Existe un debate en curso sobre qué grado de aumento simple del límite de gas es sostenible, y esto también cambia en función de qué otras tecnologías se implementan para hacer que los bloques más grandes sean más fáciles de verificar (por ejemplo, caducidad del historial, apatridia, pruebas de validez L1 EVM). Otra cosa importante que hay que seguir mejorando es simplemente la eficiencia del software cliente de Ethereum, que está mucho más optimizado hoy que hace cinco años. Una estrategia eficaz de aumento del límite de gas L1 implicaría acelerar estas tecnologías de verificación.
Otra estrategia de escalado implica identificar características específicas y tipos de cálculos que se pueden hacer más baratos sin dañar la descentralización de la red o sus propiedades de seguridad. Ejemplos de esto incluyen:
Estas mejoras se discutirán con más detalle en una publicación futura sobre el Despilfarro.
Finalmente, una tercera estrategia son los rollups nativos (o rollups "consagrados"): esencialmente, crear muchas copias del EVM que se ejecutan en paralelo, lo que conduce a un modelo que es equivalente a lo que los rollups pueden proporcionar, pero mucho más integrado de forma nativa en el protocolo.
Hay tres estrategias para la escalabilidad de L1, que se pueden seguir individualmente o en paralelo:
Vale la pena entender que estas son técnicas diferentes que tienen compensaciones diferentes. Por ejemplo, los rollups nativos tienen muchas de las mismas debilidades en la composabilidad que los rollups regulares: no puedes enviar una sola transacción que realice sincrónicamente operaciones a través de muchos de ellos, como puedes hacer con contratos en el mismo L1 (o L2). Aumentar el límite de gas resta otros beneficios que se pueden lograr al hacer que el L1 sea más fácil de verificar, como aumentar la porción de usuarios que ejecutan nodos de verificación y aumentar los apostadores en solitario. Hacer que operaciones específicas en el EVM sean más baratas, dependiendo de cómo se haga, puede aumentar la complejidad total del EVM.
Una gran pregunta que cualquier hoja de ruta de escalado L1 necesita responder es: ¿cuál es la visión final de lo que pertenece a L1 y lo que pertenece a L2? Claramente, es absurdo que todo vaya en L1: los casos de uso potenciales llegan a cientos de miles de transacciones por segundo, y eso haría que L1 fuera completamente inviable de verificar (a menos que optemos por la ruta de rollup nativa). Pero necesitamos algún principio rector, para asegurarnos de que no estamos creando una situación en la que aumentamos el límite de gas en 10 veces, dañamos gravemente la descentralización de Ethereum L1, y descubrimos que solo hemos llegado a un mundo en el que en lugar de que el 99% de la actividad esté en L2, el 90% de la actividad esté en L2, y por lo tanto, el resultado de lo contrario parece casi lo mismo, excepto por una pérdida irreversible de gran parte de lo que hace especial a Ethereum L1.
Una vista propuesta de una “división del trabajo” entre L1 y L2s,fuente.
Traer a más usuarios a L1 implica mejorar no solo la escala, sino también otros aspectos de L1. Significa que más MEV permanecerá en L1 (en lugar de convertirse en un problema solo para L2), por lo que será aún más necesario abordarlo explícitamente. Aumenta en gran medida el valor de tener tiempos de ranura rápidos en L1. Y también depende en gran medida de que la verificación de L1 ("la Verge") salga bien.
Al principio, Ethereum tenía dos estrategias de escalado en su hoja de ruta. Uno (por ejemplo, ver este primer documentodesde 2015) fue “fragmentación”: en lugar de verificar y almacenar todas las transacciones en la cadena, cada nodo solo necesitaría verificar y almacenar una pequeña fracción de las transacciones. Así es como funciona cualquier otra red peer-to-peer (por ejemplo, BitTorrent), por lo que seguramente podríamos hacer que las blockchains funcionen de la misma manera. Otro fue los protocolos de capa 2: redes que se ubicarían encima de Ethereum de una manera que les permita beneficiarse plenamente de su seguridad, al tiempo que mantienen la mayor parte de los datos y cálculos fuera de la cadena principal. Los “protocolos de capa 2” significaban canales de estadoen 2015, Plasmaen 2017, y luegorollupsen 2019. Rollups son más poderosos que los canales de estado o Plasma, pero requieren una gran cantidad de ancho de banda de datos en cadena. Afortunadamente, para 2019 la investigación de shardings había resuelto el problema de verificar la "disponibilidad de datos" a escala. Como resultado, los dos caminos convergieron, y obtuvimos el hoja de ruta centrada en rollupque sigue siendo la estrategia de escalado de Ethereum hoy.
La oleada, edición de la hoja de ruta de 2023.
La hoja de ruta centrada en rollups propone una simple división del trabajo: Ethereum L1 se enfoca en ser una capa base sólida y descentralizada, mientras que L2 se encarga de ayudar a escalar el ecosistema. Este es un patrón que se repite en todas partes en la sociedad: el sistema judicial (L1) no está ahí para ser ultra rápido y eficiente, está ahí para proteger contratos y derechos de propiedad, y corresponde a los emprendedores (L2) construir sobre esosólido base capay llevar a la humanidad a Marte (metafórica y literalmente).
Este año, la hoja de ruta centrada en rollup ha tenido importantes éxitos: el ancho de banda de datos de Ethereum L1 ha aumentado considerablemente con blobs EIP-4844, y ahora hay múltiples rollups de EVM en la etapa 1. Un muy implementación heterogénea y pluralista de sharding, donde cada L2 actúa como un “fragmento” con sus propias reglas y lógica interna, es ahora una realidad. Pero como hemos visto, tomar este camino tiene sus propios desafíos únicos. Y así que ahora nuestra tarea es llevar el mapa de ruta centrado en rollup a su finalización, y resolver estos problemas, mientras se preserva la solidez y descentralización que hacen especial a Ethereum L1.
El trilema de escalabilidad era una idea introducido en 2017, que argumentó que hay una tensión entre tres propiedades de una cadena de bloques: descentralización (más específicamente: bajo costo para ejecutar un nodo), escalabilidad (más específicamente: alto número de transacciones procesadas) y seguridad (más específicamente: un atacante necesitando corromper una gran parte de los nodos en toda la red para hacer que falle incluso una sola transacción).
Es importante destacar que el trilema no es un teorema, y la publicación que introduce el trilema no venía acompañada de una prueba matemática. Sin embargo, sí proporcionó un argumento matemático heurístico: si un nodo amigable con la descentralización (por ejemplo, una computadora portátil de consumidor) puede verificar N transacciones por segundo, y tienes una cadena que procesa k*N transacciones por segundo, entonces o bien (i) cada transacción solo es vista por 1/k de los nodos, lo que implica que un atacante solo necesita corromper unos pocos nodos para hacer pasar una transacción incorrecta, o (ii) tus nodos van a ser potentes y tu cadena no será descentralizada. El propósito de la publicación nunca fue demostrar que romper el trilema es imposible; más bien, fue mostrar que romper el trilema es difícil, requiere de alguna manera pensar fuera de la caja que el argumento implica.
Durante muchos años, ha sido común que algunas cadenas de alto rendimiento afirmen que resuelven el trilema sin hacer nada inteligente a nivel de arquitectura fundamental, típicamente utilizando trucos de ingeniería de software para optimizar el nodo. Esto siempre es engañoso, y ejecutar un nodo en dichas cadenas siempre termina siendo mucho más difícil que en Ethereum.Esta publicaciónentra en algunas de las muchas sutilezas de por qué esto es así (y, por lo tanto, por qué la ingeniería de software del cliente L1 por sí sola no puede escalar Ethereum en sí mismo).
Sin embargo, la combinación de muestreo de disponibilidad de datos y SNARKs resuelve el trilema: permite a un cliente verificar que cierta cantidad de datos está disponible y que se llevaron a cabo correctamente cierta cantidad de pasos de cálculo, mientras descarga solo una pequeña porción de esos datos y ejecuta una cantidad mucho menor de cálculos. Los SNARKs no requieren confianza. El muestreo de disponibilidad de datos tiene un enfoque sutil modelo de confianza few-of-N, pero conserva la propiedad fundamental que tienen las cadenas no escalables, que es que ni siquiera un ataque del 51% puede obligar a que los bloques malos sean aceptados por la red.
Otra forma de resolver el trilema es a través de arquitecturas de Plasma, que utilizan técnicas ingeniosas para trasladar la responsabilidad de vigilar la disponibilidad de datos al usuario de manera compatible con los incentivos. En 2017-2019, cuando todo lo que teníamos para escalar la computación eran pruebas de fraude, Plasma estaba muy limitado en lo que podía hacer de forma segura, pero la incorporación de SNARKs hace que las arquitecturas de Plasma mucho más viablepara una gama más amplia de casos de uso que antes.
A partir del 13 de marzo de 2024, cuando el Actualización de DencunCuando se puso en marcha, la cadena de bloques de Ethereum tiene tres "blobs" de ~125 kB por ranura de 12 segundos, o ~375 kB por ranura de ancho de banda de disponibilidad de datos. Suponiendo que los datos de transacción se publican en la cadena directamente, una transferencia ERC20 es de ~180 bytes, por lo que el TPS máximo de rollups en Ethereum es:
375000 / 12 / 180 = 173.6 TPS
Si agregamos los calldatas de Ethereum (máximo teórico: 30 millones de gas por ranura / 16 gas por byte = 1,875,000 bytes por ranura), esto se convierte en 607 TPS. Con PeerDAS, el plan es aumentar el objetivo de recuento de blobs a 8-16, lo que nos daría 463-926 TPS en calldata.
Este es un gran aumento sobre el Ethereum L1, pero no es suficiente. Queremos mucha más escalabilidad. Nuestro objetivo a medio plazo es de 16 MB por ranura, lo que, combinado con mejoras en la compresión de datos de rollup, nos daría ~58,000 TPS.
PeerDAS es una implementación relativamente simple de "muestreo 1D". Cada blob en Ethereum es un polinomio de grado 4096 sobre un campo primo de 253 bits. Transmitimos "partes" del polinomio, donde cada parte consta de 16 evaluaciones en 16 coordenadas adyacentes tomadas de un conjunto total de 8192 coordenadas. Cualquier conjunto de 4096 de las 8192 evaluaciones (con los parámetros propuestos actuales: cualquier conjunto de 64 de las 128 muestras posibles) puede recuperar el blob.
PeerDAS funciona haciendo que cada cliente escuche en un pequeño número de subredes, donde la subred i-ésima transmite la i-ésima muestra de cualquier blob, y además solicita blobs en otras subredes que necesite preguntando a sus pares en la red p2p global (que estarían escuchando diferentes subredes). Una versión más conservadora, SubnetDAS, utiliza solo el mecanismo de subred, sin la capa adicional de preguntar a los pares. Una propuesta actual es que los nodos que participan en la prueba de participación utilicen SubnetDAS, y que otros nodos (es decir, "clientes") utilicen PeerDAS.
Teóricamente, podemos escalar el muestreo 1D bastante lejos: si aumentamos el recuento máximo de blobs a 256 (por lo tanto, el objetivo a 128), entonces llegaríamos a nuestro objetivo de 16 MB mientras que el muestreo de disponibilidad de datos solo costaría a cada nodo 16 muestras128 blobs512 bytes por muestra por fragmento = 1 MB de ancho de banda de datos por ranura. Esto está justo dentro de nuestro alcance de tolerancia: es factible, pero significaría que los clientes con restricciones de ancho de banda no podrían muestrear. Podríamos optimizar esto en cierta medida disminuyendo el recuento de fragmentos y aumentando el tamaño de los fragmentos, pero esto haría que la reconstrucción fuera más costosa.
Y así, en última instancia, queremos ir más allá y hacerMuestreo 2D, que funciona mediante muestreo aleatorio no solo dentro de los bloques, sino también entre los bloques. Las propiedades lineales de las confirmaciones KZG se utilizan para “extender” el conjunto de bloques en un bloque con una lista de nuevos “bloques virtuales” que codifican redundante la misma información.
Muestreo 2D. Fuente: a16z crypto
Es crucial destacar que calcular la extensión de los compromisos no requiere tener los bloques, por lo que el esquema es fundamentalmente amigable para la construcción de bloques distribuidos. El nodo que realmente construye el bloque solo necesitaría tener los compromisos de bloques KZG y puede confiar en DAS para verificar la disponibilidad de los bloques. 1D DAS también es inherentemente amigable para la construcción de bloques distribuidos.
El siguiente paso inmediato es terminar la implementación y el despliegue de PeerDAS. A partir de ahí, es una tarea progresiva seguir aumentando el recuento de blobs en PeerDAS mientras se vigila cuidadosamente la red y se mejora el software para garantizar la seguridad. Al mismo tiempo, queremos más trabajos académicos para formalizar PeerDAS y otras versiones de DAS y sus interacciones con problemas como la seguridad de la regla de elección de bifurcación.
Más adelante en el futuro, necesitamos mucho más trabajo para descubrir la versión ideal de 2D DAS y demostrar sus propiedades de seguridad. También queremos eventualmente migrar lejos de KZG a una alternativa resistente a la computación cuántica y libre de configuración confiable. Actualmente, no conocemos candidatos que sean amigables para la construcción de bloques distribuidos. Incluso la costosa técnica de "fuerza bruta" de usar STARKs recursivos para generar pruebas de validez para la reconstrucción de filas y columnas no es suficiente, porque técnicamente un STARK tiene un tamaño de O(log(n) * log(log(n)) hashes.STIR) en la práctica, un STARK es casi tan grande como un blob completo.
Los caminos realistas que veo a largo plazo son:
Podemos ver esto a lo largo de un espectro de compensación:
Tenga en cuenta que esta opción existe incluso si decidimos escalar la ejecución en L1 directamente. Esto se debe a que si L1 va a procesar muchas TPS, los bloques de L1 serán muy grandes y los clientes querrán una forma eficiente de verificar que son correctos, por lo que tendríamos que utilizar la misma tecnología que impulsa los rollups (ZK-EVM y DAS) en L1.
La necesidad de 2D DAS se reduce en cierta medida, o al menos se retrasa, si se implementa la compresión de datos (ver abajo), y se reduce aún más si Plasma se usa ampliamente. DAS también plantea un desafío a los protocolos y mecanismos de construcción de bloques distribuidos: aunque DAS es teóricamente amigable para la reconstrucción distribuida, esto necesita combinarse en la práctica conlista de inclusiónpropuestas y su mecánica de selección de bifurcación circundante.
Cada transacción en un rollup ocupa una cantidad significativa de espacio de datos en la cadena: una transferencia ERC20 ocupa alrededor de 180 bytes. Incluso con un muestreo ideal de disponibilidad de datos, esto pone un límite a la escalabilidad de los protocolos de capa 2. Con 16 MB por ranura, obtenemos:
16000000 / 12 / 180 = 7407 TPS
¿Y si además de abordar el numerador, también podemos abordar el denominador y hacer que cada transacción en un rollup ocupe menos bytes en la cadena?
La mejor explicación en mi opinión es este diagramahace dos años:
Las ganancias más simples son simplemente compresión de bytes cero: reemplazando cada secuencia larga de bytes cero con dos bytes que representan cuántos bytes cero hay. Para ir más allá, aprovechamos las propiedades específicas de las transacciones:
Lo principal que queda por hacer es implementar realmente los esquemas anteriores. Los principales compromisos son:
La adopción de ERC-4337, y eventualmente la consagración de partes de ella en L2 EVMs, puede acelerar en gran medida la implementación de técnicas de agregación. La consagración de partes de ERC-4337 en L1 puede acelerar su implementación en L2s.
Incluso con blobs de 16 MB y compresión de datos, 58.000 TPS no son necesariamente suficientes para hacerse cargo por completo de los pagos de los consumidores, las redes sociales descentralizadas u otros sectores de gran ancho de banda, y esto se vuelve especialmente cierto si comenzamos a tener en cuenta la privacidad, que podría reducir la escalabilidad entre 3 y 8 veces. Para aplicaciones de alto volumen y bajo valor, una opción hoy en día es un validium, que mantiene los datos fuera de la cadena y tiene un interesante modelo de seguridad donde el operador no puede robar los fondos de los usuarios, pero pueden desaparecer y congelar temporal o permanentemente todos los fondos de los usuarios. Pero podemos hacerlo mejor.
Plasma es una solución de escalado que implica que un operador publique bloques fuera de la cadena, y coloque las raíces de Merkle de esos bloques en la cadena (a diferencia de los rollups, donde el bloque completo se coloca en la cadena). Para cada bloque, el operador envía a cada usuario una rama de Merkle que prueba lo que sucedió, o no sucedió, con los activos de ese usuario. Los usuarios pueden retirar sus activos proporcionando una rama de Merkle. Es importante destacar que esta rama no tiene que estar enraizada en el estado más reciente, por esta razón, incluso si la disponibilidad de datos falla, el usuario aún puede recuperar sus activos retirando el estado más reciente que tienen disponible. Si un usuario envía una rama inválida (por ejemplo, sale de un activo que ya envió a otra persona, o el mismo operador crea un activo de la nada), un mecanismo de desafío en cadena puede decidir a quién pertenece legítimamente el activo.
Un diagrama de una cadena de Plasma Cash. Las transacciones que gastan la moneda i se colocan en la posición i-ésima en el árbol. En este ejemplo, asumiendo que todos los árboles anteriores son válidos, sabemos que Eve actualmente posee la moneda 1, David posee la moneda 4 y George posee la moneda 6.
Las primeras versiones de Plasma solo podían manejar el caso de uso de pagos y no podían generalizarse de manera efectiva. Sin embargo, si requerimos que cada raíz sea verificada con un SNARK, Plasma se vuelve mucho más poderoso. Cada juego de desafío puede simplificarse significativamente, porque eliminamos la mayoría de los posibles caminos para que el operador haga trampa. También se abren nuevos caminos para permitir que las técnicas de Plasma se extiendan a una clase mucho más general de activos. Finalmente, en el caso de que el operador no haga trampa, los usuarios pueden retirar sus fondos al instante, sin necesidad de esperar un período de desafío de una semana.
Una forma (no la única forma) de crear una cadena de plasma de EVM: utilizar un ZK-SNARK para construir un árbol UTXO paralelo que refleje los cambios de saldo realizados por el EVM, y defina un mapeo único de lo que es “la misma moneda” en diferentes momentos de la historia. Una construcción de Plasma puede entonces construirse sobre eso.
Una idea clave es que el sistema Plasma no necesita ser perfecto. Incluso si solo puedes proteger un subconjunto de activos (por ejemplo, incluso solo monedas que no se han movido en la última semana), ya has mejorado en gran medida el estado actual del EVM ultramoderno, que es un validium válido.
Otra clase de construcciones son los plasmas híbridos/rollups, como Intmax. Estas construcciones colocan una cantidad muy pequeña de datos por usuario en la cadena (por ejemplo, 5 bytes), y al hacerlo, obtienen propiedades que se encuentran en algún punto intermedio entre plasma y rollups: en el caso de Intmax, se obtiene un nivel muy alto de escalabilidad y privacidad, aunque incluso en el mundo de 16 MB, la capacidad está teóricamente limitada a aproximadamente 16,000,000 / 12 / 5 = 266,667 TPS.
La principal tarea pendiente es llevar los sistemas de plasma a la producción. Como se mencionó anteriormente, "plasma vs validium" no es binario: cualquier validium puede mejorar sus propiedades de seguridad al menos un poco al agregar características de plasma en el mecanismo de salida. La parte de investigación consiste en obtener las propiedades óptimas (en términos de requisitos de confianza, el costo del gas L1 en el peor de los casos y la vulnerabilidad a DoS) para una EVM, así como construcciones alternativas específicas de la aplicación. Además, la mayor complejidad conceptual de Plasma en relación con los rollups debe abordarse directamente, tanto a través de la investigación como a través de la construcción de mejores marcos generalizados.
El principal compromiso en el uso de los diseños de Plasma es que dependen más de los operadores y son más difíciles de hacer “basadoAunque los diseños híbridos de plasma/rollup a menudo pueden evitar esta debilidad.
Cuanto más efectivas sean las soluciones de Plasma, menos presión habrá para que el L1 tenga una funcionalidad de disponibilidad de datos de alto rendimiento. Mover la actividad al L2 también reduce la presión de MEV en el L1.
Hoy en día, la mayoría de los rollups aún no son realmente descentralizados; hay un consejo de seguridad que tiene la capacidad de anular el comportamiento del (optimista o de validez)sistema de pruebaEn algunos casos, el sistema de prueba ni siquiera está en funcionamiento, o si lo está, solo tiene una funcionalidad "asesora". Los más avanzados son (i) algunos rollups específicos de aplicaciones, como Fuel, que son sin confianza, y (ii) en el momento de esta escritura, Optimism y Arbitrum, dos rollups completos de EVM que han logrado un hito de "parcial sin confianza" conocido como "etapa 1". La razón por la que los rollups no han avanzado más es la preocupación por los errores en el código. Necesitamos rollups sin confianza, y por lo tanto, debemos abordar este problema de frente.
Primero, vamos a repasar el sistema de 'etapas', originalmente introducido en esta publicación. Hay más requisitos detallados, pero el resumen es:
El objetivo es llegar a la Etapa 2. El principal desafío para llegar a la etapa 2 es obtener suficiente confianza en que el sistema de prueba es realmente lo suficientemente confiable. Hay dos formas principales de hacer esto:
Diagrama estilizado de un multi-demostrador, combinando un sistema de prueba optimista, un sistema de prueba de validez y un consejo de seguridad.
Para la verificación formal, mucho. Necesitamos crear una versión formalmente verificada de un probador de SNARK completo de un EVM. Este es un proyecto increíblemente complejo, aunque es uno que Ya hemos empezado. Hay un truco que simplifica significativamente la tarea: podemos hacer un probador SNARK verificado formalmente de una VM mínima, por ejemplo. RISC-VoCairo, y luego escribir una implementación del EVM en esa VM minimalista (y demostrar formalmente su equivalencia con alguna otra especificación del EVM).
Para los multi-provers, quedan dos piezas principales restantes. Primero, necesitamos tener suficiente confianza en al menos dos sistemas de prueba diferentes, ambos que son razonablemente seguros individualmente y que si fallan, fallarían por razones diferentes e no relacionadas (y por lo tanto no fallarían al mismo tiempo). Segundo, necesitamos obtener un nivel muy alto de seguridad en la lógica subyacente que fusiona los sistemas de prueba. Esta es una pieza de código mucho más pequeña. Hay formas de hacerla extremadamente pequeña: simplemente almacenar fondos en un Contrato seguro de firma múltiplecuyos firmantes son contratos que representan sistemas de prueba individuales, pero esto tiene el inconveniente de altos costos de gas en la cadena. Será necesario encontrar un equilibrio entre eficiencia y seguridad.
Mover la actividad a L2 reduce la presión de MEV en L1.
Uno de los principales desafíos con el ecosistema L2 hoy en día es que es difícil para los usuarios navegar. Además, las formas más fáciles de hacerlo a menudo reintroducen suposiciones de confianza: puentes centralizados, clientes de RPC, y así sucesivamente. Si tomamos en serio la idea de que los L2 son parte de Ethereum, necesitamos hacer que el uso del ecosistema L2 se sienta como usar un ecosistema unificado de Ethereum.
Un ejemplo de una experiencia de usuario entre capas (L2) patológicamente mala (e incluso peligrosa: personalmente perdí $100 debido a un error en la selección de cadena aquí) - aunque esto no es culpa de Polymarket, la interoperabilidad entre capas L2 debería ser responsabilidad de las carteras y la comunidad de estándares de Ethereum (ERC). En un ecosistema Ethereum bien funcionando, enviar monedas de L1 a L2, o de una L2 a otra, debería sentirse igual que enviar monedas dentro de la misma L1.
Hay muchas categorías de mejoras de interoperabilidad cruzada de L2. En general, la forma de idearlas es darse cuenta de que en teoría, un Ethereum centrado en rollups es lo mismo que el particionamiento de ejecución L1, y luego preguntar dónde la actual Ethereum L2-verse se queda corta de ese ideal en la práctica. Aquí hay algunos:
Cómo un cliente ligero puede actualizar su vista de la cadena de encabezado de Ethereum. Una vez que tenga la cadena de encabezados, puede usar pruebas de Merkle para validar cualquier objeto de estado. Y una vez que tenga los objetos de estado L1 correctos, puede usar pruebas de Merkle (y posiblemente firmas, si desea verificar preconfirmaciones) para validar cualquier objeto de estado en L2. Helios ya hace lo primero. Extenderlo al último es un desafío de estandarización.
Un diagrama estilizado de cómo funcionan las billeteras de almacén de claves.
Muchos de los ejemplos anteriores enfrentan dilemas estándar sobre cuándo estandarizar y en qué capas estandarizar. Si estandarizas demasiado pronto, corres el riesgo de consolidar una solución inferior. Si estandarizas demasiado tarde, corres el riesgo de crear una fragmentación innecesaria. En algunos casos, hay una solución a corto plazo que tiene propiedades más débiles pero es más fácil de implementar, y una solución a largo plazo que es "en última instancia correcta" pero llevará bastantes años llegar a ella.
Una forma en la que esta sección es única es que estas tareas no son solo problemas técnicos: también son (¡quizás incluso principalmente!) problemas sociales. Requieren que L2 y las billeteras y L1 cooperen. Nuestra capacidad para manejar este problema con éxito es una prueba de nuestra capacidad para permanecer unidos como comunidad.
La mayoría de estas propuestas son construcciones de "capa superior" y, por lo tanto, no afectan en gran medida las consideraciones de L1. Una excepción es la secuenciación compartida, que tiene un fuerte impacto en MEV.
Si las capas 2 se vuelven muy escalables y exitosas pero la capa 1 sigue siendo capaz de procesar solo un volumen muy bajo de transacciones, existen muchos riesgos para Ethereum que podrían surgir:
Por estas razones, es valioso seguir escalando L1 en sí mismo y asegurarse de que pueda seguir acomodando un número creciente de usos.
La forma más fácil de escalar es simplemente aumentar el límite de gas. Sin embargo, esto corre el riesgo de centralizar la L1 y, por lo tanto, debilitar la otra propiedad importante que hace que la L1 de Ethereum sea tan poderosa: su credibilidad como una capa base robusta. Existe un debate en curso sobre qué grado de aumento simple del límite de gas es sostenible, y esto también cambia en función de qué otras tecnologías se implementan para hacer que los bloques más grandes sean más fáciles de verificar (por ejemplo, caducidad del historial, apatridia, pruebas de validez L1 EVM). Otra cosa importante que hay que seguir mejorando es simplemente la eficiencia del software cliente de Ethereum, que está mucho más optimizado hoy que hace cinco años. Una estrategia eficaz de aumento del límite de gas L1 implicaría acelerar estas tecnologías de verificación.
Otra estrategia de escalado implica identificar características específicas y tipos de cálculos que se pueden hacer más baratos sin dañar la descentralización de la red o sus propiedades de seguridad. Ejemplos de esto incluyen:
Estas mejoras se discutirán con más detalle en una publicación futura sobre el Despilfarro.
Finalmente, una tercera estrategia son los rollups nativos (o rollups "consagrados"): esencialmente, crear muchas copias del EVM que se ejecutan en paralelo, lo que conduce a un modelo que es equivalente a lo que los rollups pueden proporcionar, pero mucho más integrado de forma nativa en el protocolo.
Hay tres estrategias para la escalabilidad de L1, que se pueden seguir individualmente o en paralelo:
Vale la pena entender que estas son técnicas diferentes que tienen compensaciones diferentes. Por ejemplo, los rollups nativos tienen muchas de las mismas debilidades en la composabilidad que los rollups regulares: no puedes enviar una sola transacción que realice sincrónicamente operaciones a través de muchos de ellos, como puedes hacer con contratos en el mismo L1 (o L2). Aumentar el límite de gas resta otros beneficios que se pueden lograr al hacer que el L1 sea más fácil de verificar, como aumentar la porción de usuarios que ejecutan nodos de verificación y aumentar los apostadores en solitario. Hacer que operaciones específicas en el EVM sean más baratas, dependiendo de cómo se haga, puede aumentar la complejidad total del EVM.
Una gran pregunta que cualquier hoja de ruta de escalado L1 necesita responder es: ¿cuál es la visión final de lo que pertenece a L1 y lo que pertenece a L2? Claramente, es absurdo que todo vaya en L1: los casos de uso potenciales llegan a cientos de miles de transacciones por segundo, y eso haría que L1 fuera completamente inviable de verificar (a menos que optemos por la ruta de rollup nativa). Pero necesitamos algún principio rector, para asegurarnos de que no estamos creando una situación en la que aumentamos el límite de gas en 10 veces, dañamos gravemente la descentralización de Ethereum L1, y descubrimos que solo hemos llegado a un mundo en el que en lugar de que el 99% de la actividad esté en L2, el 90% de la actividad esté en L2, y por lo tanto, el resultado de lo contrario parece casi lo mismo, excepto por una pérdida irreversible de gran parte de lo que hace especial a Ethereum L1.
Una vista propuesta de una “división del trabajo” entre L1 y L2s,fuente.
Traer a más usuarios a L1 implica mejorar no solo la escala, sino también otros aspectos de L1. Significa que más MEV permanecerá en L1 (en lugar de convertirse en un problema solo para L2), por lo que será aún más necesario abordarlo explícitamente. Aumenta en gran medida el valor de tener tiempos de ranura rápidos en L1. Y también depende en gran medida de que la verificación de L1 ("la Verge") salga bien.