Debido a los grandes problemas de escalabilidad que tiene en la actualidad el protocolo de Ethereum, hasta que las Shard Chains estén implementadas en Ehereum 2.0, la comunidad de Ethereum está buscando nuevos sistemas que permitan a Ethereum evolucionar hacia un protocolo que sea capaz de absorber la enorme demanda de transacciones que se da por parte de los usuarios. Entre dichos sistemas, destaca los Rollups, los cuales vamos a pasar a analizar en el presente artículo.

 

El problema

Tal y como indicamos anteriormente, uno de los principales problemas a los que se enfrentan la mayoría de los protocolos Blockchain, y entre ellos, también Ethereum, es lograr construir un ecosistema que sea realmente escalable a la demanda de transacciones que requieren los usuarios.

El roadmap de Ethereum, en su etapa Serenity (también llamada Ethereum 2.0), contempla abordar esta situación mediante el desarrollo de una solución de capa 1, que pasa por implementar las Shard Chains, y usar ZKPs (Zero Knowledge Proofs). Hasta que esto ocurra, en Ethereum 1.0 se están buscando nuevas herramientas que permitan gestionar un volumen de transacciones superior al actual por unidad de tiempo.

Entre dichas herramientas, destacan los Rollups, los cuales son una solución de capa 2, que se implementa, en parte, fuera de la propia cadena de bloques. Tanto los Rollups, como las soluciones propuestas de capa 1 para Ethereum 2.0, podrán operar en paralelo en un futuro, lo que hará al protocolo Ethereum un sistema altamente escalable, como veremos más adelante, en el apartado «Impacto de los Rollups en la escalabilidad de Ethereum».

A los lectores que quieran profundizar sobre Ethereum 2.0, les recomendamos que lean el contenido del siguiente enlace.

 

¿Qué aportan los Rollups?

Los Rollups son una herramienta de capa 2, que permite hacer escalar a los protocolos blockchain, con el fin de que sean capaces de gestionar un volumen superior de transacciones por unidad de tiempo.

Al igual que otras soluciones existentes de capa 2, como son Plasma, o los State Channels (Canales de Estado), los Rollups son perfectamente compatibles con las soluciones de escalabilidad  de capa 1 implementadas, ya que se desarrollan, en parte, fuera de la propia cadena de bloques. La combinación de ambos tipos de soluciones, de capa 1 y de capa 2, puede realmente hacer escalar a los protocolos blockchain hasta unas cotas significativas.

A un nivel alto de abstracción, se puede decir que los Rollups permiten gestionar lotes de transacciones, en lugar de transacciones individuales, a un menor coste (menos gas), y manejando un menor volumen de información.

Para lograr dicho objetivo, se usa un smart contract, el cual se guarda en la blockchain, y cuyo cometido es gestionar principalmente tres tareas. La primera tarea es almacenar el State Root del Rollup. Es decir, almacenar la raíz del árbol de Merkle del estado del Rollup. La segunda tarea es gestionar los depósitos y los retiros que se realizan. Y la tercera tarea es la de comprobar que la acciones realizadas dentro del Rollup se ajusten a lo establecido por el protocolo (Figura 1).

Rollups Contract Master Blockchain Online

 Figura 1. Funciones del Rollup Smart Contract. Fuente

 

A través de un Batch (lote), se pueden agrupar un conjunto de transacciones de forma comprimida, e incluirlo en la blockchain. Dicho lote deberá contener, además de las transacciones, el anterior State Root (antes de incluir las transacciones) , y el nuevo State Root (después de incluir las transacciones). El Rollup Smart Contract comprueba si el anterior State Root que se indica en el lote es el mismo que el State Root actual, y en caso afirmativo, cambia el actual State Root por el nuevo State Root indicado en el lote (Figura 2).

Rollups Batch Master Blockchain Online

Figura 2. Gestión de Lotes. Fuente

 

La estrategia que se utiliza para comprobar si el nuevo State Root indicado en el lote es correcto, determinará los dos tipos de Rollups que se implementan en la actualidad, y sobre los cuales vamos a hablar en el siguiente apartado.

En cuanto al control que se debe establecer para gestionar quién puede enviar un lote, existen muchas posibilidades, que van desde dejar que cualquiera pueda enviar lotes sin ningún control, pasando por seleccionar uno de forma aleatoria, o seleccionar a un único actor, de forma concreta, que pueda realizar dicha acción. En cualquiera de los casos, a grandes rasgos, casi todos los enfoques parecen coincidir en la necesidad de que el actor que envíe un lote, deberá realizar un gran depósito para que, en el caso de que envíe un lote fraudulento con mala intención, el depósito se queme en parte, y en otra parte vaya destinado a pagar, como recompensa, al usuario que haya probado dicho fraude.

Además del uso de Lotes de transacciones, los Rollups utilizan herramientas para poder comprimir la información. De esta forma, por ejemplo, mientras que una transacción, en la que sólo se transfiere ETH, ocupa 110 bytes, en un Rollup ocupa 12 bytes.

 

Tipos de Rollups

Existen dos tipologías de Rollups, las cuales vienen determinadas por la forma en la que se comprueba si el nuevo State Root indicado por el lote es correcto o no.

Por un lado, tenemos los Optimistic Rollups, los cuales utilizan Fraud Proofs (Pruebas de Fraude). En este tipo de Rollups, el Rollup Smart Contract almacena el historial completo de los State Roots y el hash de cada lote. Si cualquiera descubre que un lote tiene un nuevo State Root erróneo, puede indicarlo, probando que el lote es incorrecto. En dicho caso, el Rollup Smart Contract tendría que verificar la prueba de fraude aportada, y una vez que se compruebe que es correcta, tendría que revertir dicho lote, y todos los lotes posteriores.

Por otro lado, tenemos los ZK Rollups, los cuales utilizan Validity Proofs (Pruebas de Validación). En este tipo de Rollups, cada lote debe incluir una prueba llamada ZK-SNARK, la cual asegura que el nuevo State Root que indica un lote es el correcto.

Además de lo anterior, existen otras diferencias significativas entre estos dos tipos de Rollups, las cuales afectan a cuestiones como el tiempo que tiene que transcurrir para poder realizar retiros, los costes de gas por cada transacción en la cadena de bloques, el coste de gas por cada lote, y la complejidad de la tecnología utilizada, entre otras. En el presente artículo no vamos a profundizar en ellas, pero el lector que quiera hacerlo, puede consultar los enlaces que se indican en el apartado Referencias.

Dependiendo del caso de uso en concreto al que nos refiramos, en la actualidad, podría interesar utilizar una u otra tipología de Rollup, pero a medida que vaya avanzado la tecnología, y la que las pruebas ZK-SNARKS se hagan menos complejas, puede que los ZK Rollups se vuelvan la mejor opción para la mayoría de los casos.

 

Impacto de los Rollups en la escalabilidad de Ethereum

A modo de ejemplo, en la actualidad, se estima que el número de transacciones por segundo que es capaz de ejecutar Ethereum 1.0, para transacciones en las que sólo se envíe ETH, es de aproximadamente 45. Mediante los Rollups, en el mejor de los casos, se estima que dicho número puede ascender a 4807. Es decir, se múltipla por más de 100 la capacidad del protocolo a la hora de gestionar dicho tipo de transacciones.

La mejora que proporciona los Rollups en la capacidad de ejecución de las transacciones, está condicionada por muchos factores, entre los que se encuentran el caso de uso en el que se aplican y el tipo de transacción a ejecutar (Figura 3).

Rollups Scalability Gain Master Blockchain Online

 Figura 3. Ganancias de escalabilidad obtenidas mediante Rollups. Fuente

Aunque el uso de Rollups conlleva un aumento en la escalabilidad del protocolo Ethereum muy importante, no deja de ser insuficiente para la alta demanda que tiene en la actualidad (y aún mayor que se espera que tenga en un futuro), por lo que, como hemos indicado en anteriores apartados, se necesitan utilizar soluciones de capa 2, como los Rollups, junto con soluciones de capa 1, como las Shard Chains, para dar un salto significativo de gran calado, llegando a manejar del orden de 100.000 transacciones por segundo. 

 

Conclusión

Los Rollups se presentan como una herramienta de capa 1 muy potente, que permite hacer escalar en gran medida a los protocolos blockchain, consiguiendo así que estos puedan manejar un mayor volumen de transacciones por unidad de tiempo.

El hecho de que los Rollups sean una herramienta de uso general, junto con que sean compatibles con la EVM (Ethereum Virtual Machine), así como con soluciones de capa 2, como las Shard Chains, hacen que los Rollups sean un serio candidato a ser implementado en Ethereum a corto plazo.

Los Rollups, junto con las Shard Chains, pueden hacer a Ethereum escalar enormemente, aumentando la capacidad actual para gestionar las transacciones, llegándose a poder gestionar del orden de 100.000 transacciones por segundo.

 

Referencias