Saltar al contenido
0%

Guía para desarrolladores sobre soluciones de escalabilidad de Ethereum

Alchemy team headshot

Escrito por Alchemy

Publicado el 17 de mayo de 202211 min de lectura

El énfasis de Ethereum en la descentralización y la seguridad implica que las transacciones se procesan lentamente. Esto afecta el throughput de la red e impacta la capacidad de las aplicaciones descentralizadas para escalar.

Se han propuesto muchos diseños para resolver los problemas de escalabilidad de Ethereum, cada uno con distintos beneficios. Esta guía presenta las soluciones de escalado de Ethereum y explica cómo funcionan y por qué importan.

¿Qué es la escalabilidad?

La escalabilidad se refiere a la capacidad de un sistema de manejar aumentos exponenciales de uso sin sacrificar funcionalidad. En el contexto de la tecnología blockchain, la escalabilidad es la capacidad de una blockchain de soportar más transacciones sin efectos sobre su funcionalidad.

Actualmente, la capacidad de Ethereum para procesar transacciones está limitada a 7-15 transacciones por segundo (TPS). En cambio, las bases de datos centralizadas tradicionales —como Oracle Database y Microsoft SQL Server— pueden procesar miles de transacciones por segundo.

gráfico de transacciones por segundo de ethereum

Fuente: Blockchair

Dos formas en que el diseño de ethereum afecta la escalabilidad

Ethereum tiene bajo throughput y velocidades de procesamiento lentas porque prioriza la descentralización y la seguridad por encima de la escalabilidad (el trilema de la escalabilidad).

Estas son algunas formas en que el diseño de Ethereum afecta la escalabilidad:

1. El algoritmo de consenso de Ethereum procesa las transacciones de forma secuencial

Ethereum usa proof of work (PoW), lo que significa que las transacciones en la red deben ser aceptadas y validadas por todos los nodos. Esto favorece la descentralización y, más importante aún, la seguridad.

La desventaja es que la ejecución secuencial de transacciones afecta la finalidad de las transacciones (el tiempo que toma confirmar una transacción). Esto contribuye aún más a la incapacidad de Ethereum de soportar tasas altas de TPS.

2. Ethereum limita el tamaño de los bloques a 1MB

Ethereum limita la cantidad de datos que puede contener un bloque minado (1MB) porque limitar el tamaño del bloque mejora la descentralización, ya que permite a los nodos almacenar el historial de la blockchain de forma más eficiente. Bloques más grandes dificultan que las personas ejecuten nodos completos, perjudicando la descentralización.

Sin embargo, el límite de 1MB reduce la cantidad de datos de transacciones que los mineros pueden incluir en un bloque, afectando el throughput de la red. Los tamaños de bloque pequeños también afectan el costo del gas, el recurso computacional necesario para ejecutar operaciones en la Ethereum Virtual Machine.

Como los mineros tienen poder computacional finito, a menudo se ven forzados a priorizar las transacciones con comisiones más altas. Esto crea una especie de guerra de ofertas entre los usuarios de Ethereum y provoca aumentos astronómicos en las comisiones de transacción.

¿Qué son las soluciones de escalado de Ethereum?

Las soluciones de escalado de Ethereum son plataformas diseñadas específicamente para mejorar la ejecución de transacciones en la red Ethereum. Soluciones de escalado como los Rollups de layer 2 y las sidechains son protocolos que usan distintos mecanismos para aumentar el throughput de la red.

diagrama de soluciones de escalado de ethereum

Fuente: Reddit

Soluciones de escalado de layer 1 vs layer 2

Las soluciones de escalado pueden dividirse en dos categorías generales, "on-chain" y "off-chain", diferenciadas según su punto de ejecución.

Soluciones de escalado de layer 1

El escalado de layer 1 implica hacer cambios a la red blockchain y reescribir la capa base. La descripción "on-chain" significa que las mejoras de escalado a Ethereum se ejecutan en la propia blockchain.

Las layer 1 pueden escalar aumentando el tamaño de los bloques

Una posible mejora de escalado en layer 1 es aumentar el tamaño del bloque. Si el tamaño de bloque de 1MB de Ethereum aumentara, los mineros tendrían más espacio para incluir datos de transacciones adicionales en los bloques.

Si bien aumentar el tamaño de bloque de Ethereum llevaría a un incremento en las tasas de TPS, el efecto secundario es un avance lento hacia la centralización, porque a medida que los bloques crecen, el tamaño de la blockchain aumenta, dificultando la ejecución de un nodo completo (salvo que se tenga una supercomputadora). Por esta razón, la comunidad de Ethereum ha descartado bloques más grandes como solución de escalado.

Las layer 1 pueden escalar procesando transacciones en paralelo mediante el sharding de blockchain

El sharding de blockchain es una mejora de escalabilidad que introduce la ejecución paralela de transacciones en lugar del modelo de ejecución secuencial predeterminado que usa Ethereum. En el sharding, la blockchain se divide en cadenas más pequeñas (shards) que validan y procesan transacciones por separado.

Consideremos cómo funciona Ethereum actualmente:

Las transacciones se transmiten a través de toda la red hasta que pueden validarse. El sharding no requiere que las transacciones sean aprobadas por todos los nodos. En cambio, cada shard tiene validadores (llamados collators) encargados de aprobar transacciones.

Cada collation (un conjunto de transacciones en las shard chains) debe estar firmada por ⅔ de los collators. Además, la collation propuesta debe agregarse a la cadena principal antes de alcanzar finalidad. En conjunto, estas medidas ayudan a garantizar la seguridad del sistema.

Con el sharding, Ethereum puede aumentar el TPS sin sacrificar descentralización ni seguridad. Como las shard chains procesan distintas transacciones de forma concurrente, la capacidad de procesamiento total de la red aumenta. Además, los participantes de la red pueden seguir comprobando la validez de las collations de los shards mediante pruebas criptográficas.

diagrama de sharding de ethereum
Fuente: Genesis Block

Fuente: Genesis Block

Soluciones de escalado de layer 2

Las mejoras de escalado de layer 2 (L2) se llaman así porque se ejecutan fuera de la cadena principal (layer 1). También llamadas soluciones "off-chain", el escalado de layer 2 implica procesar transacciones en una red separada que depende de la cadena principal para la seguridad.

Las soluciones L2 suelen diseñarse con énfasis en la velocidad de transacción y la escalabilidad; la descentralización y la seguridad son aquí una preocupación menor. Como publican los datos de las transacciones en la capa principal de Ethereum, las L2 pueden beneficiarse de la descentralización y la seguridad de la mainnet. Además, como las soluciones L2 se construyen sobre Ethereum, no necesitan un token nativo propio.

Estos protocolos off-chain pueden agrupar múltiples transacciones en una sola transacción y agregarla a la cadena principal. Esto reduce la presión sobre la red y mejora el potencial de las apps para escalar a medida que crece el uso.

Ejemplos de soluciones de escalado de layer 2:

  • Rollups
  • State channels
  • Plasma
  • Validium

Layer 2 vs. sidechains

Una sidechain es una blockchain separada que interactúa con Ethereum Mainnet pero no depende de ella para la seguridad. Las sidechains se conectan con Ethereum a través de un puente cross-chain, que permite transferir activos entre ambas cadenas.

Las sidechains son buenas para la escalabilidad porque están diseñadas con un conjunto distinto de características que permiten un throughput alto. Por ejemplo, la sidechain de Polygon usa un algoritmo de consenso proof of stake (PoS) para transacciones más rápidas.

La principal diferencia entre las soluciones de layer 2 y las sidechains radica en sus garantías de seguridad. Mientras las redes L2 gozan de las garantías de seguridad de Ethereum, las sidechains no.

Una sidechain está asegurada por su propio mecanismo de consenso, mientras que las L2 se benefician del consenso de Ethereum. Por eso muchos consideran que las L2 son más seguras que las sidechains.

¿Por qué son necesarias las soluciones de escalado para Ethereum?

Las buenas soluciones de escalado de Ethereum ayudan a brindar a los desarrolladores y usuarios de web3 comisiones de gas más bajas y transacciones más rápidas, manteniendo además la seguridad de las transacciones.

Por eso las soluciones de escalado son necesarias para Ethereum:

1. Comisiones de transacción más bajas

El problema de las comisiones de gas de Ethereum se ha convertido en blanco de críticas generalizadas. Las mejoras de escalado pueden reducir la congestión de la red y provocar caídas significativas en los costos de transacción.

Precios de gas más bajos se traducen en una mejor experiencia de usuario y mayor adopción de las apps. Los usuarios no tendrán que lidiar con transacciones fallidas ni pagar comisiones de gas exorbitantes.

2. Transacciones más rápidas

Muchas soluciones de escalado se crearon específicamente para mejorar la capacidad de Ethereum de manejar más transacciones en menos tiempo.

Por ejemplo, los rollups pueden agrupar miles de transacciones off-chain en una sola transacción on-chain. De forma similar, el sharding aumenta el throughput al favorecer el procesamiento paralelo de transacciones.

El resultado neto de estas mejoras es un aumento en las tasas de transacciones por segundo (TPS). Aunque las estimaciones varían, muchos esperan que las L2 y el sharding lleven el TPS de Ethereum a miles.

3. Mayor seguridad

Las L2 son excelentes para escalar Ethereum sin disminuir la seguridad de la red. A diferencia del escalado on-chain, los proyectos de escalado off-chain no afectan la descentralización de Ethereum.

Aunque estas L2 son cadenas separadas, su seguridad está estrechamente vinculada a la blockchain de Ethereum. Esto significa que los usuarios pueden interactuar con estos proyectos de forma segura, aprovechando los beneficios de la escalabilidad, sin arriesgar sus activos.

Las cinco soluciones de escalado de Ethereum más populares

Las cinco soluciones de escalado de Ethereum más populares son: rollups, sidechains, state channels, plasma chains y Validium.

1. Rollups

Los rollups combinan o "agrupan" múltiples transacciones ejecutadas off-chain en un lote y lo envían a la cadena principal. Un solo rollup puede contener cientos, si no miles, de transacciones comprimidas para reducir el volumen de transacciones que debe procesar la cadena principal.

Además de mejorar la escalabilidad, los rollups ofrecen niveles de seguridad similares a los de Ethereum mismo, porque las transacciones en los rollups están ancladas a la cadena L1, lo que garantiza la finalidad de las transacciones.

Existen dos tipos principales de rollups: los optimistic rollups y los zero-knowledge rollups. Cada tipo difiere en cómo se computan y publican las transacciones en Ethereum:

Los zero-knowledge rollups o ZK-rollups realizan la computación off-chain y generan una prueba criptográfica llamada Succinct Non-Interactive Argument of Knowledge (SNARK) o Succinct Transparent Argument of Knowledge (STARK). Estas "pruebas de validez" garantizan a los nodos de la cadena principal la validez de los lotes de transacciones.

Los optimistic rollups asumen que las transacciones son válidas por defecto y no generan pruebas de validez para cada lote de transacciones. Sin embargo, la validez de las transacciones en un optimistic rollup puede impugnarse mediante una fraud proof.

Entonces, ¿cómo se comparan ambos esquemas de rollup entre sí? Los ZK-rollups son más seguros ya que generan pruebas de validez, aunque esto los hace más lentos que los optimistic rollups.

Los ZK-rollups son mecanismos complejos, lo que dificulta programar compatibilidad con la EVM en ellos. Como resultado, los ZK-rollups tienen funcionalidad limitada en comparación con los optimistic rollups.

Polygon está trabajando en una zero-knowledge EVM (zkEVM) para aumentar la funcionalidad de los zero-knowledge rollups en la red Ethereum con sus planes para Hermez 2.0.

L2 de Ethereum que usan optimistic rollups

  • Optimism
  • Arbitrum
  • Boba Network
  • Immutable X

L2 de Ethereum que usan ZK rollups

  • zkSYNC
  • Loopring
  • dYdX
  • StarkNet

Como desarrollador, puedes integrar rollups en tu dApp para mejorar la finalidad de las transacciones y la escalabilidad. De esta forma, tus usuarios no tendrán que lidiar con comisiones de gas altas, transacciones fallidas ni velocidades de procesamiento lentas, algo que ocurre con frecuencia en Ethereum.

2. Sidechains

Una sidechain es un tipo de solución de layer 2 que consiste en una blockchain separada que opera en paralelo con la Ethereum Mainnet. Estas diferencias pueden ser incentivos criptoeconómicos, mecanismos de consenso, etc.

Las sidechains diseñadas específicamente para Ethereum son compatibles con la Ethereum Virtual Machine (EVM) y pueden soportar smart contracts. Esto significa que puedes desplegar proyectos en sidechains y aprovechar sus mejoras de escalabilidad para las apps.

Los puentes cross-chain son necesarios para conectar sidechains con la plataforma de smart contracts de Ethereum. Como su nombre lo indica, un puente de blockchain provee una vía para que los usuarios se muevan entre la cadena principal y la sidechain.

Para usar un puente hay que bloquear algunos activos (ETH en este caso) en la cadena de origen. Después, se genera una cantidad equivalente de activos en la sidechain y se deposita en tu wallet.

Luego puedes transaccionar libremente en la sidechain, aprovechando su capacidad superior de procesamiento de transacciones. Como se explicó antes, las sidechains están diseñadas para ofrecer escalabilidad y emplean distintos mecanismos para lograrlo.

Ejemplos de sidechains de Ethereum:

  • Polygon
  • xDAI
  • SKALE

Otras blockchains layer 1 (L1) alternativas también pueden funcionar como sidechains de Ethereum, especialmente las blockchains compatibles con la EVM. Estas L1 alternativas suelen ofrecer beneficios como comisiones de gas más bajas, mejor finalidad de transacciones y, en ciertos casos, funcionalidad más rica.

Ejemplos de L1 compatibles con la EVM:

  • Avalanche
  • Fantom
  • Binance Smart Chain

3. State channels

Los state channels son soluciones de escalado off-chain que permiten a dos partes transaccionar sin que la cadena principal tenga que validar cada transacción. Un state channel es esencialmente un smart contract multifirma que se ejecuta solo con la aprobación de las partes requeridas.

Cómo funcionan los state channels

  1. Alice quiere abrir un state channel con Bob, quien le vende café todas las mañanas. Supongamos que ella deposita 0.4 ETH en el canal y esta transacción se publica en la Mainnet.

  2. Después de esta transacción de apertura, Alice y Bob pueden ejecutar transacciones off-chain durante el tiempo que quieran. La única condición es que ambos deben firmar las transacciones, lo que significa que Alice y Bob deben aprobar cada pago de café.

  3. Si Alice agota su depósito, puede publicar una transacción de salida en la cadena principal. Esta transacción reflejará el último estado conocido del canal, el cual se registra para alcanzar finalidad. Alice y Bob pueden haber transaccionado en una docena de ocasiones, pero la red Ethereum registra solo dos transacciones: las transacciones de entrada y de salida.

Un state channel permite a las partes realizar transacciones off-chain seguras sin tener que lidiar con largos tiempos de espera ni comisiones altas. También mejora la escalabilidad porque los mineros tienen menos transacciones que procesar y pueden trabajar más rápido.

Soluciones de escalado de Ethereum que usan state channels:

  • Raiden Network
  • Connext Network
  • Celer Network

4. Plasma chains

El whitepaper de Plasma introduce el concepto de "child chains", que se originan a partir de la blockchain principal o "root chain". Si bien las Plasma chains pueden validar transacciones, dependen de la seguridad de la root chain. Para probar la validez de las transacciones, las child chains envían pruebas criptográficas a la root chain.

Las Plasma chains son similares a las sidechains, ya que se conectan con la blockchain de Ethereum mediante smart contracts. Usar una Plasma chain requiere bloquear ETH en un smart contract de la root chain antes de obtener tokens en la child chain.

Plasma se considera una solución de escalado L2 porque deriva su seguridad directamente de la capa base de Ethereum. Esto es lo que las hace más seguras que, por ejemplo, las sidechains.

Plasma publica Merkle roots para cada bloque en la cadena principal de Ethereum. Las block roots son pequeñas piezas de información que podemos usar para verificar datos sobre las transacciones. Si ocurre un ataque en una Plasma chain, los usuarios pueden salir de forma segura hacia la cadena principal y retirar sus fondos usando las pruebas correspondientes.

Soluciones de escalado de Ethereum que usan plasma

  • OMG Plasma
  • Gluon Network

5. Validium

Los Validiums son similares a los ZK-rollups, ya que realizan la computación fuera de la capa principal de Ethereum, pero la diferencia principal es que los validiums usan "disponibilidad de datos off-chain" en lugar de publicar datos comprimidos en la cadena principal como hacen los ZK-rollups.

Los validiums almacenan datos off-chain con un proveedor de datos, lo que los hace custodiales hasta cierto punto. Sin embargo, algunas soluciones como StarkWare usan Data Availability Committees (DACs) para asegurar que los proveedores de datos actúen honestamente.

Los validiums tienen comisiones muy bajas y transacciones rápidas (hasta 100,000 tps). Sin embargo, tienen más supuestos de confianza que otras soluciones de escalado, como los ZK-rollups.

Soluciones de escalado de ETH que usan validium:

  • DiversiFi
  • Immutable X

¿Cuáles son algunas desventajas de las soluciones de escalado?

Dos desventajas de las soluciones de escalado de Ethereum son que son complejas de implementar y potencialmente tienen garantías de seguridad más bajas.

1. Complejidad

Muchas soluciones de escalado son complejas de implementar, lo que puede afectar su funcionalidad. Por ejemplo, el equipo de desarrollo de Ethereum ha postergado sistemáticamente la fecha de lanzamiento del sharding debido a la cantidad de trabajo que requiere esta mejora.

2. Garantías de seguridad más bajas

Si bien muchas soluciones de escalado L2 y L1 dependen de Ethereum para la seguridad, no pueden ser tan seguras como esta última. Cada solución de escalado sacrifica algunos elementos (como la descentralización y la seguridad) a cambio de velocidad. Los usuarios deben estar bien al tanto de estos riesgos antes de usar estas plataformas.

Conclusión

Es probable que los proyectos de escalado abordados en esta guía tengan un papel importante en el avance de Ethereum hacia la escalabilidad. Sin embargo, aún está por verse si esto será suficiente para garantizar escala a largo plazo.

¿Piensas escalar tu próxima dApp en una L2?

Regístrate para obtener una cuenta gratuita con Alchemy, la plataforma de desarrollo blockchain más grande del mundo, que es compatible con las L2 más populares, incluyendo Arbitrum, Optimism, Polygon y StarkNet.

Background gradient

Construye magia blockchain

Alchemy combina los productos y herramientas de desarrollo Web3 más potentes con recursos, comunidad y un soporte legendario.