Sobre el futuro de Ethereum
Charles Guillemet, CTO de Ledger, reflexiona sobre el futuro de Ethereum y el potencial del protocolo para admitir la adopción generalizada de la Web3.
Qué debes saber: |
– Ethereum, la segunda mayor cadena de bloques del mundo por capitalización del mercado, ha realizado recientemente una importante actualización de software llamada The Merge, en la que ha cambiado el consenso de prueba de trabajo por el de prueba de participación. – Aunque la transición ha sido un éxito, todavía hay preguntas pendientes sobre la capacidad de aumento de escala y la preparación de Ethereum para la siguiente fase del desarrollo de la Web3. – En este artículo se analizan los retos del aumento de escala de Ethereum y se evalúa su capacidad para satisfacer las necesidades para la adopción generalizada. Sostiene que, aunque aún no existe ninguna solución perfecta para el aumento de escala, las soluciones de Capa 2, como los rollups optimistas y de validez, tienen el mayor potencial para mejorar la capacidad de aumento de escala con una buena solución de compromiso para el trilema de la cadena de bloques. – Más en concreto, los rollups optimistas y de validez, que utilizan la tecnología de prueba de conocimiento cero (ZKP), serán clave para dar forma al futuro de Ethereum, ya que permitirán transacciones que no requieren confianza, complejas y sin permisos a escala. |
Aumento de escala de Ethereum: la búsqueda de una solución
Ethereum, como muchas cadenas de bloques, tiene actualmente una capacidad limitada de procesamiento de transacciones. A pesar de que admite transferencias de ETH y miles de dApps, el aumento de su uso ha ralentizado y encarecido las transacciones.
Para mitigar las elevadas tarifas, se han tomado decisiones de diseño poco seguras, como los servicios centralizados off-chain para mercados de NFTs. La introducción de la EIP-1559 mejoró el cálculo de tarifas y la incentivación, pero no ha mejorado significativamente la capacidad de aumento de escala. El reto de la capacidad de aumento de escala se comprende mejor en el contexto del popular trilema de la cadena de bloques: capacidad de aumento de escala, descentralización y seguridad.
El trilema de la cadena de bloques afirma que no es posible conseguir simultáneamente las tres propiedades: descentralización, seguridad y capacidad de aumento de escala. Si se sacrifica la descentralización, es mucho más sencillo crear un sistema seguro y con capacidad de aumento de escala, como ya ha demostrado la Web2. Si se prioriza a la capacidad de aumento de escala sacrificando el mecanismo de consenso, se obtiene una cadena de bloques descentralizada, poco segura y carente de sentido. Resolver el trilema de la cadena de bloques es increíblemente complejo y es un problema de difícil solución desde hace más de una década.
Aumento del rendimiento: varias estrategias
A lo largo de los años, se ha recurrido a muchas soluciones para resolver el trilema de la cadena de bloques de Ethereum. Una sugerencia popular es crear bloques de mayor tamaño o más bloques por segundo. Aunque puede parecer una buena idea, intensifica las demandas que deben atender los nodos de la cadena de bloques y los validadores o los mineros en relación con el consenso, lo que aumenta la centralización. También ralentiza las reorganizaciones, lo que aumenta los riesgos para la seguridad.
Una alternativa es crear una cadena lateral para reducir la carga de la cadena principal, como se observa en la red Polygon. Este sistema requiere soluciones de compromiso en materia de seguridad, pues depende de un consenso más débil que el existente en Ethereum (menos capitalización del mercado). Aunque puede ser adecuado para casos de uso específicos, suele provocar centralización y no resuelve totalmente los problemas de capacidad de aumento de escala de Ethereum. Y, de todos modos, sigue lejos de las decenas de miles de solicitudes necesarias para implementar un sistema similar al de Visa.
Soluciones de Capa 2 y sharding: ¿la respuesta a los retos de capacidad de aumento de escala de Ethereum?
El sharding y las soluciones de Capa 2 se consideran, en general, las mejores opciones para que Ethereum aumente de escala sin abandonar el trilema de la cadena de bloques.
Por una parte, el sharding de la cadena de bloques es desde hace tiempo considerado la clave de la capacidad de aumento de escala en el mundo de la cadena de bloques. Fue la función principal de Eth2.0 en 2019, con el cambio al mecanismo de firma BLS, el mecanismo de consenso de prueba de participación y la implementación de eWASM. Por otra parte, las soluciones de Capa 2 han avanzado rápidamente mediante la investigación continua en mecanismos de rollup. Exploremos el estado actual de estas dos estrategias paralelas y lo que les puede deparar el futuro.
¿Cómo funciona el sharding de la cadena de bloques?
El término sharding proviene de las bases de datos, donde dividimos horizontalmente una base de datos en piezas manejables de menor tamaño llamadas shards (fragmentos). Cada shard es una base de datos independiente que contiene un subconjunto de datos. El sharding se utiliza para aumentar de escala las bases de datos distribuyendo los datos y las consultas entre varios servidores, lo que permite que la base de datos gestione un mayor volumen de datos sin necesidad de contar con un único y potente servidor.
Esta idea de aprovechar el sharding en las cadenas de bloques se hizo popular rápidamente entre los desarrolladores. El sharding de la cadena de bloques divide la red en subredes de menor tamaño llamadas shards, y los shards permiten procesar transacciones en paralelo. En una cadena de bloques con sharding, cada shard es una cadena independiente que funciona por su cuenta. Esto significa que cada nodo, minero o validador puede centrarse en un shard concreto para crear un consenso local. En primer lugar, esto permite que las transacciones se procesen en paralelo. En segundo lugar, cada shard tiene que gestionar menos transacciones. Parece perfecto, así que, ¿dónde está la trampa?
Retos del sharding: consenso, comunicación entre shards y seguridad
Con el sharding de la cadena de bloques, no es fácil definir el consenso general. ¿Cuál es el consenso global de la red? ¿Es la conjunción de todos los consensos locales? ¿Cómo y dónde se fijan estos consensos locales para crear uno global en el que pueda confiar todo el mundo? Estas preguntas no son fáciles de responder.
Otro reto importante de la implementación del sharding es la comunicación entre shards. Con las bases de datos no existe este problema, porque los datos se dividen entre diferentes shards, lo que te permite leerlos o escribirlos de forma independiente sin problemas. En lo que se refiere a los shards de la cadena de bloques que ejecutan código, esto es mucho más complejo. Cada shard debe poder ejecutar su propio código, consultar el estado de un shard diferente y ejecutar código en otro. No es sencillo.
Esta dificultad del sharding también está relacionada con el problema de la seguridad. Los expertos han estudiado este problema, y se ha determinado que los diferentes mecanismos de sharding son propensos a muchas nuevas formas de ataques. En primer lugar, simplemente pone en tela de juicio el mecanismo de consenso. Si existen 10 shards y los mineros se distribuyen por shard, tomar el control de un shard es 10 veces más barato que tomar el control de toda la cadena de bloques. Esquemáticamente, el ataque del 51% se convierte en un ataque del 5,1%. Una solución a este problema es cambiar el mecanismo de consenso de prueba de trabajo por el de prueba de participación. Este fue el principal motivo de la transición de Ethereum a la prueba de participación.
En lo que se refiere a la seguridad, el efecto de The Merge se ha debatido mucho. En cuanto a la descentralización, el consenso actualizado de Ethereum ha favorecido la centralización, pues la propiedad de los tokens determina el control de la red.
En lo referente al nuevo consenso de Ethereum, varios parámetros han incentivado la centralización:
- Ejecutar un nodo de Ethereum no es sencillo, pues requiere recursos y tiempo en actividad. Simplemente, impide que tu billetera lo implemente y se ejecute en una laptop o incluso en un móvil.
- El umbral de 32 ETH y el hecho de que no fuera posible retirarlos de la participación hasta una fecha desconocida crearon una participación de pooling y líquida en la que Lido y los exchanges se quedaron con la mayor parte del mercado. Hoy, 4 nombres controlan más del 55% de las monedas puestas en participación en la cadena de bloques de Ethereum (Lido 29,2%, Coinbase 13,1%, Kraken 7,6% y Binance 6,2%).
En conjunto, el sharding de la cadena de bloques es una idea interesante para mejorar la capacidad de aumento de escala, pero requiere una arquitectura compleja, en concreto para definir el consenso general e implementar un protocolo eficiente entre shards. Se ha trabajado mucho en pos de estos objetivos, pero aún estamos lejos de ponerlos en práctica y aprovechar sus efectos sobre el trilema de la cadena de bloques.
Rollups al rescate
Los rollups comprimen varias transacciones en una sola transacción para que Ethereum la ejecute, lo que permite la ejecución off-chain de muchas transacciones con la seguridad de Ethereum para las liquidaciones. Existen dos implementaciones principales de esta idea:
- Rollups optimistas, que permiten a los usuarios emitir pruebas de fraude en caso de disputa.
- Rollups ZK, donde la red L2 emite pruebas de validez.
Los rollups optimistas y el problema de la finalidad:
Los rollups optimistas se han diseñado como los rollups que más tienen en cuenta la EVM. Son optimistas porque asumen que los usuarios no van a enviar transacciones fraudulentas, lo que permite la escritura directa en la cadena de bloques.
Existe un mecanismo que utiliza pruebas de fraude que los validadores de la L2 pueden inicializar para comprobar las transacciones off-chain realizadas en un plazo de pocos días (7 días en Optimism). Una prueba de fraude válida identifica los pasos fraudulentos de la transacción y provoca la revocación de la transacción y una penalización para el validador responsable de la aprobación. Esto aumenta el rendimiento de las transacciones y, al mismo tiempo, garantiza la seguridad de la cadena principal de Ethereum.
Sin embargo, los rollups optimistas traen consigo un nuevo reto: la finalidad. En las cadenas de bloques, las transacciones confirmadas se consideran permanentes e irreversibles, pero esto depende del mecanismo de consenso. Por ejemplo, las cadenas de prueba de trabajo consideran que las transacciones son finales cuando la probabilidad de una reorganización es baja, y las transacciones de Bitcoin son finales tras 6 confirmaciones. Con los rollups optimistas, las transacciones pueden revocarse después de varios días, lo que crea un reto de finalidad y una solución de compromiso diferente.
Otro tipo de rollup: los rollups ZK
Los rollups ZK, llamados así porque utilizan la tecnología de prueba de conocimiento cero (ZKP) como los SNARKs o los STARKs, son otro tipo de rollup. Como la propiedad de conocimiento cero no es en realidad útil, sería más exacto llamarlos rollups de validez.
El rollup ejecuta un lote de transacciones y produce una prueba de validez, verificada por un contrato inteligente en la cadena de bloques de Ethereum, que confirma el resultado final de las transacciones. La prueba criptográfica se genera utilizando primitivas criptográficas de conocimiento cero.
En general, las pruebas de conocimiento cero permiten que una parte (el demostrador) demuestre la posesión de determinada información a otra parte (el verificador) sin revelar la información en sí. El verificador puede confiar en la verdad de la declaración del demostrador sin conocer su contenido.
Los rollups ZK, diseñados originalmente para garantizar la confidencialidad, utilizan las pruebas de conocimiento cero con un objetivo muy diferente: la compresión y la computación de confianza. Las dos tecnologías de conocimiento cero más importantes son los zk-STARKs (argumento de conocimiento transparente escalable de conocimiento cero) y los zk-SNARKs (argumento de conocimiento no interactivo sucinto de conocimiento cero).
El problema de la disponibilidad de datos en la L2:
Como hemos visto, las tecnologías de ZKP garantizan la validez del estado de la L2, pero la prueba, por sí misma, no proporciona acceso al estado. Para aumentar el rendimiento, la ejecución se realiza off-chain, pero los datos deben seguir siendo fácilmente accesibles para la reconstrucción. Para conseguir esto, los datos de transacción se envían como calldata en Ethereum para garantizar que los datos estén disponibles para la futura reconstrucción. Estos datos también pueden guardarse en un almacenamiento descentralizado de confianza, como el IPFS o Arweave, para permitir que cualquiera reconstruya la L2 y aproveche los incentivos internos del almacenamiento descentralizado.
Sería aún mejor poder almacenar estos datos on-chain, pero los datos solo sirven para reconstruir el estado o la verdad de la L2 y no se ejecutan, por lo que se trata de un uso ineficiente y caro de la capacidad de la cadena de bloques.
Para superar este obstáculo, los desarrolladores de Ethereum han propuesto dos EIPs: la EIP-4488 y la EIP-4844 (¡buena suerte con las confusiones!). La primera reduce el coste de gas de los calldata y la segunda crea un nuevo tipo de transacción para el almacenamiento de datos de la L2. Estos datos son inmutables y de solo lectura, y la EVM no puede acceder a ellos, por lo que no se pueden ejecutar.
Estas EIPs son el punto exacto en el que el plan de desarrollo de los rollups ZK se encuentra con el plan de desarrollo del sharding de ejecución: ambos proponen el mismo concepto con diferentes objetivos. El objetivo de la EIP-4488 es almacenar datos esenciales de la L2, mientras que la EIP-4844, también llamada Proto-danksharding, es un paso hacia la implementación del danksharding y el sharding de ejecución.
Danksharding:
El danksharding supone dividir grandes conjuntos de datos en partes de menor tamaño para la separación y el procesamiento, a menudo en paralelo. Este método se utiliza en los campos del big data y la inteligencia artificial, donde los conjuntos de entrenamiento pueden ser muy grandes.
Proto-danksharding (EIP-4844) no implementa sharding, pero ofrece un almacenamiento más barato de los calldata, que puede ser un almacenamiento con sharding. Este almacenamiento más barato de los calldata mejorará mucho la capacidad de aumento de escala de Ethereum en la L2, lo que puede hacer redundante el sharding.
Proto-danksharding:
Con Proto-danksharding, la cadena de bloques de Ethereum tendrá computación no escalable y datos escalables. Y los rollups ZK, básicamente, convierten estos datos escalables y la computación no escalable pero de confianza en computación escalable.
Los rollups ZK en el trilema de la cadena de bloques:
Los rollups ZK presentan importantes ventajas en materia de capacidad de aumento de escala sin cambiar las propiedades subyacentes de la cadena de bloques. Verificar la prueba de conocimiento cero on-chain es el requisito principal, mientras que la disponibilidad de los datos puede implementarse off-chain. A largo plazo, se puede esperar que las soluciones de Capa 1 se vuelvan sencillas, seguras y, con un poco de suerte, descentralizadas, y que las soluciones de Capa 2 proporcionen capacidad de aumento de escala.
¿Dónde está la trampa?
Es evidente que la L2 puede aumentar mucho de escala. Sin embargo, para las liquidaciones on-chain (en la L1), es necesario producir una prueba de validez sobre el estado general de la L2, lo que provoca problemas de centralización. Actualmente, los diseños de la L2 solo tienen un demostrador, lo que significa que pueden censurar tus transacciones. En realidad, no pueden inmovilizar tus activos de la L1, pues existen puentes nativos. La investigación continúa para superar este reto y permitir que otras partes puedan emitir pruebas, pero todavía hay algunas preguntas complicadas pendientes sobre el arbitraje entre estas pruebas. Este es un problema importante que hay que resolver.
Starknet ha identificado esto como un tema importante del plan de desarrollo, mientras que Arbitrum divide la responsabilidad entre la bandeja de entrada del secuenciador y la bandeja de entrada retrasada para garantizar que los fondos puedan recuperarse en caso de censura.
Reflexiones finales
Como hemos visto, la capacidad de aumento de escala puede tener un costo para la seguridad y la descentralización, mientras que las soluciones de Capa 2 se consideran las formas más prometedoras de mejorar la capacidad de aumento de escala sin que ello afecte a los demás aspectos del trilema de la cadena de bloques.
Los rollups optimistas y de validez, que utilizan la tecnología de ZKP, serán fundamentales para dar forma al futuro de Ethereum, permitiendo transacciones que no requieren confianza, complejas y sin permisos a escala. Los rollups de validez tienen una importante ventaja sobre los rollups optimistas: la finalidad rápida. El plan de desarrollo de Ethereum ha cambiado recientemente para admitir estos rollups a nivel de cadena de bloques.
El futuro de la capacidad de aumento de escala de la cadena de bloques incluye dApps complejas ejecutándose en soluciones de Capa 2 (o rollups recursivos), lo que permitirá una capacidad de aumento de carga prácticamente infinita, con una Capa 1 descentralizada y segura. A largo plazo, la Capa 1 podría convertirse en capas de liquidación, y la complejidad de las dApps podría moverse a las soluciones de Capa 2.