El caso de las cadenas de procesamiento en paralelo

Al observar la evolución de la tecnología blockchain, podemos reconocer una fuerte tendencia de nuevos L1 que se enfocan en la ejecución paralela. La idea no es nueva y actualmente se utiliza en el entorno de ejecución Sealevel de Solana. Sin embargo, el último mercado alcista que ha visto una actividad impresionante en DeFi y NFT ha demostrado que existe una necesidad apremiante de mejora. Algunos de los proyectos destacados que adoptan la filosofía de ejecución paralela son Aptos, Sui, Linera y Fuel.

Este artículo analiza las similitudes y diferencias entre estos proyectos y los desafíos que enfrentan.

Si es un fundador que construye en este dominio, comuníquese o únase a la comunidad de Alliance, nos encantaría ayudarlo.

El problema
Las plataformas de contratos inteligentes permiten la creación de un amplio espectro de aplicaciones descentralizadas. Para ejecutar estas aplicaciones, se necesita un motor informático compartido. Cada nodo de la red ejecuta este motor informático y ejecuta las aplicaciones y las interacciones de los usuarios con la aplicación. A medida que los nodos obtienen el mismo resultado de la ejecución, logran el consenso y avanzan en la cadena.

La máquina virtual Ethereum es el motor de ejecución de contratos inteligentes (SC) más dominante con alrededor de 20 implementaciones diferentes. Desde la invención de EVM, ha establecido una masa crítica de adopción por parte de los desarrolladores. Además de Ethereum y Ethereum’s L2, varias otras cadenas, incluidas Polygon, BNB Smart Chain y Avalanche C-chain, han adoptado EVM como motor de ejecución y se han centrado en cambiar el mecanismo de consenso para mejorar el rendimiento de la red.

Una de las principales características limitantes de EVM es la ejecución secuencial de transacciones. El EVM esencialmente ejecuta una sola transacción a la vez, coloca todas las demás transacciones en espera hasta que finaliza la ejecución de la transacción y se actualiza el estado de la cadena de bloques. Incluso cuando dos transacciones son independientes, por ejemplo, un pago de Alice a Bob y otro de Carol a Dave, el EVM no puede ejecutar estas transacciones en paralelo. Si bien este modelo de ejecución permite casos de uso interesantes, como préstamos rápidos, no es ni eficiente ni escalable.

Esta ejecución secuencial de transacciones es uno de los principales obstáculos para el rendimiento de la red. En primer lugar, conduce a un mayor tiempo de ejecución de las transacciones en un bloque, lo que limita el tiempo de bloque. Además, limita la cantidad de transacciones que se pueden agregar al bloque para permitir que los nodos ejecuten las transacciones y confirmen el bloque. Ethereum tiene un rendimiento promedio de ~ 17 tx/seg. Este bajo rendimiento significa que durante los períodos de alta actividad, por ejemplo, eventos de acuñación de NFT, los mineros/validadores de la red no pueden procesar todas las transacciones y se produce una guerra de ofertas de tarifas para garantizar la ejecución prioritaria que aumenta las tarifas de transacción. Las tarifas promedio de Ethereum en algunos puntos superaron los 0,2 ETH (~ $ 800), lo que superó el precio de muchos usuarios. Un segundo problema de la ejecución secuencial es la ineficiencia de los nodos de la red. La ejecución de instrucciones secuenciales no se beneficia de múltiples núcleos de procesador, lo que resulta en una baja utilización e ineficiencia del hardware. Esto obstaculiza la escalabilidad y provoca un consumo de energía innecesario.

¿Ejecución paralela al rescate?
La limitación fundamental en la estructura de EVM ha preparado el escenario para un nuevo ámbito de L1 que se centran en la ejecución paralela (PE). El paralelismo permite la división del procesamiento de transacciones entre varios núcleos de procesador, lo que mejora la utilización del hardware y permite una mejor escalabilidad. En cadenas de alto rendimiento, el aumento de los recursos de hardware se correlaciona directamente con la cantidad de transacciones que se pueden ejecutar. Durante una alta actividad de la cadena, los nodos de validación pueden encargar más núcleos para procesar la carga de transacciones adicional. El escalado dinámico de los recursos informáticos permite que la red logre un mayor rendimiento en períodos de alta demanda, lo que mejora significativamente la experiencia del usuario.

La otra ventaja de este enfoque es la mejora de la latencia de confirmación de transacciones. El escalado dinámico de los recursos de los nodos permite confirmar transacciones con baja latencia para todas las cargas de red posibles. Las transacciones no necesitan esperar decenas o cientos de bloques, ni incurren en tarifas excesivas para priorizar la confirmación. Los tiempos de confirmación mejorados mejoran la finalidad de la transacción y abren la puerta a cadenas de bloques de baja latencia. La baja latencia garantizada de la ejecución de transacciones permite varios casos de uso que antes no eran posibles.

Cambiar el modelo de ejecución de la cadena para permitir PE no es una idea nueva, y varios proyectos ya lo han explorado. Un enfoque es reemplazar el modelo de contabilidad utilizado por EVM de un modelo de cuentas a un modelo de salida de transacciones no gastadas (UTXO). El modelo de ejecución UTXO se usa en Bitcoin y permite el procesamiento paralelo de transacciones, lo que lo hace ideal para pagos. Como los UXTO tienen una funcionalidad limitada, se necesitan extensiones para permitir las interacciones complejas necesarias para los contratos inteligentes. Como ejemplos, Cardano usa un modelo UTXO extendido para este propósito y Findora usa un modelo UTXO híbrido que implementa ambos modelos contables y permite a los usuarios cambiar el tipo de activo entre los dos modelos.

El otro enfoque para PE no cambia el modelo de cuentas y se enfoca en mejorar cómo se diseña y modifica el estado de la cadena. Un ejemplo de este enfoque es el marco Sealevel de Solana. Este artículo se centra en este último enfoque.

¿Cómo funciona la ejecución paralela?
La ejecución paralela funciona identificando transacciones independientes y ejecutándolas simultáneamente. Dos transacciones son dependientes si la ejecución de una afectará la ejecución de la otra. Por ejemplo, las transacciones AMM en el mismo grupo son dependientes y deben ejecutarse en secuencia.

Aunque el concepto de procesamiento paralelo es simple, el problema está en los detalles. El principal desafío es identificar de manera eficiente las transacciones “independientes”. La clasificación de transacciones independientes requiere comprender cómo cada transacción cambia la memoria de la cadena de bloques o el estado de la cadena. Las transacciones que interactúan con el mismo contrato inteligente, por ejemplo, un grupo AMM, pueden cambiar simultáneamente el estado del contrato, por lo tanto, no pueden ejecutarse simultáneamente. Con el grado actual de componibilidad entre aplicaciones, identificar la dependencia es una tarea desafiante. Imagine una transacción AMM que cambia Uni a USDC y el enrutador AMM encuentra que la ruta más eficiente para ejecutarla es Uni -> ETH -> DAI -> AAVE -> USDC. Todos los grupos que están involucrados en esta transacción no pueden procesar ninguna otra transacción hasta que la transacción se ejecute por completo y se actualice el estado de todos los grupos involucrados.

Seguir Leyendo…

Fuente: Mediuem

Libre Traducción: LBC

Latam Blockchain Council