Nada es para siempre, ni los Ratones Paranoicos, ni el Diego, ni el diseño actual de Ethereum, que pronto va a cambiar para permitir que los rollups funcionen mejor: más transacciones, más rápidas, más baratas. Más todo.

The Surge

Alcanzar las 100,000 transacciones por segundo sobre rollups

Surge, con “S” de “seremos capaces de procesar una bocha de transacciones”. También, podríamos decir que la “S” es de “Sharding”, aunque el sharding como tal haya quedado obsoleto.

El objetivo es el que acaban de leer: 100,000 transacciones por segundo. Pero dice “sobre rollups”. Por eso se habla de “rollup-centric roadmap”. Modificar el protocolo para favorecer a los rollups y que el ecosistema Ethereum escale de forma modular, y ya no basados en una super blockchain monolítica capaz de procesar todas las transacciones del mundo. Por ojo, 100,000 transacciones, son una bocha.

¿Cómo llegamos a eso?

Antes hay que entender como funciona un rollup. Es un tema que da para un artículo en sí mismo, pero vamos a decir que agrupan muchas transacciones, comprimen su información y la mandan a la red principal. Las transacciones se ejecutan off-chain (en el rollup) pero la data para verificar que sean correctas se guardan en Ethereum. Una metáfora más gráfica es la del colectivo. Imaginate que cada transacción es un auto con una persona en una autopista saturada a las 19.00 de un domingo luego de un hermoso día fuera de la ciudad. Una transacción de un rollup es un colectivo que lleva muchas personas adentro.

Ok, clarísimo Santi. Sigamos.

Ya hay bocha de rollups funcionando y mandando colectivos llenos de gente chivada a la blockchain. Si bien son mucho más eficientes, también ocupan su espacio. Y la expectativa es que sigan creciendo. Por lo que pronto tendremos una autopista saturada de colectivos.

Vamos a reformar la autopista

Si no quedó claro aún, Ethereum es la autopista. La solución es entonces modificar la autopista para que sea más eficientes para los colectivos. Si fuésemos ingenieros civiles pensaríamos en subtes, trenes, carriles aparte y demás. Pero no lo somos, y los colectivos y la autopista son solamente construcciones que existen en el imaginario de nuestras proliferas cabezas, que tienen la capacidad increíblemente poderosa de visualizar cosas que no existen, como un unicornio, un protocolo DeFi que pague 250% de APY y no te termine haciendo perder plata y Mbappé levantando una copa del mundo en Qatar.

Lo que se va a hacer es modificar la forma en la que funciona Ethereum, para adaptarse mejor a un mundo que cada vez tiene más colectivos y menos autos.

EIP-4844, blobs y Proto-Danksharding

El primer paso es la implementación del EIP-4844, que va a agregar un nuevo tipo de transacción, diseñada específicamente para almacenar la data de los rollups, que tendrían su propio mercado de gas. Sería como un carril aparte en la autopista. Esta data se conoce como “blobs” y no se guarda en la memoria de Ethereum.

La idea es la siguiente: los rollups solo necesitan que la información de las transacciones que ejecutaron esté disponible durante un breve período de tiempo, suficiente como para que alguien denuncie posibles casos de transacciones fraudulentas o manipulación de la información. Pero no hace falta que esa data quede guarda hasta el fin de los tiempos en los lugares más reconditos de la blockchain.

Entonces, de nuevo. Se crea un nuevo tipo de transacción, que permite almacenar “blobs”, en criollo, “binary large objects”, en más criollo, data. La data de los rollups. Entonces los rollups ya no van a mandar todos sus cuadernitos llenos de información a la red principal, pagando una bocha de gas para que esa info se guarde en la memoria de la red, sino que van a mandar su data por este carril separado, para que se guarde como blob, pagando un precio de amigo (guardar info un blob es más barato que guardar info en la blockchain) y de paso:

DESCONGESTIONANDO AÚN MÁS LA RED PRINCIPAL

Es decir, no solo metimos una bocha de gente en un bondi, sino que aparte armamos un carril aparte para que los bondis dejen de ocupar toda la autopista y quién quiera volver un domingo de sol a su casa en un Mercedes Benz con aire acondicionado al palo y Aspen en la radio pueda hacerlo sin problema.

PS: bondi significa colectivo, que significa autobus, que significa tubo con ruedas que lleva gente.

Esa implementación que agregará el nuevo tipo de transacción se conoce como proto-danksharding, y sienta las bases para el danksharding.

No vamos a entrar en detalles, pero danksharding es el nombre que se le dió al proceso a partir del cual se va a fragmentar toda la gestión de los datos o la “data availability” de la red.

Similar a lo que dijimos de los blobs, a largo plazo se apunta a que toda la data deje de estar guardada en depósitos que nadie va a revisar jamás y simplemente esté disponible siempre que alguien la necesite (lo cual es mucho más eficiente que apuntar a que todos tengan que descargar y guardar la data).

Che, pero… ¿no era spurge con “S” de sharding?

Sí, claro. El proto-danksharding es una versión simplificada del danksharding, que es una versión simplificada del sharding total, que podría o no implementarse a nivel de procesamiento de transacciones. Veremos como evoluciona.

Por ahora basta acordarnos que la “S” es de “Sharding” y que los blobs son la posta para rollups baratos.

¿Qué es el sharding?

Sharding viene de fragmento. La idea es separar una base de datos en fragmentos, para que sea más fácil almacenar, procesar y acceder a la información. Durante mucho tiempo se pensó en “ETH 2.0” como una blockchain shardeada que resolvería todos los problemas de escalabilidad.

La idea era dividir la red en 32 shards y que los validadores se dividan. En lugar de tener N validadores asegurando y procesando todas las transacciones, estarían asignados a un shard específico. Luego habría distintos mecanismos para que los shards y sus validadores se comuniquen entre sí.

Bien, todo muy lindo. Pero como ya sabemos, eso cambió bastante. Personalmente creo que es posible que nunca se termine implementando un sharding total.

Anteriormente hablamos de “Rollup centric Roadmap”. Sí, Ethereum va a procesar más de 100,000 transacciones por segundo, pero a través de sus rollups. ¿Cómo se relaciona esto con el sharding? Simple. El nuevo roadmap tiene un enfoque modular para escalar. Es decir que, (al menos en el corto plazo) no habrá una super blockchain llena de shards que procese todo, sino una blockchain diseñada para sacar lo mejor de los rollups.

Proto-Danksharding, el primer paso

El Proto-Danksharding sienta las bases para el Danksharding.

Empecemos por la parte fácil: el Danksharding toma su nombre de un researcher de Ethereum, Dankrad Feist. Algo así como “el sharding del amigo Dank”. Lo cual tiene mucho sentido, porque, en la práctica, es simplemente una versión simplificada de sharding.

El proto-danksharding es una versión simplificada del danksharding, que es una versión simplificada del sharding total.

Danksharding

En un modelo de sharding tradicional, cada shard tiene sus propias transacciones, creadores de bloques y sistemas para gestionar la data de todo lo que pasa en el shard. Imaginémoslo como muchos municipios registrando todo lo que pasa y luego coordinando con otros municipios para unificar la información a nivel provincial.

Esto es mucho más fácil de explicar con una metáfora que de implementar en una blockchain que resguarda millones de dólares. Habría cientos de obstáculos: para mantenerlo simple, imaginate que todos los municipios (shards) tienen que estar comunicándose y replicando la data entre ellos. Podría haber demoras, errores, carga operativa, riesgo a nivel sistema y otras cositas que mejor evitar.

¿Qué hace el Danksharding para resolver esto? ¡Ya sabemos! Simplifica el diseño realizando la validación de toda la data a nivel agregado. Originalmente, el objetivo era tener muchos shards para procesar transacciones paralelamente. Este nuevo modelo, en cambio, apunta a usar shards para aumentar el espacio para almacenar data, delegando la ejecución a los rollups y agregando la parte de validación.

Bajo este diseño, Ethereum se convierte en una capa unificada de settlement y disponibilidad de datos. No pretende que quede super clara, pero la foto les va a dar una idea más visual respecto de esa famosa “simplificación”:

Pero ojo, el danksharding es una implementación que va a traer grandes cambios en todo el protocolo y que trasciende “The Surge”. Una parte clave del modelo es la separación entre block builders y block proposers. Esto nos da el pie perfecto para cerrar el artículo de hoy abriendo la puerta a lo que se viene: “The Scourge” y la famosa PBS (Proposer-Builder Separation).

Así que, ya saben de que vamos a hablar en el artículo que viene, pero antes…

Resumen:

Detrás de esto que yo escribo tan a la ligera, hay páginas enteras de investigación y especificaciones. Es un tema bastante complejo; la idea es que se entiendan los conceptos básicos. Ya iremos profundizando.

Antes de pasar a la siguiente etapa, un breve resumen:

Sharding: fragmentar la blockchain.

Danksharding: diseño simplificado con foco en el almacenamiento (y disponiblidad de data) en lugar de fragmentar el procesamiento de transacciones y el consenso.

Proto-Danksharding: implementación de los blobs, necesarios para separar la data de los rollups, y sentar las bases para aplicar Danksharding en el futuro.

PS: en la foto vemos “DA”, que significa “Data Availability”. Es un concepto de diseño de la arquitectura del sistema. No hace falta que todos guarden toda la data, solo es necesario saber que la data está disponible para cuando la necesitemos. Es la diferencia entre estar trabajando activamente y estar de guardia por si te llaman a resolver un problema. Los blobs son clave para esto.

PS 2: Vitalik incluyó en esta categoría el desarrollo de los fraud-proofs de los rollups, necesarios para que sean realmente seguros y descentralizados, y los desarrollos en tecnología ZK-EVM, que implican poder usar Zero Knowledge Proofs para abarcar el total (o una parte significativa) de las funciones que hoy tiene la EVM.