Introducción
Las zk-Rollups son una tecnología revolucionaria que busca ayudar a resolver el problema de escalabilidad que existe en la red Ethereum. Y es que, como sabemos, las restricciones de escalabilidad que tienen redes como Bitcoin y Ethereum sobre su blockchain o Capa Uno (Layer 1), puede generar malas experiencias de uso para los usuarios de estas criptomonedas y los servicios que prestan. A eso, podemos sumar el alto costo de las operaciones que se realizan sobre la red, lo que limita la expansión y uso de estas tecnologías.
En Ethereum, esto es un problema de enorme tamaño, teniendo en cuenta la idea de que Ethereum se convierta en una computadora mundial donde puedes ejecutar aplicaciones descentralizadas (DApps) usando tu navegador web. Así que, para hacer frente a esto, zk-Rollups presenta una alternativa para solventar dicha problemática y escalar al Ethereum actual, e incluso, a otras blockchain con iguales problemas.
Pero ¿Qué es realmente un zk-Rollups? ¿Cómo funciona esta tecnología? Pues bien, conozcamos un poco más sobre la misma para responder estas y otras preguntas.
En primer lugar: ¿Qué es un protocolo de Segunda Capa?
Para comprender en primer lugar la tecnología detrás de zk-Rollups, debemos entender que es exactamente un protocolo de segunda capa (Layer 2). Básicamente, un protocolo de segunda capa es un sistema que permite extender la funcionalidad original de una blockchain. Y para lograr esto, lo que se hace es crear una estructura que funciona por sobre la blockchain. De esto, ya hablamos de forma más extensa en nuestro artículo ¿Qué son los protocolos de segunda capa?, y el cual te animo a leer para comprender mejor la utilidad de los mismos.
Dicho esto, entonces podemos ver en principio lo que zk-Rollups busca: ofrecer un medio para mejorar la escalabilidad, construyendo una infraestructura de trabajo que no depende directamente de la blockchain de Ethereum (Layer 1). Esto es posible, porque realmente lo que pasa en zk-Rollups no sucede en la blockchain de Ethereum, sino sobre otra red que al finalizar su trabajo transmite la información necesaria a la blockchain de Ethereum, reduciendo así el tráfico de transacciones en la red principal.
De esta manera, podemos enviar grandes cantidades de información que el protocolo zk-Rollups puede atender, y que luego, cuando los datos han sido completados, simplemente se transmite el resultado a la blockchain de Ethereum para que quede un registro inmutable de ese trabajo. De esa forma, miles de transacciones sobre zk-Rollups pueden sintetizarse en unas pocas transacciones sobre la blockchain de Ethereum.
¿Qué es un Rollup?
Ahora bien, otra pregunta que te harás en este punto es ¿Qué es un Rollup? Pues bien, esta es una solución que se utiliza para agrupar o acumular transacciones en una sola transacción. Esta operación se efectúa en la segunda capa de una blockchain, a la que generalmente se le denomina cadena lateral o sidechain.
Estas cadenas laterales o sidechain, son cadenas de bloques independientes que son compatibles con la cadena principal. Esto permite a las soluciones rollups realizar todas las operaciones de verificación de firmas, ejecución de contratos inteligentes, entre otras cosas, fuera de la cadena principal y, una vez realizado este proceso, se envían los datos acumulados estrictamente necesarios que deben registrarse en la cadena de bloques principal.
Debido a que estas soluciones requieren nodos retransmisores que hayan establecido un vínculo en el contrato acumulativo, la red rollup incentiva a estos, a retransmitir acumulaciones con precisión a la blockchain con el fin de obtener ganancias económicas por su trabajo. De esta forma, las soluciones rollups consiguen reducir las tarifas para los usuarios, mantener una participación abierta y un rápido rendimiento en la ejecución de las transacciones.
Ahora bien, dependiendo de las características del modelo de seguridad que se implemente en el rollup, éste se puede clasificar como:
- Rollup de Conocimiento Cero (zk-Rollup), que ejecuta el cálculo fuera de la cadena y envía una prueba de validez a la cadena principal.
- Rollup Optimista (Optimistic Rollup), que asume que las transacciones son válidas por defecto y solo ejecuta el cálculo, a través de una prueba de fraude, en caso de un desafío
Rollups y zk-SNARK, un par imparable
Ahora nuestro interés está centrado en las zk-Rollups, y como su nombre lo indica son Rollup de Conocimiento Cero. Este "conocimiento cero" es posible gracias a las conocidas pruebas criptográficas zk-SNARK o "Pruebas de Argumento de Conocimiento No Interactivo Sucinto de Conocimiento Cero". ¿Suena complejo? Realmente sí, son un tipo de prueba criptográfica y matemática muy compleja, pero que nos ofrece múltiples ventajas, como el hecho de ser anónimas, muy seguras y adicionalmente, muy rápidas de realizar. La tecnología lleva usándose en blockchain un tiempo, en especial en criptomonedas como Zcoin y Zcash.
Básicamente las pruebas zk-SNARK lo que permiten es construir una prueba en la que uno puede probar la posesión de cierta información (una clave secreta, por ejemplo), sin revelar esa información, y sin ninguna interacción entre el probador y el verificador. Así, zk-SNARK es utilizado en zk-Rollup, precisamente para construir esas pruebas de validez de una transacción antes de ser registrada en la blockchain de Ethereum.
zk-Rollup, una brillante forma de escalar
La unión de todo lo anterior nos ofrece a las zk-Rollup, y gracias a ellas es posible mejorar la escalabilidad de redes como Ethereum, y cualquier otra que busque implementar este sistema. La idea es que zk-Rollup cargue con todo el peso de transacciones que realizan las personas, para luego emitir sólo los resultados finales a la blockchain. Una vez allí, estos datos quedarán inmutables y públicos, para los casos en los que se necesita auditar y estar seguros de que dichas acciones se han realizado.
Veamos la utilidad de esto con un sencillo ejemplo:
Si en este momento, emitimos 1 millón de transacciones a la red Ethereum, lo más probable es que estas sean recibidas por la red, pero atendidas de forma lenta por la red. Esto se debe a que los bloques en Ethereum, tienen un límite de cuanto Gas pueden incluir, y las transacciones pueden ocupar bastante Gas dependiendo de la complejidad de las mismas. Al final, veremos dos cosas: primero, la red se verá saturada y nuestras transacciones tardarán en procesarse. Y segundo, el costo del Gas se dispara haciendo que nuestras transacciones y las que le sigan tengan que pagar más comisión para poder ser atendidas. Ya esto lo hemos visto en Ethereum, y en otras criptos, y es un freno a la adopción masiva.
Ahora bien, con zk-Rollups esto cambia radicalmente. En primer lugar, porque es la red zk-Rollups la que recibe todas esas transacciones, y debido a que sus reglas de consenso y de emisión son distintas, es posible verificar y atender estas operaciones de forma más rápida. Adicional, zk-Rollups se encarga de verificar que nadie rompa las reglas, como un doble gasto u otra acción maliciosa, y al final, tras procesar todo ese millón de transacciones, zk-Rollups emite una (o más, en caso de ser necesario) transacciones a la red de Ethereum para que sea incluida en la blockchain.
Al final, se obtienen dos registros de operaciones, uno dentro de la red zk-Rollups, y otro dentro de Ethereum. Pero el millón de transacciones solo quedan registradas en zk-Rollups, mientras que en Ethereum solo queda patente el resultado sintetizado de esas operaciones. Es de esta forma, que zk-Rollups puede ayudarnos a mejorar la escalabilidad de Ethereum y otras criptos.
¿Cómo funciona un zk-Rollups?
El esquema que se utiliza en zk-Rollup se pueden evidenciar dos tipos de usuarios: los transactores y los retransmisores. Los transactores crean su transferencia y la transmiten a la red. Los datos de transferencia constan principalmente de:
- una dirección indexada con datos "De" y "Para"
- un valor para realizar la transacción,
- la tarifa de la red,
- un nonce (un número aleatorio de un solo uso para la autenticación de la transacción).
Una versión indexada de 3 bytes de las direcciones reduce las necesidades de recursos de procesamiento. El valor de la transacción que es mayor o menor que cero, crea un depósito o retiro respectivamente. El contrato inteligente registra los datos en dos árboles Merkle, las direcciones en un árbol Merkle y los importes de transferencia en otro.
Por otro lado, los retransmisores recopilan una gran cantidad de transferencias para crear un resumen (rollup). El trabajo de los retransmisores consiste en generar la prueba zk-SNARK. Esta prueba es un hash que representa el estado de la blockchain.
Es decir, con esta prueba zk-SNARK se compara una instantánea de la blockchain antes de las transferencias con otra instantánea de la blockchain después de las transferencias (por ejemplo, los valores de una wallet) e informa sólo los cambios en un hash verificable a la red principal.
Cabe señalar que cualquiera puede convertirse en un retransmisor siempre que participe con el monto requerido en el contrato inteligente. Esto incentiva al retransmisor a no alterar ni retener un rollup.
Relacionado: Árbol Merkle, la clave para la verificación de la blockchain
Objetivos de los zk-Rollups
Entre los objetivos de los ZK-Rollups se pueden mencionar:
- Procesar transacciones a mayor velocidad.
- Evitar los problemas que ocurren con Plasma y Optimistic Rollup.
- Reducir los costos por tarifa de transacción.
- Reducir la cantidad de datos necesarios para registrar una transacción.
- Mantener el esquema descentralizado de las transacciones.
- Apuntalar la seguridad, privacidad y anonimato de las transacciones.
Ventajas y desventajas de la tecnología
Ventajas
Entre sus ventajas se tiene:
- Tarifas reducidas por transferencia de usuario.
- Más rápido que Optimistic Rollup y Plasma.
- Los bloques se calcularán en un modelo informático paralelo que fomenta la descentralización.
- La menor cantidad de datos contenidos en cada transacción aumenta el rendimiento y la escalabilidad de la capa 2.
- No requiere una verificación de juego fraudulento como Optimistic Rollup, que puede retrasar los retiros hasta dos semanas.
Desventajas
Entre sus desventajas se pueden anotar:
- La dificultad de calcular la prueba de conocimiento cero requerirá la optimización de los datos para obtener el máximo rendimiento.
- Limitado a transferencias simples, no compatible con EVM.
- Las pruebas de validez son intensas de calcular, no vale la pena para aplicaciones con poca actividad en la cadena.
- La configuración inicial de zk-Rollups promueve un esquema centralizado.
- El esquema de seguridad asume un nivel de confianza no verificable.
- La computación cuántica representa una amenaza para piratear la cadena de bloques.
Aplicaciones sobre Blockchain
Una de las aplicaciones más resaltadas es la escalabilidad tanto en rendimiento como en la reducción de las tarifas que se cobran en Ethereum por concepto de comisiones. En este sentido ya varias empresas han anunciado la posible adopción de esta solución para sus respectivas plataformas y aplicaciones.
Al tratarse de transacciones bajo un esquema de prueba de conocimiento cero, no es necesario que se revelen datos sensibles de las cuentas para realizar una transacción, sólo se suministran los datos de verificación de que los datos de dichas cuentas son auténticos.
Ya en el cripto espacio se pueden constatar nombres de aplicaciones criptos como: Matter Labs zkSync, Loopring, Starkware, Azteca 2.0, que ya implementan las funcionalidades de ZK-Rollup.
Conclusiones
Para Ethereum las soluciones acumulativas pueden desarrollar un gran potencial. No obstante, aún existen detalles técnicos que se deben resolver para hacer de esta tecnología una buena opción. Uno de esos detalles es el de mejorar la capacidad de comunicación entre diversas DApps que operan en DeFi y las zk-Rollups.
Otro punto importante es la integración de la funcionalidad de contrato inteligente. Este es uno de los mayores desafíos para zk-Rollup, aunque ya se avanzan estudios en este sentido. Además de la ejecución de pruebas en el aspecto computacional que permitan reducir aún más el tiempo que lleva validar una transacción. Por otro lado, se adelantan investigaciones en zk-SNARK con el objetivo de hacer más eficiente el proceso de prueba. Esto es algo que puede ayudar a que zk-Rollup tenga una configuración mucho más segura.
Sin embargo, a pesar de estos problemas, los rollups se han convertido en la estrategia principal para escalar Ethereum hasta que ETH 2.0 esté activo completamente. En tal sentido, no cabe duda de que hay mucho que desarrollar para llevar a zk-Rollups a la mayoría de los usuarios que esperan mejoras en la escalabilidad, privacidad, seguridad, anonimato y bajo costo de comisiones en sus operaciones en el cripto espacio de Ethereum.
Relacionado: Ethereum 2.0, conoce el futuro de Ethereum