EVM paralelo: superando los cuellos de botella de rendimiento de la cadena de bloques

Intermedio4/15/2024, 3:33:01 PM
Este artículo explora los detalles técnicos y las perspectivas de mercado de las EVM paralelas, analizando los mecanismos de ejecución paralela de importantes proyectos de cadena de bloques como Sei, Monad y Canto, y evaluando su impacto potencial y posición en el mercado de la industria. A través de la optimización de la ejecución paralela, las redes de cadenas de bloques pueden mejorar significativamente la velocidad y eficiencia de procesamiento, apoyando el desarrollo generalizado del dominio Web3.

TL;DR

  1. Las EVM paralelas representan una nueva narrativa que surge cuando los volúmenes de transacciones en cadena alcanzan un cierto nivel. Se dividen principalmente en blockchains monolíticas y blockchains modulares, siendo las monolíticas categorizadas en L1 y L2. Las cadenas públicas paralelas L1 se dividen en dos campos: EVM y no EVM. Actualmente, la narrativa de las EVM paralelas se encuentra en sus primeras etapas de desarrollo.
  2. La ruta de implementación técnica de los EVM paralelos incluye máquinas virtuales y mecanismos de ejecución paralela. En el contexto de las cadenas de bloques, una máquina virtual es una máquina virtual de proceso que virtualiza la máquina de estado distribuida para ejecutar contratos.
  3. La ejecución paralela se refiere a aprovechar los procesadores multinúcleo para ejecutar múltiples transacciones simultáneamente tanto como sea posible, asegurando al mismo tiempo que el estado final sea consistente con lo que se lograría a través de la ejecución en serie.
  4. Los mecanismos de ejecución paralela se dividen en tres categorías: paso de mensajes, memoria compartida y listas de acceso a estados estrictos. La memoria compartida se divide además en el modelo de bloqueo de memoria y la paralelización optimista. Independientemente del mecanismo, cada uno aumenta la complejidad técnica.
  5. La narrativa de EVM paralelos no solo tiene impulsores intrínsecos del crecimiento de la industria, sino que también requiere que los profesionales presten mucha atención a posibles problemas de seguridad.
  6. Cada proyecto EVM paralelo proporciona su enfoque único para la ejecución en paralelo, mostrando tanto similitudes técnicas como innovaciones distintas.

1. Visión general de la industria

1.1 Evolución histórica

El rendimiento se ha convertido en un cuello de botella para un mayor desarrollo en la industria. Las redes de Cadena de bloques crean una nueva y descentralizada base de confianza para transacciones entre individuos y empresas.

Las redes de cadenas de bloques de primera generación, representadas por Bitcoin, fueron pioneras en un nuevo modo de transacciones de moneda electrónica descentralizada con tecnología de libro mayor distribuido, revolucionando una nueva era. La segunda generación, ejemplificada por Ethereum, utilizó plenamente la imaginación para proponer aplicaciones descentralizadas (dApps) a través de un enfoque de máquina de estado distribuido.

Desde entonces, las redes de cadenas de bloques han emprendido su propio desarrollo rápido durante más de una década, desde la infraestructura de Web3 hasta diversas áreas como DeFi, NFT, redes sociales y GameFi, dando lugar a numerosas innovaciones en tecnología y modelos de negocio. La próspera industria necesita atraer continuamente nuevos usuarios para participar en el ecosistema de aplicaciones descentralizadas, lo que a su vez plantea mayores requisitos para la experiencia del producto.

Web3, como una forma de producto novedosa "sin precedentes en la historia", debe innovar para satisfacer las necesidades del usuario (requisitos funcionales) mientras equilibra la seguridad y el rendimiento (requisitos no funcionales). Desde su inicio, se han propuesto diversas soluciones para abordar problemas de rendimiento.

Estas soluciones generalmente se pueden categorizar en dos tipos: soluciones de escalabilidad en cadena, como el particionamiento y los Gráficos Acíclicos Dirigidos (DAG), y soluciones de escalabilidad fuera de cadena, como Plasma, Lightning Networks, sidechains y Rollups. Sin embargo, todavía están lejos de mantenerse al día con el rápido crecimiento de las transacciones en cadena.

Especialmente después del verano DeFi de 2020 y el crecimiento explosivo de inscripciones en el ecosistema Bitcoin hacia finales de 2023, la industria necesita con urgencia nuevas soluciones de mejora de rendimiento para satisfacer las demandas de “alto rendimiento y bajas tarifas”. Las cadenas de bloques paralelas nacieron en este contexto.

1.2 Tamaño del mercado

La narrativa de EVM paralelo significa un panorama competitivo donde dos jugadores principales dominan en el campo de las cadenas de bloques paralelas. Ethereum procesa transacciones de forma serial, ejecutándolas una tras otra, lo que resulta en una baja utilización de recursos. Cambiar de procesamiento serial a paralelo podría mejorar significativamente el rendimiento.

Los rivales de Ethereum como Solana, Aptos y Sui, todos cuentan con capacidades de procesamiento paralelo incorporadas y han desarrollado ecosistemas sólidos. Sus respectivas capitalizaciones de mercado de tokens han alcanzado los $45 mil millones, $3.3 mil millones y $1.9 mil millones, formando un campo paralelo no EVM. En respuesta a estos desafíos, el ecosistema de Ethereum no se queda atrás, con varios proyectos que avanzan para potenciar EVM, creando así un campo EVM paralelo.

Sei, en su propuesta de actualización de versión 2, ha declarado en voz alta que se convertirá en la “primera cadena de bloques EVM paralela,” con una capitalización de mercado actual de $2.1 mil millones y potencial para un crecimiento aún mayor. La nueva cadena de bloques EVM paralela Monad, actualmente la más candente en fervor de marketing, es muy favorecida por los inversores y tiene un potencial significativo. Mientras tanto, la cadena de bloques L1 Canto, con una capitalización de mercado de $170 millones y su propia infraestructura pública gratuita, también ha anunciado su propuesta de actualización paralela EVM.

Además, varios proyectos L2 en etapas tempranas están mejorando el rendimiento interecosistémico al integrar las capacidades de múltiples cadenas L1. Aparte de Neon, que ha logrado un valor de mercado circulante de $69 millones, otros proyectos aún carecen de datos relevantes. Se espera que más proyectos L1 y L2 se unan al campo de batalla blockchain paralelo en el futuro.

No solo existe un importante potencial de crecimiento en el mercado para la narrativa paralela de EVM, sino que el sector más amplio de cadenas de bloques paralelas a las que pertenece la EVM paralela también tiene un importante potencial de crecimiento en el mercado, lo que promete una perspectiva de mercado amplia.

Actualmente, la capitalización de mercado total de la Capa 1 y la Capa 2 es de $752.123 mil millones, con blockchains paralelas que tienen una capitalización de mercado de $52.539 mil millones, lo que representa aproximadamente el 7%. Dentro de esto, los proyectos relacionados con la narrativa paralela de EVM tienen una capitalización de mercado de $2.339 mil millones, representando solo el 4% de la capitalización de mercado de las blockchains paralelas.

1.3 Mapa de la industria

La industria generalmente divide las redes de cadena de bloques en una estructura de cuatro capas:

Capa 0 (Red): Esta es la capa de red de cadena de bloques subyacente que maneja los protocolos básicos de comunicación de red.

Capa 1 (Infraestructura): Esta capa se basa en varios mecanismos de consenso para validar transacciones dentro de una red descentralizada.

Capa 2 (Expansión): Dependiente de la Capa 1, esto implica varios protocolos de segunda capa destinados a abordar las limitaciones de la Capa 1, especialmente en cuanto a la escalabilidad.

Capa 3 (Aplicación): Dependiente de la Capa 2 o Capa 1, esta capa se utiliza para construir varias aplicaciones descentralizadas (dApps).

Los proyectos narrativos paralelos de la Máquina Virtual Ethereum (Ethereum Virtual Machine) se dividen principalmente en blockchains monolíticas y blockchains modulares, con las blockchains monolíticas divididas aún más en L1 y L2. A partir del número total de proyectos y el desarrollo de varias pistas principales, se puede ver que los ecosistemas de cadenas públicas paralelas de la EVM L1 todavía tienen un espacio significativo para crecer en comparación con el ecosistema de Ethereum.

En la pista DeFi, hay una demanda de 'alta velocidad y bajos costos', mientras que la pista de juegos exige 'una fuerte interacción en tiempo real'; ambos requieren una cierta velocidad de ejecución. Las EVM paralelas inevitablemente traerán mejores experiencias de usuario a estos proyectos, impulsando el desarrollo de la industria hacia una nueva etapa.

L1 representa nuevas cadenas públicas con capacidades inherentes de ejecución paralela y sirve como infraestructura de alto rendimiento. En esta facción, proyectos como Sei v2, Monad y Canto han diseñado de forma independiente EVMs paralelos, que son compatibles con el ecosistema de Ethereum y proporcionan altas capacidades de volumen de transacciones.

L2, al integrar las capacidades de otras cadenas L1, ofrece una capacidad ampliada para la cooperación entre ecosistemas y es un ejemplo destacado de la tecnología rollup. En esta facción, Neon actúa como un emulador de EVM en la red de Solana, mientras que Eclipse ejecuta transacciones en Solana pero se liquida en el EVM. Lumio es similar a Eclipse, excepto que la capa de ejecución se ha cambiado a Aptos.

Además de las soluciones de cadena de bloques independientes mencionadas anteriormente, Fuel ha introducido su propio concepto de cadena de bloques modular. En su segunda versión, tiene como objetivo posicionarse como un sistema operativo de rollup de Ethereum, ofreciendo capacidades de ejecución modular más flexibles y completas.

Fuel se centra en ejecutar transacciones, mientras externaliza otros componentes a una o más capas independientes de cadena de bloques, lo que permite combinaciones más flexibles: puede funcionar como una Capa 2, una Capa 1, o incluso como una cadena lateral o un canal de estado. Actualmente, hay 17 proyectos dentro del ecosistema de Fuel, centrándose principalmente en DeFi, NFT y infraestructura.

Sin embargo, solo el oráculo cruzado oralmente se ha puesto en uso práctico. La plataforma de préstamos descentralizada Swaylend y la plataforma de trading de contratos perpetuos SPARK se han lanzado en testnets, mientras que otros proyectos aún están en desarrollo.

2. Vías de Implementación Técnica

Para lograr la ejecución descentralizada de transacciones, las redes de cadenas de bloques deben cumplir con cuatro responsabilidades:

  • Ejecución: Ejecutar y validar transacciones.
  • Disponibilidad de datos: Distribuir nuevos bloques a todos los nodos en la red de cadena de bloques.
  • Mecanismo de consenso: Verificación de bloques y logro de consenso.
  • Liquidación: Liquidación y registro del estado final de las transacciones.

El EVM paralelo se enfoca principalmente en la optimización del rendimiento de la capa de ejecución. Esto se divide en soluciones de Capa 1 (L1) y soluciones de Capa 2 (L2). Las soluciones de L1 introducen un mecanismo para la ejecución de transacciones en paralelo, lo que permite que las transacciones se ejecuten en paralelo dentro de la máquina virtual tanto como sea posible. Las soluciones de L2 aprovechan fundamentalmente la máquina virtual de L1 ya paralelizada para lograr algún nivel de “ejecución fuera de cadena + liquidación en cadena.”

Por lo tanto, para entender los principios técnicos de EVM paralelo, es necesario desglosarlo: primero, entender qué es una máquina virtual (VM), y luego entender qué implica la ejecución paralela.

2.1 Máquina virtual

En informática, una máquina virtual se refiere a la virtualización o emulación de un sistema informático.

Hay dos tipos de máquinas virtuales: máquinas virtuales de sistema, que pueden virtualizar una sola máquina física en varias máquinas que ejecutan diferentes sistemas operativos, mejorando así la utilización de recursos; y máquinas virtuales de proceso, que proporcionan una abstracción para ciertos lenguajes de programación de alto nivel, permitiendo que los programas informáticos escritos en estos lenguajes se ejecuten de manera independiente de la plataforma en diferentes plataformas.

La VM es una máquina virtual de proceso diseñada para el lenguaje de programación Java. Los programas escritos en Java se compilan primero en código de bytes de Java (un estado intermedio de código binario), que luego es interpretado por la VM: la VM envía el código de bytes a un intérprete, que lo traduce a código de máquina para diferentes máquinas, y luego lo ejecuta en la máquina.

Las máquinas virtuales de la cadena de bloques son un tipo de máquina virtual de proceso. En el contexto de la cadena de bloques, una máquina virtual se refiere a la virtualización de una máquina de estado distribuida utilizada para la ejecución distribuida de contratos, ejecutando dApps. Análogo al JVM, el EVM es una máquina virtual de proceso diseñada para el lenguaje Solidity, donde los contratos inteligentes se compilan primero en bytecode de opcode, luego son interpretados por el EVM.

Las cadenas públicas emergentes más allá de Ethereum a menudo adoptan máquinas virtuales basadas en el bytecode de WASM o eBPF. WASM es un formato de bytecode compacto, de carga rápida y portátil basado en mecanismos de seguridad de sandbox. Los desarrolladores pueden escribir contratos inteligentes en varios lenguajes de programación (C, C++, Rust, Go, Python, Java, o incluso TypeScript), compilarlos en bytecode de WASM y ejecutarlos. Los contratos inteligentes ejecutados en la cadena de bloques Sei utilizan este formato de bytecode.

eBPF se originó a partir de BPF (Berkeley Packet Filter), utilizado inicialmente para filtrar de manera eficiente paquetes de red, y evolucionó hacia eBPF, ofreciendo un conjunto de instrucciones más amplio.

Es una tecnología revolucionaria que permite la intervención dinámica y modificación del comportamiento del núcleo del sistema operativo sin alterar el código fuente. Más tarde, esta tecnología se trasladó más allá del núcleo, lo que llevó al desarrollo del tiempo de ejecución eBPF en el espacio de usuario, que es altamente eficiente, seguro y portátil. Los contratos inteligentes ejecutados en Solana se compilan en bytecode eBPF y se ejecutan en su red de blockchain.

Otras cadenas públicas L1 como Aptos y Sui utilizan el lenguaje de programación de contratos inteligentes Move, que se compila en un bytecode propietario ejecutado en la máquina virtual Move. Monad ha diseñado su propia máquina virtual compatible con el bytecode de la operación EVM (bifurcación de Shanghai).

2.2 Ejecución paralela

La ejecución en paralelo es una técnica que aprovecha las ventajas de los procesadores multinúcleo para manejar múltiples tareas simultáneamente, aumentando así el rendimiento del sistema. Garantiza que los resultados de las transacciones sean idénticos a los obtenidos cuando las transacciones se ejecutan en serie.

En las redes de blockchain, TPS (Transacciones Por Segundo) se utiliza comúnmente como un indicador técnico para medir la velocidad de procesamiento. El mecanismo de ejecución paralela es complejo y representa un desafío para las habilidades técnicas de los desarrolladores, lo que dificulta su explicación. Aquí, usaremos el ejemplo de un “banco” para explicar qué es la ejecución paralela.

(1) Primero, ¿qué es la ejecución en serie?

Escenario 1: Si vemos el sistema como un banco y la CPU de procesamiento de tareas como un mostrador, entonces la ejecución de tareas en serie es similar a este banco que solo tiene un mostrador disponible para el servicio. En este caso, los clientes (tareas) que vienen al banco deben formar una larga fila y atender sus asuntos uno por uno. Para cada cliente, el personal del mostrador debe repetir las mismas acciones (ejecutar instrucciones) para atender al cliente. Los clientes deben esperar su turno, lo que conlleva tiempos de transacción prolongados.

(2) Entonces, ¿qué es la ejecución paralela?

Escenario 2: Si el banco ve que está abarrotado, podría abrir varios mostradores para atender negocios, con cuatro empleados trabajando en los mostradores simultáneamente. Esto aumenta la velocidad aproximadamente cuatro veces en comparación con la original, y el tiempo que los clientes pasan en la fila también se reduce a aproximadamente una cuarta parte del original. Por lo tanto, la velocidad de atención de negocios en el banco se incrementa.

(3) ¿Qué error ocurre si no hay protecciones en su lugar y dos personas transfieren dinero simultáneamente a otra persona?

Escenario 3: Consideremos a A, B y C, quienes tienen 2 ETH, 1 ETH y 0 ETH en sus cuentas, respectivamente. Ahora, A y B quieren transferir 0.5 ETH a C. En un sistema que ejecuta transacciones de forma serial, no se producirían problemas (la flecha izquierda "<=" indica lectura del libro mayor, y la flecha derecha "=>" indica escritura en el libro mayor, lo mismo a continuación):

Sin embargo, la ejecución paralela no es tan simple como parece. Hay muchos detalles sutiles que pueden llevar a errores graves si no se manejan con cuidado. Si las transacciones de A y B transferidas a C se ejecutan en paralelo, la secuencia de pasos puede dar lugar a resultados inconsistentes:

La Tarea Paralela 1 ejecuta la transferencia de A a C, y la Tarea Paralela 2 ejecuta la transferencia de B a C. Los pasos marcados con un asterisco son problemáticos: debido a que las tareas se ejecutan en paralelo, en el Paso 2, el cálculo de saldo realizado por la Tarea Paralela 1 aún no ha sido escrito en el libro mayor. En el Paso 3, la Tarea Paralela 2 lee el saldo de la cuenta de C (que aún es 0) y realiza un cálculo de saldo erróneo basado en esto en el Paso 5. Luego, en la operación de actualización del libro mayor en el Paso 6, actualiza incorrectamente el saldo de la cuenta, que ya se había actualizado a 0.5 en el Paso 4, de vuelta a 0.5 nuevamente. Esto resulta en que el saldo de la cuenta de C sea solo de 0.5 ETH, a pesar de que tanto A como B han transferido 0.5 ETH cada uno, lo que hace que los otros 0.5 ETH desaparezcan efectivamente.

(4) Si no hay protecciones en su lugar, dos tareas que no dependen entre sí pueden ejecutarse en paralelo sin errores

Escenario 4: La Tarea Paralela 1 ejecuta una transferencia de 0.5 ETH de A (saldo 2 ETH) a C (saldo 0 ETH), y la Tarea Paralela 2 ejecuta una transferencia de 0.5 ETH de B (saldo 1 ETH) a D (saldo 0 ETH). Es evidente que no hay dependencia entre estas dos tareas de transferencia. Independientemente de cómo se entrelacen los pasos de las dos tareas, no encontrarán los problemas descritos anteriormente:

De la comparación de estos escenarios, se puede analizar que siempre que exista una dependencia entre tareas, pueden producirse errores en las actualizaciones de estado durante la ejecución en paralelo; de lo contrario, no se producirán errores. Una tarea (transacción) se considera que tiene una relación de dependencia si cumple una de las dos siguientes condiciones:

  1. Una tarea escribe en una dirección de salida de la cual otra tarea lee como dirección de entrada;
  2. Dos tareas se envían a la misma dirección.

Este problema no es único en sistemas descentralizados. Cualquier escenario que implique ejecución paralela puede sufrir de inconsistencias de datos debido al acceso no protegido a recursos compartidos (como el "libro mayor" en el ejemplo del banco o la memoria compartida en sistemas informáticos) entre múltiples tareas dependientes, conocidas como carreras de datos.

La industria ha propuesto tres mecanismos para resolver los problemas de carrera de datos en la ejecución paralela: mecanismos de paso de mensajes, mecanismos de memoria compartida y mecanismos de lista de acceso de estado estricto.

2.3 Mecanismo de paso de mensajes

Escenario 5: Considere un banco con cuatro mostradores de servicio operando simultáneamente para los clientes. A cada cajero en estos mostradores se le entrega un libro mayor único, que solo ellos pueden modificar. Este libro mayor registra los saldos de cuenta de los clientes a los que atienden.

Siempre que un cajero maneja una transacción, si la información del cliente está disponible en su libro mayor, proceden directamente. Si no, llaman a otros cajeros para informarles sobre las necesidades de transacción del cliente, y el cajero que escucha se hace cargo de la tarea.

Esto ejemplifica el principio del modelo de paso de mensajes. El modelo de Actor es un tipo de modelo de paso de mensajes, donde cada entidad que maneja transacciones es un actor (cajero), cada uno con acceso a sus datos privados (el libro mayor exclusivo). Acceder a los datos privados de otra persona solo se puede lograr mediante el envío de mensajes.

Ventajas del Modelo de Actor:

Cada actor solo tiene acceso a sus datos privados, evitando así problemas de condición de carrera.

Desventajas del Modelo de Actores:

Cada actor solo puede ejecutar tareas de forma secuencial. En ciertos escenarios, esto no aprovecha las ventajas del paralelismo. Por ejemplo, si los cajeros No. 2, 3 y 4 envían mensajes simultáneamente para preguntar al cajero No. 1 sobre el saldo de la cuenta del cliente A, el cajero No. 1 solo puede procesar estas solicitudes una a la vez, aunque podrían ser manejadas en paralelo.

No hay una vista global del estado actual del sistema. Si las operaciones del sistema son complejas, se vuelve difícil entender la situación general, localizar y corregir errores.

2.4 Mecanismo de Memoria Compartida

Modelo de Bloqueo de Memoria 2.4.1

Escenario 6: Imagina un banco con solo un gran libro mayor que registra los saldos de cuenta de todos sus clientes. Junto al libro mayor, solo hay un bolígrafo disponible para hacer modificaciones en él.

En este escenario, la competencia entre cuatro cajeros bancarios se convierte en una carrera de velocidad: un cajero agarra primero el bolígrafo (lo bloquea) y comienza a modificar el libro mayor, mientras que los otros tres deben esperar. Una vez que el cajero termina y pone el bolígrafo abajo (lo desbloquea), los siguientes tres cajeros se apresuran a agarrar el bolígrafo. Este ciclo se repite, ejemplificando el modelo de bloqueo de memoria.

Un bloqueo de memoria permite que las tareas que se ejecutan en paralelo bloqueen un recurso compartido antes de acceder a él. Después de que el recurso está bloqueado, otras tareas deben esperar hasta que se modifique y desbloquee antes de que puedan bloquearlo y acceder a él nuevamente.

El modelo de bloqueo de lectura-escritura ofrece un enfoque más refinado, permitiendo que múltiples tareas paralelas agreguen bloqueos de lectura a un recurso compartido y accedan a sus datos varias veces. Durante esto, no se permiten modificaciones; sin embargo, un bloqueo de escritura puede ser aplicado solo por uno a la vez, y una vez aplicado, otorga acceso exclusivo al titular del recurso.

Plataformas de cadenas de bloques como Solana, Sui y Sei v1 utilizan un modelo de memoria compartida basado en bloqueos de memoria. Este mecanismo puede parecer simple, pero es complejo de implementar y requiere que los desarrolladores tengan habilidades sofisticadas en programación multihilo. La negligencia puede llevar a varios errores:

Escenario 1: Una tarea bloquea un recurso compartido pero se bloquea durante la ejecución, dejando el recurso inaccesible.

Escenario 2: Una tarea bloquea un recurso pero termina bloqueándolo nuevamente debido a la lógica empresarial anidada, lo que resulta en un punto muerto donde espera por sí misma.

El modelo de bloqueo de memoria es propenso a problemas como bloqueos, bloqueos vivos y inanición:

  1. Se produce un punto muerto cuando varias tareas paralelas compiten por múltiples recursos compartidos, con cada tarea que posee una parte de ellos y espera a que otros liberen sus partes.
  2. El livelock ocurre cuando las tareas en paralelo detectan que otras tareas están activas y renuncian voluntariamente a su control sobre los recursos compartidos, lo que lleva a un ciclo continuo de cesión.
  3. El hambre ocurre cuando las tareas de alta prioridad obtienen consistentemente acceso a recursos compartidos, mientras que las tareas de menor prioridad soportan una espera prolongada.

2.4.2 Paralelismo Optimista

Escenario 7

En un banco, cuatro cajeros tienen la capacidad de acceder y modificar de forma independiente el libro mayor durante las transacciones, independientemente de si otros cajeros están utilizando el libro mayor. Al utilizar el libro mayor, cada cajero aplica una etiqueta personal a las entradas a las que acceden o modifican. Después de completar una transacción, revisan nuevamente las entradas; si encuentran una etiqueta que no es la suya, indica que la entrada ha sido modificada por otro cajero y la transacción debe ser anulada y procesada nuevamente.

Esto ejemplifica el principio básico del paralelismo optimista. La idea principal del paralelismo optimista es asumir inicialmente que todas las tareas son independientes. Las tareas se ejecutan en paralelo, y luego cada tarea se valida. Si una tarea no pasa la validación, se vuelve a ejecutar hasta que todas las tareas estén completas. Supongamos que hay ocho tareas paralelas realizadas de manera optimista, que necesitan acceso a dos recursos compartidos, A y B.

Durante la Fase 1, las tareas 1, 2 y 3 se ejecutan en paralelo. Sin embargo, las tareas 2 y 3 acceden al recurso compartido B simultáneamente, lo que provoca un conflicto, por lo que la tarea 3 se reprograma para la siguiente fase. En la Fase 2, las tareas 3 y 4 acceden a B, lo que resulta en la reprogramación de la tarea 4, y así sucesivamente, hasta que todas las tareas estén completadas. Como se puede ver, las tareas que encuentran conflictos se vuelven a ejecutar repetidamente.

Modelo de Paralelismo Optimista

El modelo de paralelismo optimista emplea una estructura de datos en memoria multi-versión para registrar cada valor escrito y su información de versión (similar a las etiquetas utilizadas por los cajeros bancarios).

La ejecución de cada tarea paralela se divide en dos fases: ejecución y validación. Durante la fase de ejecución, todas las acciones de lectura y escritura de datos se registran, formando un conjunto de lectura y un conjunto de escritura. En la fase de validación, se comparan el conjunto de lectura y el conjunto de escritura con la estructura de datos de múltiples versiones. Si la comparación revela que los datos no son los más recientes, la validación falla.

El modelo de paralelismo optimista se originó a partir de la Memoria Transaccional de Software (STM), un mecanismo de programación sin bloqueos en el campo de las bases de datos. Dado que las redes de cadenas de bloques mantienen inherentemente un orden definido de transacciones, este concepto se ha introducido y evolucionado hacia el mecanismo de Bloque-STM. Plataformas de cadenas de bloques como Aptos y Monad han adoptado Bloque-STM como su mecanismo de ejecución paralela.

Vale la pena mencionar que la cadena pública Sei, en su próxima versión v2, ha abandonado el modelo de bloqueo de memoria original a favor del modelo de paralelismo optimista. Block-STM ejecuta transacciones a un ritmo extremadamente rápido; en un entorno de prueba, Aptos alcanzó una impresionante velocidad de ejecución de transacciones de 160k transacciones por segundo (tps), que es 18 veces más rápido que el procesamiento de transacciones secuenciales.

Bloquear-STM delega la ejecución y validación de transacciones complejas al equipo de desarrollo principal, lo que permite a los desarrolladores escribir contratos inteligentes tan fácilmente como si estuvieran programando en un entorno de ejecución secuencial.

2.5 Lista de acceso estricto al estado

Los mecanismos de paso de mensajes y memoria compartida se basan en el modelo de datos de cuenta/saldo, que registra la información de saldo de cada cuenta en la cadena de bloques. Es similar a cómo el libro mayor de un banco muestra que el Cliente A tiene un saldo de 1,000 unidades y el Cliente B tiene un saldo de 600 unidades. Las transacciones se procesan simplemente actualizando el estado de saldo de las cuentas.

Alternativamente, también se podrían registrar los detalles de cada transacción en el momento de la transacción, creando un libro mayor de transacciones. Este libro mayor se puede utilizar para calcular los saldos de la cuenta. Por ejemplo:

  • El cliente A abre una cuenta y deposita 1,000 unidades;
  • El cliente B abre una cuenta (0 unidades);
  • El cliente A transfiere 100 unidades al cliente B.

Al leer y calcular el libro mayor, se puede determinar que el Cliente A tiene un saldo de 900 unidades y el Cliente B tiene un saldo de 100 unidades.

UTXO (Unspent Transaction Output) es similar a este modelo de datos de registro de transacciones. Representa un método para denotar la moneda digital en Bitcoin, la cadena de bloques de primera generación. Cada transacción tiene inputs (cómo se recibieron los fondos) y outputs (cómo se gastaron los fondos), y los UTXO pueden entenderse simplemente como los recibos de fondos que aún no han sido gastados.

Por ejemplo, si el Cliente A tiene 6 BTC y transfiere 5.2 BTC al Cliente B, dejando 0.8 BTC, desde la perspectiva de los UTXO, se vería así: Los 6 UTXO valorados en 1 BTC cada uno son destruidos, y B recibe un nuevo UTXO valorado en 5.2 BTC, mientras que A recibe un nuevo UTXO valorado en 0.8 BTC como cambio. Así, se destruyen 6 UTXO para crear 2 nuevos UTXO.

Las entradas y salidas de una transacción están vinculadas y utilizan firmas digitales para registrar información de propiedad, formando así el modelo UTXO. Las cadenas de bloques que adoptan este modelo de datos necesitan sumar todos los UTXOs para una dirección de cuenta en particular para determinar el saldo actual de la cuenta. La Lista de Acceso al Estado Estricto (SSAL) se basa en el modelo UTXO y permite la ejecución en paralelo. Pre-calcula las direcciones de cuenta a las que accederá cada transacción, formando una lista de acceso.

La lista de acceso sirve para dos propósitos:

  1. Evaluación de seguridad de la transacción: Si una transacción accede a una dirección que no está en la lista de acceso, la ejecución falla.
  2. Ejecución paralela de transacciones: Según la lista de acceso, las transacciones se agrupan en varios conjuntos. Dado que no hay dependencias (intersecciones) entre los conjuntos en la lista de acceso, estos conjuntos de transacciones pueden ejecutarse en paralelo.

3. Impulsores del crecimiento de la industria

Desde una perspectiva intrínseca, el desarrollo de cualquier cosa generalmente progresa desde la concepción hasta el perfeccionamiento, y la búsqueda de la velocidad por parte de la humanidad es eterna. Para abordar los problemas de velocidad de ejecución en las redes de blockchain, han surgido una variedad de soluciones, tanto on-chain como off-chain. Las soluciones off-chain, como los rollups, han sido plenamente reconocidas por su valor, mientras que la narrativa de las Máquinas Virtuales Paralelas de Ethereum (EVM) todavía ofrece importantes oportunidades de exploración.

Históricamente, con la aprobación de la SEC de un ETF de Bitcoin al contado y el próximo evento de reducción a la mitad de Bitcoin, junto con posibles recortes en las tasas de interés por la Reserva Federal, se espera que las criptomonedas entren en un importante mercado alcista. El sólido crecimiento de la industria requiere infraestructuras de redes de bloques capaces de manejar un mayor rendimiento como base sólida.

En cuanto a la gestión de recursos, las redes de cadenas de bloques tradicionales procesan las transacciones de forma serial, un método directo pero ineficiente que desperdicia recursos del procesador. En contraste, las cadenas de bloques paralelas hacen pleno uso de los recursos informáticos, extrayendo significativamente el potencial de rendimiento de los procesadores multinúcleo, mejorando así la eficiencia general de las redes de cadenas de bloques.

En cuanto al desarrollo de la industria, aunque continuamente surgen diversas innovaciones tecnológicas y de modelos de negocio, el potencial de crecimiento en Web3 sigue en gran medida sin explotar. Las redes centralizadas pueden manejar más de 50,000 mensajes por segundo, enviar 3.4 millones de correos electrónicos, completar 100,000 búsquedas en Google y soportar decenas de miles de jugadores en línea simultáneamente, logros aún no alcanzados por las redes descentralizadas. Para que los sistemas descentralizados compitan y se abran camino en su territorio, es esencial la optimización continua de los mecanismos de ejecución paralela y el aumento de la capacidad de transacciones.

Desde la perspectiva de las aplicaciones descentralizadas, atraer a más usuarios requiere esfuerzos significativos en mejorar la experiencia del usuario. La optimización del rendimiento es una dirección clave para mejorar la experiencia del usuario. Para los usuarios de DeFi, satisfacer las demandas de alta velocidad de transacción y bajos costos es crucial. Para los usuarios de GameFi, la interacción en tiempo real es necesaria. Todos estos requisitos son apoyados por la robustez de la ejecución paralela.

4. Problemas existentes

El "trilema de la cadena de bloques" establece que la descentralización, la seguridad y la escalabilidad solo pueden satisfacer dos de los tres atributos simultáneamente. Dado que la "descentralización" es un pilar inamovible, mejorar la "escalabilidad" implica una reducción de la "seguridad". Dado que el código está escrito por humanos, es propenso a errores. La complejidad técnica introducida por la computación paralela proporciona un caldo de cultivo para posibles vulnerabilidades de seguridad.

La programación multiproceso es particularmente desafiante debido a dos problemas principales: en primer lugar, es propensa a condiciones de carrera debido al manejo inadecuado de diversas operaciones de control concurrentes complejas; en segundo lugar, puede provocar bloqueos al acceder a direcciones de memoria no válidas, lo que incluso podría provocar vulnerabilidades de desbordamiento de búfer explotables por atacantes.

Hay al menos tres perspectivas desde las cuales evaluar la seguridad de un proyecto:

1. Antecedentes del equipo: Los equipos con experiencia en programación de sistemas son expertos en programación multiproceso y pueden abordar el 80% de los problemas complejos. La programación de sistemas generalmente implica las siguientes áreas:

  • Sistemas operativos
  • Varios controladores de dispositivos
  • Sistemas de archivos
  • Bases de datos
  • Sistemas embebidos
  • Criptografía
  • Codecs multimedia
  • Gestión de memoria
  • Redes
  • Virtualización
  • Juegos
  • Lenguajes de programación avanzados

2. Mantenibilidad del código: Escribir código mantenible sigue una metodología clara, como tener un diseño arquitectónico claro, utilizar patrones de diseño para implementar la reutilización de código, emplear técnicas de desarrollo orientado a pruebas para escribir amplias pruebas unitarias y eliminar código redundante mediante una refactorización cuidadosa.

3. Lenguaje de programación utilizado: Algunos lenguajes de programación de vanguardia están diseñados con un fuerte énfasis en la seguridad de la memoria y la alta concurrencia. Los compiladores verifican el código en busca de problemas concurrentes o posibles accesos a direcciones de memoria no válidas, lo que resulta en un fallo de compilación si se detecta, obligando así a los desarrolladores a escribir un código robusto.

El lenguaje Rust es ejemplar en este sentido, por eso vemos que la mayoría de los proyectos de cadena de bloques paralelos se desarrollan en Rust. Incluso algunos proyectos toman prestado el diseño de Rust para implementar sus propios lenguajes de contrato inteligente, como el lenguaje Sway de Fuel.

5. Disposición objetivo

5.1 Basado en el modelo de paralelización optimista

5.1.1 Desde bloqueos de memoria hasta paralelismo optimista

Sei es una cadena de bloques pública de propósito general basada en tecnología de código abierto, establecida en 2022. Los fundadores son exalumnos de la Universidad de California, Berkeley, y otros miembros del equipo también tienen antecedentes de prestigiosas universidades en el extranjero.

Sei ha recibido financiamiento en tres rondas: una ronda inicial de $5 millones, una primera ronda de financiamiento estratégico de $30 millones, y una segunda ronda de financiamiento estratégico donde el monto no fue revelado. La Red Sei también ha recaudado un total de $100 millones en fondos para apoyar el desarrollo de su ecosistema.

En agosto de 2023, Sei se lanzó en su mainnet, afirmando ser la cadena de bloques pública L1 más rápida, capaz de procesar 12,500 transacciones por segundo, con una finalidad lograda en solo 380 ms. Actualmente, tiene una capitalización de mercado de casi $2.2 mil millones.

Actualmente, el ecosistema Sei comprende 118 proyectos, centrándose principalmente en DeFi, infraestructura, NFT, juegos y billeteras. La comunidad actualmente tiene 650,000 miembros en Twitter, 600,000 en Discord y 40,000 en Telegram.

A finales de noviembre de 2023, Sei anunció en su blog oficial que iniciaría la actualización de versión más significativa desde el lanzamiento de la red principal en la primera mitad de 2024: Sei v2. Sei v2 se presenta como la primera cadena de bloques EVM paralela. Esta actualización de versión introducirá las siguientes nuevas funciones:

  • Compatibilidad con versiones anteriores para contratos inteligentes de EVM: Los desarrolladores pueden migrar e implementar contratos inteligentes de EVM sin modificar el código.
  • Reusabilidad para herramientas/aplicaciones comunes como Metamask.
  • Paralelización optimista: Sei v2 abandonará el mecanismo de acceso compartido de bloqueo de memoria a favor de la paralelización optimista.
  • SeiDB: Optimización de la capa de almacenamiento.
  • Soporte para una interoperabilidad perfecta entre Ethereum y otras cadenas.

Originalmente, la ejecución paralela de transacciones de Sei Network se basaba en un modelo de bloqueo de memoria. Antes de la ejecución, se resolvían todas las dependencias entre transacciones pendientes y se generaba un DAG, luego, basándose en el DAG, se organizaba precisamente el orden de ejecución de las transacciones. Este método aumentaba la carga mental en los desarrolladores de contratos porque debían incorporar la lógica en el código durante el desarrollo.

Como se introdujo en la sección de principios técnicos anterior, con la adopción de la paralelización optimista en la nueva versión, los desarrolladores ahora pueden escribir contratos inteligentes como si estuvieran escribiendo programas ejecutados secuencialmente. Mecanismos complejos como la programación, ejecución y verificación de transacciones son manejados por los módulos subyacentes. El diseño de propuesta de optimización del equipo central también introdujo una mejora adicional de las capacidades de ejecución paralela a través del prellenado de dependencias.

Específicamente, esto implica la introducción de un generador de dependencias dinámico que analiza las operaciones de escritura de transacciones antes de la ejecución y las pre-rellena en una estructura de datos de memoria de múltiples versiones, optimizando la posible contención de datos. Después del análisis, el equipo central concluyó que si bien dicho mecanismo de optimización no es ventajoso en el mejor escenario para el procesamiento de transacciones, mejora significativamente la eficiencia de ejecución en el peor escenario.

5.1.2 Posible disruptor en la pista L1: Monad

Si te perdiste el desarrollo de las cadenas de bloques públicas mencionadas anteriormente, entonces definitivamente no deberías perderte Monad. Se dice que es un posible disruptor en la pista L1.

Monad fue fundada por dos ingenieros senior de Jump Crypto en 2022. El proyecto completó una ronda de financiación semilla de $19 millones en febrero de 2023. En marzo de 2024, Paradigm lideró las negociaciones para una ronda de financiación de más de $200 millones para Monad. Si tiene éxito, esta sería la mayor financiación de criptomonedas desde el comienzo del año.

El proyecto ya ha alcanzado el hito de lanzar una red de prueba interna y está trabajando hacia el siguiente paso de abrir una red de prueba pública.

Monad es muy favorecido por el capital por dos razones prominentes: una es su sólido trasfondo técnico, y la otra es su proficiencia en la exageración de marketing. El equipo central de Monad Labs está formado por 30 miembros, todos los cuales tienen décadas de experiencia profunda en trading de alta frecuencia, controladores de kernel y tecnología financiera, y amplia experiencia en el desarrollo de sistemas distribuidos.

Las operaciones diarias del proyecto también son muy "terrenales": participando continuamente en "marketing mágico" con sus 200,000 seguidores en Twitter y 150,000 miembros en Discord. Por ejemplo, organizar concursos semanales de memes, recopilar varios emojis o videos de animales púrpuras peculiares de la comunidad, para realizar una "diseminación espiritual."

La visión de Monad es convertirse en una plataforma de contratos inteligentes para desarrolladores, aportando mejoras extremas de rendimiento al ecosistema de Ethereum. Monad introduce dos mecanismos a la Máquina Virtual de Ethereum: uno es la canalización superscalar y el otro es un mecanismo paralelo optimista mejorado.

La canalización superscalar paraleliza la fase de ejecución de transacciones. Un ejemplo ilustrativo dado en la documentación oficial es lavar la ropa, que es similar a cómo la cadena de bloques procesa transacciones, también completadas en varias etapas. El método tradicional procesa cada montón de ropa sucia a través del lavado, secado, doblado y almacenamiento antes de pasar al siguiente montón.

El escalamiento superscalar, por otro lado, comienza a lavar la segunda pila de ropa mientras la primera pila se está secando. Mientras la primera pila se está doblando, la segunda y tercera pilas se están secando y lavando respectivamente, manteniendo así activa cada etapa.

El mecanismo paralelo optimista paraleliza la ejecución de transacciones. Monad utiliza el paralelismo optimista para la ejecución en paralelo. También desarrolló su propio analizador de código estático para predecir dependencias entre transacciones, programando transacciones posteriores solo después de que las transacciones dependientes previas hayan sido ejecutadas, reduciendo significativamente la reejecución de transacciones debido a validaciones fallidas.

Actualmente, su rendimiento alcanza los 10,000 TPS y puede producir bloques en un segundo. A medida que el proyecto avanza, el equipo principal continuará explorando más mecanismos de optimización.

Proyecto L1 Altamente Descentralizado: Canto 5.1.3

Establecido en 2022, Canto es un proyecto L1 altamente descentralizado construido en el SDK de Cosmos. Opera sin una fundación oficial, no participa en preventas, no está afiliado a ninguna organización, no busca financiamiento y está completamente impulsado por la comunidad. Incluso el equipo central permanece anónimo, trabajando de manera poco organizada.

Aunque es una cadena de bloques general compatible con EVM, la visión principal de Canto es convertirse en una plataforma de valor DeFi accesible, transparente, descentralizada y gratuita. A través de una investigación exhaustiva en el sector, se ha descubierto que cualquier ecosistema DeFi saludable comprende tres elementos fundamentales:

  1. Intercambios descentralizados (DEX) como Uniswap y Sushiswap;
  2. Plataformas de préstamos como Compound y Aave;
  3. Tokens descentralizados como DAI, USDC o USDT.

Sin embargo, los ecosistemas DeFi tradicionales comparten en última instancia un destino común: emiten tokens de protocolo de gobernanza, cuyo valor depende de cuánta tarifa de uso pueda extraer el ecosistema de sus futuros usuarios, cuanto más se extrae, mayor es el valor. Esto se asemeja a que cada protocolo DeFi sea un estacionamiento de propiedad privada que cobra por hora: cuanto más se utiliza, mayor es su valoración.

Canto toma otro enfoque: Construir infraestructura pública gratuita para DeFi (Infraestructura Pública Gratuita), Hacerse un estacionamiento gratuito para sus proyectos ecológicos.

La infraestructura consta de 3 protocolos: el intercambio descentralizado Canto DEX, la plataforma de préstamos agrupados Canto Lending Market (CLM) bifurcada de Compound v2 y la moneda estable NOTE que se puede prestar desde CLM a través de activos de garantía.

Canto ha adoptado un enfoque novedoso: construir infraestructura pública gratuita dirigida a DeFi, posicionándose como un estacionamiento gratuito disponible para que los proyectos de su ecosistema lo utilicen sin costo alguno.

La infraestructura consta de tres protocolos: el intercambio descentralizado Canto DEX, la plataforma de préstamos compartidos Canto Lending Market (CLM) bifurcada de Compound v2, y la stablecoin NOTE, que se puede pedir prestada de CLM utilizando activos garantizados.

Canto DEX opera de forma perpetua como un protocolo no actualizable y sin gobernanza. Ni emite sus tokens ni cobra tarifas adicionales. Este diseño evita varios comportamientos de búsqueda de rentas dentro de las aplicaciones DeFi del ecosistema, evitando juegos de suma cero predatorios.

La gobernanza de la plataforma de préstamos CLM está controlada por las partes interesadas, que se benefician plenamente del crecimiento del ecosistema y, a su vez, crean el mejor entorno para los desarrolladores y usuarios de DeFi, motivándolos a contribuir continuamente. Los intereses generados por los préstamos emitidos en NOTE se pagan a los prestatarios, sin que el protocolo se lleve ninguna comisión.

Para los desarrolladores, Canto ha introducido el modelo de Ingresos Seguros del Contrato, que asigna un cierto porcentaje de las tarifas generadas a partir de las interacciones en cadena con los contratos a los desarrolladores. Esta serie de innovaciones en el modelo de negocio de Canto, denominada "matar tres pájaros de un tiro", fomenta un ecosistema constructivo y próspero al proporcionar una infraestructura financiera abierta y gratuita.

Por diversos medios, Canto incentiva a los desarrolladores y usuarios del ecosistema a unirse y enriquecer continuamente el ecosistema. Al controlar estrictamente los "derechos de acuñación", Canto crea posibilidades de liquidez entre diversas aplicaciones descentralizadas. A medida que el ecosistema prospera, sus tokens aumentan de valor. Después de que la propuesta de CSR fuera aprobada por votación comunitaria el 26 de enero de 2024, el token $CANTO experimentó un aumento de precio.

Siguiendo esta serie de innovaciones en el modelo de negocio, el 18 de marzo de 2024, Canto anunció su última ronda de iteraciones técnicas en su blog oficial.

Además de adoptar una nueva versión del Cosmos SDK e integrar nuevas tecnologías para reducir los cuellos de botella de acceso al almacenamiento, Canto también se actualizará a EVM paralelas: introduciendo la paralelización optimista a través de la implementación de Cyclone EVM.

El SDK de Cosmos utilizado por Canto divide el procesamiento de transacciones en tres etapas: Propuesta, Votación y Finalización. El subproceso ProcessProposal durante la Votación es responsable de la ejecución paralela de transacciones. El motor de ejecución paralela maneja la ejecución, mientras que el motor de detección de conflictos verifica la validez de las transacciones.

Si una transacción es inválida, se envía de vuelta al motor de ejecución para su reejecución; si es válida, se compromete al flujo de procesamiento posterior. Se cree que esta ronda de actualizaciones tecnológicas hará que los tokens de Canto sean aún más llamativos.

5.2 Basado en listas de acceso de estado estrictas: Combustible

Fuel, compuesto por la máquina virtual FuelVM, el lenguaje de desarrollo de contratos Sway inspirado en Rust y su conjunto de herramientas asociadas, es un “sistema operativo de rollup de Ethereum” modular personalizado. El proyecto Fuel se estableció en 2019 y en diciembre de 2020, Fuel Labs lanzó la primera capa de ejecución de rollup optimista en Ethereum, Fuel v1. Después de más de tres años de desarrollo, el proyecto finalmente está listo para lanzar su red principal en el tercer trimestre de 2024.

Fuel completó rondas de financiamiento de $1.5 millones y $80 millones en 2021 y 2022, respectivamente. El equipo principal consta de más de 60 ingenieros, con el fundador John Adler también siendo cofundador de la solución de disponibilidad de datos Celestia Labs y uno de los primeros defensores del enfoque de rollup optimista. En cuanto a operaciones, el proyecto cuenta con 270,000 miembros en Twitter y 390,000 en Discord.

Ejecutar transacciones una por una en la cadena de bloques incurre en tarifas de gas y compite por un valioso espacio de bloque, lo cual es lento. Naturalmente, vienen a la mente varias soluciones de escalabilidad, como el procesamiento por lotes de transacciones que luego se empaquetan juntas y se liquidan en la cadena para acelerar la ejecución.

Un rollup es una solución de escalado que opera fuera de L1, ejecutando transacciones en lotes fuera de la cadena y luego enviando datos de transacciones o pruebas de ejecución a L1. Esto asegura la seguridad a través de la capa DA y liquida transacciones. Hay dos tipos principales de rollups: optimistas y de conocimiento cero (ZK).

Los rollups optimistas asumen que las transacciones son válidas y producen una prueba de fraude para revertir transacciones maliciosas o incorrectas en L1 cuando se detectan. Los rollups ZK generan pruebas de validez de transacción a través de cálculos complejos sin exponer detalles de la transacción, y las publican en L1 para demostrar que el rollup ha ejecutado las transacciones correctamente. Por lo tanto, los rollups son una tecnología de capa de ejecución de cadena de bloques.

Aunque los rollups aceleran la ejecución de transacciones, la mayoría de las implementaciones existentes están diseñadas para blockchains monolíticas. Los desarrolladores tienen que hacer varios compromisos técnicos, lo que limita el rendimiento completo de los rollups. Con la nueva tendencia hacia blockchains modulares, no ha habido una solución de rollup adecuada en la industria. Fuel fue creado para llenar este vacío.

Fuel utiliza el modelo de datos UTXO, que tiene la ventaja de que sus salidas de transacción solo tienen dos estados: o bien gastadas, registradas permanentemente en el historial de transacciones del bloque, o no gastadas, disponibles para transacciones futuras. Esto minimiza los datos de estado almacenados en cada nodo de la cadena. Con base en esto, Fuel verifica la información de la cuenta accedida por cada transacción antes de la ejecución, identificando dependencias y programando transacciones sin dependencias para que se ejecuten en paralelo, mejorando el rendimiento del procesamiento de transacciones.

5.3 Integración entre cadenas L1 con soluciones L2: Neno, Eclipse y Lumio

Las soluciones L2 comparten una característica común: combinan las capacidades de dos tipos de máquinas virtuales para mejorar la velocidad de ejecución de transacciones. Específicamente, esto implica utilizar L1 paralelos para ejecutar transacciones manteniendo la compatibilidad con otras cadenas (soporte de máquina virtual dual). Sin embargo, los mecanismos de compatibilidad adoptados por diferentes proyectos varían. En este sentido, Neon, Eclipse y Lumio son particularmente representativos.

Neon afirma ser el primer proyecto paralelo de EVM en el ecosistema de Solana, lo que permite a los desarrolladores migrar sin problemas proyectos del ecosistema de Ethereum al ecosistema de Solana. Eclipse es otro protocolo en el ecosistema de Solana compatible con EVM, construido con una arquitectura modular. De entre estos tres proyectos, solo Neon ha emitido su propio token, logrando un valor de mercado de circulación superior a 78 millones.

Los otros dos proyectos aún se encuentran en etapas relativamente tempranas. Lumio combina Aptos y Ethereum para crear un protocolo de capa 2 de rollup optimista, ejecutando de manera eficiente aplicaciones de Ethereum a la velocidad de Move VM.

En cuanto a la financiación, Neon completó la recaudación de fondos de $40 millones en noviembre de 2021 y $5 millones en junio de 2023, con un total de $45 millones. Eclipse completó la recaudación de fondos de $6 millones en agosto de 2022, $9 millones en septiembre de 2022 y $50 millones en marzo de 2024, con un total de $65 millones. Lumio aún no ha recaudado fondos.

Ninguno de los tres proyectos ha logrado formar todavía un ecosistema de aplicaciones a gran escala, pero cuentan con decenas a cientos de miles de seguidores o miembros en las principales plataformas de redes sociales, lo que indica una actividad comunitaria significativa.

Desde una perspectiva de mecanismo, Neon es un emulador de EVM en la red Solana, que se ejecuta como un contrato inteligente. Los desarrolladores pueden utilizar lenguajes como Solidity y Vyper para escribir aplicaciones dApp, y pueden utilizar herramientas de Ethereum y APIs RPC compatibles con Ethereum, cuentas, firmas y estándares de tokens, como MetaMask, Hardhat y Remix. Mientras tanto, disfrutan de los beneficios de tarifas bajas, alta velocidad de ejecución de transacciones y capacidades de procesamiento paralelo proporcionadas por Solana.

Las transacciones de Ethereum enviadas desde el frontend de la aplicación Ethereum se convierten por un proxy en transacciones de Solana, luego se ejecutan en el emulador, modificando el estado de la cadena. Es como los emuladores de juegos que a menudo usamos en PC, que nos permiten jugar juegos exclusivos de consolas como Switch y PlayStation en computadoras de escritorio. Neon permite a los desarrolladores de Ethereum ejecutar aplicaciones de Ethereum en la red de Solana.

Eclipse adopta un enfoque de implementación diferente: ejecutar transacciones a través de SVM y liquidar transacciones a través de EVM. Eclipse utiliza una arquitectura de cadena de bloques modular, donde solo se encarga de la ejecución de transacciones y subcontrata otras responsabilidades, formando una solución unificada a través de combinaciones modulares.

Por ejemplo, utiliza Celestia para gestionar la disponibilidad de datos y Ethereum para ejecutar y liquidar transacciones. Eclipse garantiza la velocidad de ejecución a través de SVM y la seguridad a través de la validación y liquidación de Ethereum.

Lumio emplea una filosofía de diseño independiente de las capas de ejecución y liquidación, compatible con varias máquinas virtuales y compatible con múltiples redes L1/L2: Ethereum, Aptos, Optimism, Avalanche, zkSync, y otras. Ejecuta transacciones a través de Move VM y las liquida a través de EVM, conectando así los ecosistemas de Ethereum y Aptos.

Sin embargo, las ambiciones de Lumio no se detienen allí. Su visión es proporcionar llamadas cruzadas de máquinas virtuales para lograr conectividad de liquidez multi-blockchain a la velocidad más alta y las tarifas más bajas.

Los anteriores son los principales proyectos actualmente relacionados con la narrativa paralela de EVM, como se muestra en el siguiente diagrama.

6. Conclusión y Perspectivas

La gente a menudo compara Bitcoin con un "libro mayor distribuido" y Ethereum con una "máquina de estado distribuida". Si consideramos que todos los nodos que operan en una red de blockchain son un solo ordenador, entonces las cadenas de bloques paralelas estudian fundamentalmente cómo maximizar la utilización de los recursos de procesamiento de este "ordenador" para lograr las velocidades de ejecución más rápidas.

Esta es una evolución inevitable en la historia de la tecnología informática, similar al desarrollo de procesadores de un solo núcleo a procesadores de varios núcleos, y sistemas operativos que evolucionan de un solo usuario y un solo hilo a multiusuario y multidifusión. Esto tiene implicaciones significativas para el desarrollo continuo de la industria.

Los principios técnicos de la EVM paralela se pueden desglosar en dos componentes: la máquina virtual y el mecanismo de ejecución paralela. En el contexto de la cadena de bloques, la máquina virtual integra un conjunto de instrucciones para ejecutar contratos de manera distribuida y ejecutar dApps. El mecanismo de ejecución paralela se centra principalmente en maximizar la velocidad de ejecución de transacciones asegurando la precisión de los resultados de las transacciones.

Por un lado, las EVM paralelas comparten principios técnicos comunes. En primer lugar, el modelo de paralelización optimista es un consenso para las cadenas de bloques públicas de L1. Sin embargo, esto no significa que el modelo de bloqueo de memoria sea inútil. La superioridad tecnológica no existe; más bien, es el nivel de habilidad de los desarrolladores lo que varía.

En segundo lugar, proyectos como Fuel creen firmemente que los mecanismos de escalado fuera de la cadena solo pueden lograr su máximo rendimiento después de la modularización. Finalmente, numerosos proyectos de L2 buscan mejorar la capacidad de procesamiento de transacciones mediante la integración con blockchain públicos paralelos de L1, logrando así capacidades de escalado interecosistema.

Por otro lado, las cadenas de bloques paralelas tienen sus propios logros técnicos únicos. Incluso al adoptar el mismo modelo de ejecución paralela, diferentes equipos han implementado diferentes patrones de diseño arquitectónico, modelos de datos o mecanismos de preprocesamiento. La exploración tecnológica es interminable, y diferentes proyectos desarrollan tecnologías distintas basadas en diferentes visiones para llevar la práctica a niveles más altos.

Mirando hacia adelante, más proyectos L1 y L2 se unirán a la competencia en paralelo a las EVM. La pista L1 verá una competencia integral entre las EVM paralelas y los campos no EVM en recursos del procesador, recursos de almacenamiento, recursos de red, recursos del sistema de archivos y recursos del dispositivo. Esta competencia también dará lugar a nuevas narrativas relacionadas con la mejora del rendimiento. Mientras tanto, la pista L2 evolucionará hacia simuladores de máquinas virtuales de blockchain o blockchains modulares.

En el futuro, las optimizaciones de infraestructura traerán velocidades más rápidas, costos más bajos y mayor eficiencia. Los emprendedores de Web3 pueden innovar audazmente modelos de negocio para crear mejores experiencias de productos descentralizados en todo el mundo, lo que fomentará aún más el ecosistema de la industria. Para los inversores de Web3, centrarse únicamente en la tecnología es insuficiente.

Al elegir objetivos de inversión, los inversores deben considerar narrativas, capitalización de mercado y liquidez, seleccionando proyectos con "buenas narrativas", "baja capitalización de mercado" y "alta liquidez". Luego, deben adentrarse en el negocio, antecedentes del equipo, modelo económico, marketing y proyectos ecológicos, descubriendo así proyectos potenciales y encontrando avenidas de inversión adecuadas.

Las EVM paralelas todavía están en las primeras etapas de desarrollo, con proyectos como Neon, Monad, Canto, Eclipse, Fuel y Lumio en la fase en la que su valor no ha sido completamente realizado. En particular, Monad, Canto y Fuel.

Desde el estilo de marketing de Monad, no solo es destacado por sí mismo, sino que también vale la pena prestar atención a los proyectos de memes dentro de su ecosistema, lo que puede llevar a historias de enriquecimiento rápido impulsadas por la exageración. Canto cumple con las condiciones de una 'buena narrativa' y 'baja valoración de mercado', pero si es un buen objetivo de inversión aún requiere un examen exhaustivo de sus diversos indicadores. Fuel representa una dirección popular en el desarrollo de cadenas de bloques modulares y también puede dar lugar a nuevas oportunidades de inversión, todas las cuales son direcciones que merecen nuestra atención.

Declaración:

  1. Este artículo es reproducido de Academia Gryphsis), el título original es "Interpretación de diez mil palabras del EVM paralelo: ¿Cómo superar el cuello de botella del rendimiento de la Cadena de bloques?", los derechos de autor pertenecen al autor original [@leesper6], si tiene alguna objeción a la reproducción, por favor contacteEquipo de Aprendizaje Gate, el equipo lo manejará tan pronto como sea posible de acuerdo con los procedimientos relevantes.

  2. Descargo de responsabilidad: Las opiniones expresadas en este artículo representan solo las opiniones personales del autor y no constituyen ningún consejo de inversión.

  3. Otras versiones del artículo en otros idiomas son traducidas por el equipo de Gate Learn y no se mencionan enGate.ioEl artículo traducido no puede ser reproducido, distribuido o plagiado.

EVM paralelo: superando los cuellos de botella de rendimiento de la cadena de bloques

Intermedio4/15/2024, 3:33:01 PM
Este artículo explora los detalles técnicos y las perspectivas de mercado de las EVM paralelas, analizando los mecanismos de ejecución paralela de importantes proyectos de cadena de bloques como Sei, Monad y Canto, y evaluando su impacto potencial y posición en el mercado de la industria. A través de la optimización de la ejecución paralela, las redes de cadenas de bloques pueden mejorar significativamente la velocidad y eficiencia de procesamiento, apoyando el desarrollo generalizado del dominio Web3.

TL;DR

  1. Las EVM paralelas representan una nueva narrativa que surge cuando los volúmenes de transacciones en cadena alcanzan un cierto nivel. Se dividen principalmente en blockchains monolíticas y blockchains modulares, siendo las monolíticas categorizadas en L1 y L2. Las cadenas públicas paralelas L1 se dividen en dos campos: EVM y no EVM. Actualmente, la narrativa de las EVM paralelas se encuentra en sus primeras etapas de desarrollo.
  2. La ruta de implementación técnica de los EVM paralelos incluye máquinas virtuales y mecanismos de ejecución paralela. En el contexto de las cadenas de bloques, una máquina virtual es una máquina virtual de proceso que virtualiza la máquina de estado distribuida para ejecutar contratos.
  3. La ejecución paralela se refiere a aprovechar los procesadores multinúcleo para ejecutar múltiples transacciones simultáneamente tanto como sea posible, asegurando al mismo tiempo que el estado final sea consistente con lo que se lograría a través de la ejecución en serie.
  4. Los mecanismos de ejecución paralela se dividen en tres categorías: paso de mensajes, memoria compartida y listas de acceso a estados estrictos. La memoria compartida se divide además en el modelo de bloqueo de memoria y la paralelización optimista. Independientemente del mecanismo, cada uno aumenta la complejidad técnica.
  5. La narrativa de EVM paralelos no solo tiene impulsores intrínsecos del crecimiento de la industria, sino que también requiere que los profesionales presten mucha atención a posibles problemas de seguridad.
  6. Cada proyecto EVM paralelo proporciona su enfoque único para la ejecución en paralelo, mostrando tanto similitudes técnicas como innovaciones distintas.

1. Visión general de la industria

1.1 Evolución histórica

El rendimiento se ha convertido en un cuello de botella para un mayor desarrollo en la industria. Las redes de Cadena de bloques crean una nueva y descentralizada base de confianza para transacciones entre individuos y empresas.

Las redes de cadenas de bloques de primera generación, representadas por Bitcoin, fueron pioneras en un nuevo modo de transacciones de moneda electrónica descentralizada con tecnología de libro mayor distribuido, revolucionando una nueva era. La segunda generación, ejemplificada por Ethereum, utilizó plenamente la imaginación para proponer aplicaciones descentralizadas (dApps) a través de un enfoque de máquina de estado distribuido.

Desde entonces, las redes de cadenas de bloques han emprendido su propio desarrollo rápido durante más de una década, desde la infraestructura de Web3 hasta diversas áreas como DeFi, NFT, redes sociales y GameFi, dando lugar a numerosas innovaciones en tecnología y modelos de negocio. La próspera industria necesita atraer continuamente nuevos usuarios para participar en el ecosistema de aplicaciones descentralizadas, lo que a su vez plantea mayores requisitos para la experiencia del producto.

Web3, como una forma de producto novedosa "sin precedentes en la historia", debe innovar para satisfacer las necesidades del usuario (requisitos funcionales) mientras equilibra la seguridad y el rendimiento (requisitos no funcionales). Desde su inicio, se han propuesto diversas soluciones para abordar problemas de rendimiento.

Estas soluciones generalmente se pueden categorizar en dos tipos: soluciones de escalabilidad en cadena, como el particionamiento y los Gráficos Acíclicos Dirigidos (DAG), y soluciones de escalabilidad fuera de cadena, como Plasma, Lightning Networks, sidechains y Rollups. Sin embargo, todavía están lejos de mantenerse al día con el rápido crecimiento de las transacciones en cadena.

Especialmente después del verano DeFi de 2020 y el crecimiento explosivo de inscripciones en el ecosistema Bitcoin hacia finales de 2023, la industria necesita con urgencia nuevas soluciones de mejora de rendimiento para satisfacer las demandas de “alto rendimiento y bajas tarifas”. Las cadenas de bloques paralelas nacieron en este contexto.

1.2 Tamaño del mercado

La narrativa de EVM paralelo significa un panorama competitivo donde dos jugadores principales dominan en el campo de las cadenas de bloques paralelas. Ethereum procesa transacciones de forma serial, ejecutándolas una tras otra, lo que resulta en una baja utilización de recursos. Cambiar de procesamiento serial a paralelo podría mejorar significativamente el rendimiento.

Los rivales de Ethereum como Solana, Aptos y Sui, todos cuentan con capacidades de procesamiento paralelo incorporadas y han desarrollado ecosistemas sólidos. Sus respectivas capitalizaciones de mercado de tokens han alcanzado los $45 mil millones, $3.3 mil millones y $1.9 mil millones, formando un campo paralelo no EVM. En respuesta a estos desafíos, el ecosistema de Ethereum no se queda atrás, con varios proyectos que avanzan para potenciar EVM, creando así un campo EVM paralelo.

Sei, en su propuesta de actualización de versión 2, ha declarado en voz alta que se convertirá en la “primera cadena de bloques EVM paralela,” con una capitalización de mercado actual de $2.1 mil millones y potencial para un crecimiento aún mayor. La nueva cadena de bloques EVM paralela Monad, actualmente la más candente en fervor de marketing, es muy favorecida por los inversores y tiene un potencial significativo. Mientras tanto, la cadena de bloques L1 Canto, con una capitalización de mercado de $170 millones y su propia infraestructura pública gratuita, también ha anunciado su propuesta de actualización paralela EVM.

Además, varios proyectos L2 en etapas tempranas están mejorando el rendimiento interecosistémico al integrar las capacidades de múltiples cadenas L1. Aparte de Neon, que ha logrado un valor de mercado circulante de $69 millones, otros proyectos aún carecen de datos relevantes. Se espera que más proyectos L1 y L2 se unan al campo de batalla blockchain paralelo en el futuro.

No solo existe un importante potencial de crecimiento en el mercado para la narrativa paralela de EVM, sino que el sector más amplio de cadenas de bloques paralelas a las que pertenece la EVM paralela también tiene un importante potencial de crecimiento en el mercado, lo que promete una perspectiva de mercado amplia.

Actualmente, la capitalización de mercado total de la Capa 1 y la Capa 2 es de $752.123 mil millones, con blockchains paralelas que tienen una capitalización de mercado de $52.539 mil millones, lo que representa aproximadamente el 7%. Dentro de esto, los proyectos relacionados con la narrativa paralela de EVM tienen una capitalización de mercado de $2.339 mil millones, representando solo el 4% de la capitalización de mercado de las blockchains paralelas.

1.3 Mapa de la industria

La industria generalmente divide las redes de cadena de bloques en una estructura de cuatro capas:

Capa 0 (Red): Esta es la capa de red de cadena de bloques subyacente que maneja los protocolos básicos de comunicación de red.

Capa 1 (Infraestructura): Esta capa se basa en varios mecanismos de consenso para validar transacciones dentro de una red descentralizada.

Capa 2 (Expansión): Dependiente de la Capa 1, esto implica varios protocolos de segunda capa destinados a abordar las limitaciones de la Capa 1, especialmente en cuanto a la escalabilidad.

Capa 3 (Aplicación): Dependiente de la Capa 2 o Capa 1, esta capa se utiliza para construir varias aplicaciones descentralizadas (dApps).

Los proyectos narrativos paralelos de la Máquina Virtual Ethereum (Ethereum Virtual Machine) se dividen principalmente en blockchains monolíticas y blockchains modulares, con las blockchains monolíticas divididas aún más en L1 y L2. A partir del número total de proyectos y el desarrollo de varias pistas principales, se puede ver que los ecosistemas de cadenas públicas paralelas de la EVM L1 todavía tienen un espacio significativo para crecer en comparación con el ecosistema de Ethereum.

En la pista DeFi, hay una demanda de 'alta velocidad y bajos costos', mientras que la pista de juegos exige 'una fuerte interacción en tiempo real'; ambos requieren una cierta velocidad de ejecución. Las EVM paralelas inevitablemente traerán mejores experiencias de usuario a estos proyectos, impulsando el desarrollo de la industria hacia una nueva etapa.

L1 representa nuevas cadenas públicas con capacidades inherentes de ejecución paralela y sirve como infraestructura de alto rendimiento. En esta facción, proyectos como Sei v2, Monad y Canto han diseñado de forma independiente EVMs paralelos, que son compatibles con el ecosistema de Ethereum y proporcionan altas capacidades de volumen de transacciones.

L2, al integrar las capacidades de otras cadenas L1, ofrece una capacidad ampliada para la cooperación entre ecosistemas y es un ejemplo destacado de la tecnología rollup. En esta facción, Neon actúa como un emulador de EVM en la red de Solana, mientras que Eclipse ejecuta transacciones en Solana pero se liquida en el EVM. Lumio es similar a Eclipse, excepto que la capa de ejecución se ha cambiado a Aptos.

Además de las soluciones de cadena de bloques independientes mencionadas anteriormente, Fuel ha introducido su propio concepto de cadena de bloques modular. En su segunda versión, tiene como objetivo posicionarse como un sistema operativo de rollup de Ethereum, ofreciendo capacidades de ejecución modular más flexibles y completas.

Fuel se centra en ejecutar transacciones, mientras externaliza otros componentes a una o más capas independientes de cadena de bloques, lo que permite combinaciones más flexibles: puede funcionar como una Capa 2, una Capa 1, o incluso como una cadena lateral o un canal de estado. Actualmente, hay 17 proyectos dentro del ecosistema de Fuel, centrándose principalmente en DeFi, NFT y infraestructura.

Sin embargo, solo el oráculo cruzado oralmente se ha puesto en uso práctico. La plataforma de préstamos descentralizada Swaylend y la plataforma de trading de contratos perpetuos SPARK se han lanzado en testnets, mientras que otros proyectos aún están en desarrollo.

2. Vías de Implementación Técnica

Para lograr la ejecución descentralizada de transacciones, las redes de cadenas de bloques deben cumplir con cuatro responsabilidades:

  • Ejecución: Ejecutar y validar transacciones.
  • Disponibilidad de datos: Distribuir nuevos bloques a todos los nodos en la red de cadena de bloques.
  • Mecanismo de consenso: Verificación de bloques y logro de consenso.
  • Liquidación: Liquidación y registro del estado final de las transacciones.

El EVM paralelo se enfoca principalmente en la optimización del rendimiento de la capa de ejecución. Esto se divide en soluciones de Capa 1 (L1) y soluciones de Capa 2 (L2). Las soluciones de L1 introducen un mecanismo para la ejecución de transacciones en paralelo, lo que permite que las transacciones se ejecuten en paralelo dentro de la máquina virtual tanto como sea posible. Las soluciones de L2 aprovechan fundamentalmente la máquina virtual de L1 ya paralelizada para lograr algún nivel de “ejecución fuera de cadena + liquidación en cadena.”

Por lo tanto, para entender los principios técnicos de EVM paralelo, es necesario desglosarlo: primero, entender qué es una máquina virtual (VM), y luego entender qué implica la ejecución paralela.

2.1 Máquina virtual

En informática, una máquina virtual se refiere a la virtualización o emulación de un sistema informático.

Hay dos tipos de máquinas virtuales: máquinas virtuales de sistema, que pueden virtualizar una sola máquina física en varias máquinas que ejecutan diferentes sistemas operativos, mejorando así la utilización de recursos; y máquinas virtuales de proceso, que proporcionan una abstracción para ciertos lenguajes de programación de alto nivel, permitiendo que los programas informáticos escritos en estos lenguajes se ejecuten de manera independiente de la plataforma en diferentes plataformas.

La VM es una máquina virtual de proceso diseñada para el lenguaje de programación Java. Los programas escritos en Java se compilan primero en código de bytes de Java (un estado intermedio de código binario), que luego es interpretado por la VM: la VM envía el código de bytes a un intérprete, que lo traduce a código de máquina para diferentes máquinas, y luego lo ejecuta en la máquina.

Las máquinas virtuales de la cadena de bloques son un tipo de máquina virtual de proceso. En el contexto de la cadena de bloques, una máquina virtual se refiere a la virtualización de una máquina de estado distribuida utilizada para la ejecución distribuida de contratos, ejecutando dApps. Análogo al JVM, el EVM es una máquina virtual de proceso diseñada para el lenguaje Solidity, donde los contratos inteligentes se compilan primero en bytecode de opcode, luego son interpretados por el EVM.

Las cadenas públicas emergentes más allá de Ethereum a menudo adoptan máquinas virtuales basadas en el bytecode de WASM o eBPF. WASM es un formato de bytecode compacto, de carga rápida y portátil basado en mecanismos de seguridad de sandbox. Los desarrolladores pueden escribir contratos inteligentes en varios lenguajes de programación (C, C++, Rust, Go, Python, Java, o incluso TypeScript), compilarlos en bytecode de WASM y ejecutarlos. Los contratos inteligentes ejecutados en la cadena de bloques Sei utilizan este formato de bytecode.

eBPF se originó a partir de BPF (Berkeley Packet Filter), utilizado inicialmente para filtrar de manera eficiente paquetes de red, y evolucionó hacia eBPF, ofreciendo un conjunto de instrucciones más amplio.

Es una tecnología revolucionaria que permite la intervención dinámica y modificación del comportamiento del núcleo del sistema operativo sin alterar el código fuente. Más tarde, esta tecnología se trasladó más allá del núcleo, lo que llevó al desarrollo del tiempo de ejecución eBPF en el espacio de usuario, que es altamente eficiente, seguro y portátil. Los contratos inteligentes ejecutados en Solana se compilan en bytecode eBPF y se ejecutan en su red de blockchain.

Otras cadenas públicas L1 como Aptos y Sui utilizan el lenguaje de programación de contratos inteligentes Move, que se compila en un bytecode propietario ejecutado en la máquina virtual Move. Monad ha diseñado su propia máquina virtual compatible con el bytecode de la operación EVM (bifurcación de Shanghai).

2.2 Ejecución paralela

La ejecución en paralelo es una técnica que aprovecha las ventajas de los procesadores multinúcleo para manejar múltiples tareas simultáneamente, aumentando así el rendimiento del sistema. Garantiza que los resultados de las transacciones sean idénticos a los obtenidos cuando las transacciones se ejecutan en serie.

En las redes de blockchain, TPS (Transacciones Por Segundo) se utiliza comúnmente como un indicador técnico para medir la velocidad de procesamiento. El mecanismo de ejecución paralela es complejo y representa un desafío para las habilidades técnicas de los desarrolladores, lo que dificulta su explicación. Aquí, usaremos el ejemplo de un “banco” para explicar qué es la ejecución paralela.

(1) Primero, ¿qué es la ejecución en serie?

Escenario 1: Si vemos el sistema como un banco y la CPU de procesamiento de tareas como un mostrador, entonces la ejecución de tareas en serie es similar a este banco que solo tiene un mostrador disponible para el servicio. En este caso, los clientes (tareas) que vienen al banco deben formar una larga fila y atender sus asuntos uno por uno. Para cada cliente, el personal del mostrador debe repetir las mismas acciones (ejecutar instrucciones) para atender al cliente. Los clientes deben esperar su turno, lo que conlleva tiempos de transacción prolongados.

(2) Entonces, ¿qué es la ejecución paralela?

Escenario 2: Si el banco ve que está abarrotado, podría abrir varios mostradores para atender negocios, con cuatro empleados trabajando en los mostradores simultáneamente. Esto aumenta la velocidad aproximadamente cuatro veces en comparación con la original, y el tiempo que los clientes pasan en la fila también se reduce a aproximadamente una cuarta parte del original. Por lo tanto, la velocidad de atención de negocios en el banco se incrementa.

(3) ¿Qué error ocurre si no hay protecciones en su lugar y dos personas transfieren dinero simultáneamente a otra persona?

Escenario 3: Consideremos a A, B y C, quienes tienen 2 ETH, 1 ETH y 0 ETH en sus cuentas, respectivamente. Ahora, A y B quieren transferir 0.5 ETH a C. En un sistema que ejecuta transacciones de forma serial, no se producirían problemas (la flecha izquierda "<=" indica lectura del libro mayor, y la flecha derecha "=>" indica escritura en el libro mayor, lo mismo a continuación):

Sin embargo, la ejecución paralela no es tan simple como parece. Hay muchos detalles sutiles que pueden llevar a errores graves si no se manejan con cuidado. Si las transacciones de A y B transferidas a C se ejecutan en paralelo, la secuencia de pasos puede dar lugar a resultados inconsistentes:

La Tarea Paralela 1 ejecuta la transferencia de A a C, y la Tarea Paralela 2 ejecuta la transferencia de B a C. Los pasos marcados con un asterisco son problemáticos: debido a que las tareas se ejecutan en paralelo, en el Paso 2, el cálculo de saldo realizado por la Tarea Paralela 1 aún no ha sido escrito en el libro mayor. En el Paso 3, la Tarea Paralela 2 lee el saldo de la cuenta de C (que aún es 0) y realiza un cálculo de saldo erróneo basado en esto en el Paso 5. Luego, en la operación de actualización del libro mayor en el Paso 6, actualiza incorrectamente el saldo de la cuenta, que ya se había actualizado a 0.5 en el Paso 4, de vuelta a 0.5 nuevamente. Esto resulta en que el saldo de la cuenta de C sea solo de 0.5 ETH, a pesar de que tanto A como B han transferido 0.5 ETH cada uno, lo que hace que los otros 0.5 ETH desaparezcan efectivamente.

(4) Si no hay protecciones en su lugar, dos tareas que no dependen entre sí pueden ejecutarse en paralelo sin errores

Escenario 4: La Tarea Paralela 1 ejecuta una transferencia de 0.5 ETH de A (saldo 2 ETH) a C (saldo 0 ETH), y la Tarea Paralela 2 ejecuta una transferencia de 0.5 ETH de B (saldo 1 ETH) a D (saldo 0 ETH). Es evidente que no hay dependencia entre estas dos tareas de transferencia. Independientemente de cómo se entrelacen los pasos de las dos tareas, no encontrarán los problemas descritos anteriormente:

De la comparación de estos escenarios, se puede analizar que siempre que exista una dependencia entre tareas, pueden producirse errores en las actualizaciones de estado durante la ejecución en paralelo; de lo contrario, no se producirán errores. Una tarea (transacción) se considera que tiene una relación de dependencia si cumple una de las dos siguientes condiciones:

  1. Una tarea escribe en una dirección de salida de la cual otra tarea lee como dirección de entrada;
  2. Dos tareas se envían a la misma dirección.

Este problema no es único en sistemas descentralizados. Cualquier escenario que implique ejecución paralela puede sufrir de inconsistencias de datos debido al acceso no protegido a recursos compartidos (como el "libro mayor" en el ejemplo del banco o la memoria compartida en sistemas informáticos) entre múltiples tareas dependientes, conocidas como carreras de datos.

La industria ha propuesto tres mecanismos para resolver los problemas de carrera de datos en la ejecución paralela: mecanismos de paso de mensajes, mecanismos de memoria compartida y mecanismos de lista de acceso de estado estricto.

2.3 Mecanismo de paso de mensajes

Escenario 5: Considere un banco con cuatro mostradores de servicio operando simultáneamente para los clientes. A cada cajero en estos mostradores se le entrega un libro mayor único, que solo ellos pueden modificar. Este libro mayor registra los saldos de cuenta de los clientes a los que atienden.

Siempre que un cajero maneja una transacción, si la información del cliente está disponible en su libro mayor, proceden directamente. Si no, llaman a otros cajeros para informarles sobre las necesidades de transacción del cliente, y el cajero que escucha se hace cargo de la tarea.

Esto ejemplifica el principio del modelo de paso de mensajes. El modelo de Actor es un tipo de modelo de paso de mensajes, donde cada entidad que maneja transacciones es un actor (cajero), cada uno con acceso a sus datos privados (el libro mayor exclusivo). Acceder a los datos privados de otra persona solo se puede lograr mediante el envío de mensajes.

Ventajas del Modelo de Actor:

Cada actor solo tiene acceso a sus datos privados, evitando así problemas de condición de carrera.

Desventajas del Modelo de Actores:

Cada actor solo puede ejecutar tareas de forma secuencial. En ciertos escenarios, esto no aprovecha las ventajas del paralelismo. Por ejemplo, si los cajeros No. 2, 3 y 4 envían mensajes simultáneamente para preguntar al cajero No. 1 sobre el saldo de la cuenta del cliente A, el cajero No. 1 solo puede procesar estas solicitudes una a la vez, aunque podrían ser manejadas en paralelo.

No hay una vista global del estado actual del sistema. Si las operaciones del sistema son complejas, se vuelve difícil entender la situación general, localizar y corregir errores.

2.4 Mecanismo de Memoria Compartida

Modelo de Bloqueo de Memoria 2.4.1

Escenario 6: Imagina un banco con solo un gran libro mayor que registra los saldos de cuenta de todos sus clientes. Junto al libro mayor, solo hay un bolígrafo disponible para hacer modificaciones en él.

En este escenario, la competencia entre cuatro cajeros bancarios se convierte en una carrera de velocidad: un cajero agarra primero el bolígrafo (lo bloquea) y comienza a modificar el libro mayor, mientras que los otros tres deben esperar. Una vez que el cajero termina y pone el bolígrafo abajo (lo desbloquea), los siguientes tres cajeros se apresuran a agarrar el bolígrafo. Este ciclo se repite, ejemplificando el modelo de bloqueo de memoria.

Un bloqueo de memoria permite que las tareas que se ejecutan en paralelo bloqueen un recurso compartido antes de acceder a él. Después de que el recurso está bloqueado, otras tareas deben esperar hasta que se modifique y desbloquee antes de que puedan bloquearlo y acceder a él nuevamente.

El modelo de bloqueo de lectura-escritura ofrece un enfoque más refinado, permitiendo que múltiples tareas paralelas agreguen bloqueos de lectura a un recurso compartido y accedan a sus datos varias veces. Durante esto, no se permiten modificaciones; sin embargo, un bloqueo de escritura puede ser aplicado solo por uno a la vez, y una vez aplicado, otorga acceso exclusivo al titular del recurso.

Plataformas de cadenas de bloques como Solana, Sui y Sei v1 utilizan un modelo de memoria compartida basado en bloqueos de memoria. Este mecanismo puede parecer simple, pero es complejo de implementar y requiere que los desarrolladores tengan habilidades sofisticadas en programación multihilo. La negligencia puede llevar a varios errores:

Escenario 1: Una tarea bloquea un recurso compartido pero se bloquea durante la ejecución, dejando el recurso inaccesible.

Escenario 2: Una tarea bloquea un recurso pero termina bloqueándolo nuevamente debido a la lógica empresarial anidada, lo que resulta en un punto muerto donde espera por sí misma.

El modelo de bloqueo de memoria es propenso a problemas como bloqueos, bloqueos vivos y inanición:

  1. Se produce un punto muerto cuando varias tareas paralelas compiten por múltiples recursos compartidos, con cada tarea que posee una parte de ellos y espera a que otros liberen sus partes.
  2. El livelock ocurre cuando las tareas en paralelo detectan que otras tareas están activas y renuncian voluntariamente a su control sobre los recursos compartidos, lo que lleva a un ciclo continuo de cesión.
  3. El hambre ocurre cuando las tareas de alta prioridad obtienen consistentemente acceso a recursos compartidos, mientras que las tareas de menor prioridad soportan una espera prolongada.

2.4.2 Paralelismo Optimista

Escenario 7

En un banco, cuatro cajeros tienen la capacidad de acceder y modificar de forma independiente el libro mayor durante las transacciones, independientemente de si otros cajeros están utilizando el libro mayor. Al utilizar el libro mayor, cada cajero aplica una etiqueta personal a las entradas a las que acceden o modifican. Después de completar una transacción, revisan nuevamente las entradas; si encuentran una etiqueta que no es la suya, indica que la entrada ha sido modificada por otro cajero y la transacción debe ser anulada y procesada nuevamente.

Esto ejemplifica el principio básico del paralelismo optimista. La idea principal del paralelismo optimista es asumir inicialmente que todas las tareas son independientes. Las tareas se ejecutan en paralelo, y luego cada tarea se valida. Si una tarea no pasa la validación, se vuelve a ejecutar hasta que todas las tareas estén completas. Supongamos que hay ocho tareas paralelas realizadas de manera optimista, que necesitan acceso a dos recursos compartidos, A y B.

Durante la Fase 1, las tareas 1, 2 y 3 se ejecutan en paralelo. Sin embargo, las tareas 2 y 3 acceden al recurso compartido B simultáneamente, lo que provoca un conflicto, por lo que la tarea 3 se reprograma para la siguiente fase. En la Fase 2, las tareas 3 y 4 acceden a B, lo que resulta en la reprogramación de la tarea 4, y así sucesivamente, hasta que todas las tareas estén completadas. Como se puede ver, las tareas que encuentran conflictos se vuelven a ejecutar repetidamente.

Modelo de Paralelismo Optimista

El modelo de paralelismo optimista emplea una estructura de datos en memoria multi-versión para registrar cada valor escrito y su información de versión (similar a las etiquetas utilizadas por los cajeros bancarios).

La ejecución de cada tarea paralela se divide en dos fases: ejecución y validación. Durante la fase de ejecución, todas las acciones de lectura y escritura de datos se registran, formando un conjunto de lectura y un conjunto de escritura. En la fase de validación, se comparan el conjunto de lectura y el conjunto de escritura con la estructura de datos de múltiples versiones. Si la comparación revela que los datos no son los más recientes, la validación falla.

El modelo de paralelismo optimista se originó a partir de la Memoria Transaccional de Software (STM), un mecanismo de programación sin bloqueos en el campo de las bases de datos. Dado que las redes de cadenas de bloques mantienen inherentemente un orden definido de transacciones, este concepto se ha introducido y evolucionado hacia el mecanismo de Bloque-STM. Plataformas de cadenas de bloques como Aptos y Monad han adoptado Bloque-STM como su mecanismo de ejecución paralela.

Vale la pena mencionar que la cadena pública Sei, en su próxima versión v2, ha abandonado el modelo de bloqueo de memoria original a favor del modelo de paralelismo optimista. Block-STM ejecuta transacciones a un ritmo extremadamente rápido; en un entorno de prueba, Aptos alcanzó una impresionante velocidad de ejecución de transacciones de 160k transacciones por segundo (tps), que es 18 veces más rápido que el procesamiento de transacciones secuenciales.

Bloquear-STM delega la ejecución y validación de transacciones complejas al equipo de desarrollo principal, lo que permite a los desarrolladores escribir contratos inteligentes tan fácilmente como si estuvieran programando en un entorno de ejecución secuencial.

2.5 Lista de acceso estricto al estado

Los mecanismos de paso de mensajes y memoria compartida se basan en el modelo de datos de cuenta/saldo, que registra la información de saldo de cada cuenta en la cadena de bloques. Es similar a cómo el libro mayor de un banco muestra que el Cliente A tiene un saldo de 1,000 unidades y el Cliente B tiene un saldo de 600 unidades. Las transacciones se procesan simplemente actualizando el estado de saldo de las cuentas.

Alternativamente, también se podrían registrar los detalles de cada transacción en el momento de la transacción, creando un libro mayor de transacciones. Este libro mayor se puede utilizar para calcular los saldos de la cuenta. Por ejemplo:

  • El cliente A abre una cuenta y deposita 1,000 unidades;
  • El cliente B abre una cuenta (0 unidades);
  • El cliente A transfiere 100 unidades al cliente B.

Al leer y calcular el libro mayor, se puede determinar que el Cliente A tiene un saldo de 900 unidades y el Cliente B tiene un saldo de 100 unidades.

UTXO (Unspent Transaction Output) es similar a este modelo de datos de registro de transacciones. Representa un método para denotar la moneda digital en Bitcoin, la cadena de bloques de primera generación. Cada transacción tiene inputs (cómo se recibieron los fondos) y outputs (cómo se gastaron los fondos), y los UTXO pueden entenderse simplemente como los recibos de fondos que aún no han sido gastados.

Por ejemplo, si el Cliente A tiene 6 BTC y transfiere 5.2 BTC al Cliente B, dejando 0.8 BTC, desde la perspectiva de los UTXO, se vería así: Los 6 UTXO valorados en 1 BTC cada uno son destruidos, y B recibe un nuevo UTXO valorado en 5.2 BTC, mientras que A recibe un nuevo UTXO valorado en 0.8 BTC como cambio. Así, se destruyen 6 UTXO para crear 2 nuevos UTXO.

Las entradas y salidas de una transacción están vinculadas y utilizan firmas digitales para registrar información de propiedad, formando así el modelo UTXO. Las cadenas de bloques que adoptan este modelo de datos necesitan sumar todos los UTXOs para una dirección de cuenta en particular para determinar el saldo actual de la cuenta. La Lista de Acceso al Estado Estricto (SSAL) se basa en el modelo UTXO y permite la ejecución en paralelo. Pre-calcula las direcciones de cuenta a las que accederá cada transacción, formando una lista de acceso.

La lista de acceso sirve para dos propósitos:

  1. Evaluación de seguridad de la transacción: Si una transacción accede a una dirección que no está en la lista de acceso, la ejecución falla.
  2. Ejecución paralela de transacciones: Según la lista de acceso, las transacciones se agrupan en varios conjuntos. Dado que no hay dependencias (intersecciones) entre los conjuntos en la lista de acceso, estos conjuntos de transacciones pueden ejecutarse en paralelo.

3. Impulsores del crecimiento de la industria

Desde una perspectiva intrínseca, el desarrollo de cualquier cosa generalmente progresa desde la concepción hasta el perfeccionamiento, y la búsqueda de la velocidad por parte de la humanidad es eterna. Para abordar los problemas de velocidad de ejecución en las redes de blockchain, han surgido una variedad de soluciones, tanto on-chain como off-chain. Las soluciones off-chain, como los rollups, han sido plenamente reconocidas por su valor, mientras que la narrativa de las Máquinas Virtuales Paralelas de Ethereum (EVM) todavía ofrece importantes oportunidades de exploración.

Históricamente, con la aprobación de la SEC de un ETF de Bitcoin al contado y el próximo evento de reducción a la mitad de Bitcoin, junto con posibles recortes en las tasas de interés por la Reserva Federal, se espera que las criptomonedas entren en un importante mercado alcista. El sólido crecimiento de la industria requiere infraestructuras de redes de bloques capaces de manejar un mayor rendimiento como base sólida.

En cuanto a la gestión de recursos, las redes de cadenas de bloques tradicionales procesan las transacciones de forma serial, un método directo pero ineficiente que desperdicia recursos del procesador. En contraste, las cadenas de bloques paralelas hacen pleno uso de los recursos informáticos, extrayendo significativamente el potencial de rendimiento de los procesadores multinúcleo, mejorando así la eficiencia general de las redes de cadenas de bloques.

En cuanto al desarrollo de la industria, aunque continuamente surgen diversas innovaciones tecnológicas y de modelos de negocio, el potencial de crecimiento en Web3 sigue en gran medida sin explotar. Las redes centralizadas pueden manejar más de 50,000 mensajes por segundo, enviar 3.4 millones de correos electrónicos, completar 100,000 búsquedas en Google y soportar decenas de miles de jugadores en línea simultáneamente, logros aún no alcanzados por las redes descentralizadas. Para que los sistemas descentralizados compitan y se abran camino en su territorio, es esencial la optimización continua de los mecanismos de ejecución paralela y el aumento de la capacidad de transacciones.

Desde la perspectiva de las aplicaciones descentralizadas, atraer a más usuarios requiere esfuerzos significativos en mejorar la experiencia del usuario. La optimización del rendimiento es una dirección clave para mejorar la experiencia del usuario. Para los usuarios de DeFi, satisfacer las demandas de alta velocidad de transacción y bajos costos es crucial. Para los usuarios de GameFi, la interacción en tiempo real es necesaria. Todos estos requisitos son apoyados por la robustez de la ejecución paralela.

4. Problemas existentes

El "trilema de la cadena de bloques" establece que la descentralización, la seguridad y la escalabilidad solo pueden satisfacer dos de los tres atributos simultáneamente. Dado que la "descentralización" es un pilar inamovible, mejorar la "escalabilidad" implica una reducción de la "seguridad". Dado que el código está escrito por humanos, es propenso a errores. La complejidad técnica introducida por la computación paralela proporciona un caldo de cultivo para posibles vulnerabilidades de seguridad.

La programación multiproceso es particularmente desafiante debido a dos problemas principales: en primer lugar, es propensa a condiciones de carrera debido al manejo inadecuado de diversas operaciones de control concurrentes complejas; en segundo lugar, puede provocar bloqueos al acceder a direcciones de memoria no válidas, lo que incluso podría provocar vulnerabilidades de desbordamiento de búfer explotables por atacantes.

Hay al menos tres perspectivas desde las cuales evaluar la seguridad de un proyecto:

1. Antecedentes del equipo: Los equipos con experiencia en programación de sistemas son expertos en programación multiproceso y pueden abordar el 80% de los problemas complejos. La programación de sistemas generalmente implica las siguientes áreas:

  • Sistemas operativos
  • Varios controladores de dispositivos
  • Sistemas de archivos
  • Bases de datos
  • Sistemas embebidos
  • Criptografía
  • Codecs multimedia
  • Gestión de memoria
  • Redes
  • Virtualización
  • Juegos
  • Lenguajes de programación avanzados

2. Mantenibilidad del código: Escribir código mantenible sigue una metodología clara, como tener un diseño arquitectónico claro, utilizar patrones de diseño para implementar la reutilización de código, emplear técnicas de desarrollo orientado a pruebas para escribir amplias pruebas unitarias y eliminar código redundante mediante una refactorización cuidadosa.

3. Lenguaje de programación utilizado: Algunos lenguajes de programación de vanguardia están diseñados con un fuerte énfasis en la seguridad de la memoria y la alta concurrencia. Los compiladores verifican el código en busca de problemas concurrentes o posibles accesos a direcciones de memoria no válidas, lo que resulta en un fallo de compilación si se detecta, obligando así a los desarrolladores a escribir un código robusto.

El lenguaje Rust es ejemplar en este sentido, por eso vemos que la mayoría de los proyectos de cadena de bloques paralelos se desarrollan en Rust. Incluso algunos proyectos toman prestado el diseño de Rust para implementar sus propios lenguajes de contrato inteligente, como el lenguaje Sway de Fuel.

5. Disposición objetivo

5.1 Basado en el modelo de paralelización optimista

5.1.1 Desde bloqueos de memoria hasta paralelismo optimista

Sei es una cadena de bloques pública de propósito general basada en tecnología de código abierto, establecida en 2022. Los fundadores son exalumnos de la Universidad de California, Berkeley, y otros miembros del equipo también tienen antecedentes de prestigiosas universidades en el extranjero.

Sei ha recibido financiamiento en tres rondas: una ronda inicial de $5 millones, una primera ronda de financiamiento estratégico de $30 millones, y una segunda ronda de financiamiento estratégico donde el monto no fue revelado. La Red Sei también ha recaudado un total de $100 millones en fondos para apoyar el desarrollo de su ecosistema.

En agosto de 2023, Sei se lanzó en su mainnet, afirmando ser la cadena de bloques pública L1 más rápida, capaz de procesar 12,500 transacciones por segundo, con una finalidad lograda en solo 380 ms. Actualmente, tiene una capitalización de mercado de casi $2.2 mil millones.

Actualmente, el ecosistema Sei comprende 118 proyectos, centrándose principalmente en DeFi, infraestructura, NFT, juegos y billeteras. La comunidad actualmente tiene 650,000 miembros en Twitter, 600,000 en Discord y 40,000 en Telegram.

A finales de noviembre de 2023, Sei anunció en su blog oficial que iniciaría la actualización de versión más significativa desde el lanzamiento de la red principal en la primera mitad de 2024: Sei v2. Sei v2 se presenta como la primera cadena de bloques EVM paralela. Esta actualización de versión introducirá las siguientes nuevas funciones:

  • Compatibilidad con versiones anteriores para contratos inteligentes de EVM: Los desarrolladores pueden migrar e implementar contratos inteligentes de EVM sin modificar el código.
  • Reusabilidad para herramientas/aplicaciones comunes como Metamask.
  • Paralelización optimista: Sei v2 abandonará el mecanismo de acceso compartido de bloqueo de memoria a favor de la paralelización optimista.
  • SeiDB: Optimización de la capa de almacenamiento.
  • Soporte para una interoperabilidad perfecta entre Ethereum y otras cadenas.

Originalmente, la ejecución paralela de transacciones de Sei Network se basaba en un modelo de bloqueo de memoria. Antes de la ejecución, se resolvían todas las dependencias entre transacciones pendientes y se generaba un DAG, luego, basándose en el DAG, se organizaba precisamente el orden de ejecución de las transacciones. Este método aumentaba la carga mental en los desarrolladores de contratos porque debían incorporar la lógica en el código durante el desarrollo.

Como se introdujo en la sección de principios técnicos anterior, con la adopción de la paralelización optimista en la nueva versión, los desarrolladores ahora pueden escribir contratos inteligentes como si estuvieran escribiendo programas ejecutados secuencialmente. Mecanismos complejos como la programación, ejecución y verificación de transacciones son manejados por los módulos subyacentes. El diseño de propuesta de optimización del equipo central también introdujo una mejora adicional de las capacidades de ejecución paralela a través del prellenado de dependencias.

Específicamente, esto implica la introducción de un generador de dependencias dinámico que analiza las operaciones de escritura de transacciones antes de la ejecución y las pre-rellena en una estructura de datos de memoria de múltiples versiones, optimizando la posible contención de datos. Después del análisis, el equipo central concluyó que si bien dicho mecanismo de optimización no es ventajoso en el mejor escenario para el procesamiento de transacciones, mejora significativamente la eficiencia de ejecución en el peor escenario.

5.1.2 Posible disruptor en la pista L1: Monad

Si te perdiste el desarrollo de las cadenas de bloques públicas mencionadas anteriormente, entonces definitivamente no deberías perderte Monad. Se dice que es un posible disruptor en la pista L1.

Monad fue fundada por dos ingenieros senior de Jump Crypto en 2022. El proyecto completó una ronda de financiación semilla de $19 millones en febrero de 2023. En marzo de 2024, Paradigm lideró las negociaciones para una ronda de financiación de más de $200 millones para Monad. Si tiene éxito, esta sería la mayor financiación de criptomonedas desde el comienzo del año.

El proyecto ya ha alcanzado el hito de lanzar una red de prueba interna y está trabajando hacia el siguiente paso de abrir una red de prueba pública.

Monad es muy favorecido por el capital por dos razones prominentes: una es su sólido trasfondo técnico, y la otra es su proficiencia en la exageración de marketing. El equipo central de Monad Labs está formado por 30 miembros, todos los cuales tienen décadas de experiencia profunda en trading de alta frecuencia, controladores de kernel y tecnología financiera, y amplia experiencia en el desarrollo de sistemas distribuidos.

Las operaciones diarias del proyecto también son muy "terrenales": participando continuamente en "marketing mágico" con sus 200,000 seguidores en Twitter y 150,000 miembros en Discord. Por ejemplo, organizar concursos semanales de memes, recopilar varios emojis o videos de animales púrpuras peculiares de la comunidad, para realizar una "diseminación espiritual."

La visión de Monad es convertirse en una plataforma de contratos inteligentes para desarrolladores, aportando mejoras extremas de rendimiento al ecosistema de Ethereum. Monad introduce dos mecanismos a la Máquina Virtual de Ethereum: uno es la canalización superscalar y el otro es un mecanismo paralelo optimista mejorado.

La canalización superscalar paraleliza la fase de ejecución de transacciones. Un ejemplo ilustrativo dado en la documentación oficial es lavar la ropa, que es similar a cómo la cadena de bloques procesa transacciones, también completadas en varias etapas. El método tradicional procesa cada montón de ropa sucia a través del lavado, secado, doblado y almacenamiento antes de pasar al siguiente montón.

El escalamiento superscalar, por otro lado, comienza a lavar la segunda pila de ropa mientras la primera pila se está secando. Mientras la primera pila se está doblando, la segunda y tercera pilas se están secando y lavando respectivamente, manteniendo así activa cada etapa.

El mecanismo paralelo optimista paraleliza la ejecución de transacciones. Monad utiliza el paralelismo optimista para la ejecución en paralelo. También desarrolló su propio analizador de código estático para predecir dependencias entre transacciones, programando transacciones posteriores solo después de que las transacciones dependientes previas hayan sido ejecutadas, reduciendo significativamente la reejecución de transacciones debido a validaciones fallidas.

Actualmente, su rendimiento alcanza los 10,000 TPS y puede producir bloques en un segundo. A medida que el proyecto avanza, el equipo principal continuará explorando más mecanismos de optimización.

Proyecto L1 Altamente Descentralizado: Canto 5.1.3

Establecido en 2022, Canto es un proyecto L1 altamente descentralizado construido en el SDK de Cosmos. Opera sin una fundación oficial, no participa en preventas, no está afiliado a ninguna organización, no busca financiamiento y está completamente impulsado por la comunidad. Incluso el equipo central permanece anónimo, trabajando de manera poco organizada.

Aunque es una cadena de bloques general compatible con EVM, la visión principal de Canto es convertirse en una plataforma de valor DeFi accesible, transparente, descentralizada y gratuita. A través de una investigación exhaustiva en el sector, se ha descubierto que cualquier ecosistema DeFi saludable comprende tres elementos fundamentales:

  1. Intercambios descentralizados (DEX) como Uniswap y Sushiswap;
  2. Plataformas de préstamos como Compound y Aave;
  3. Tokens descentralizados como DAI, USDC o USDT.

Sin embargo, los ecosistemas DeFi tradicionales comparten en última instancia un destino común: emiten tokens de protocolo de gobernanza, cuyo valor depende de cuánta tarifa de uso pueda extraer el ecosistema de sus futuros usuarios, cuanto más se extrae, mayor es el valor. Esto se asemeja a que cada protocolo DeFi sea un estacionamiento de propiedad privada que cobra por hora: cuanto más se utiliza, mayor es su valoración.

Canto toma otro enfoque: Construir infraestructura pública gratuita para DeFi (Infraestructura Pública Gratuita), Hacerse un estacionamiento gratuito para sus proyectos ecológicos.

La infraestructura consta de 3 protocolos: el intercambio descentralizado Canto DEX, la plataforma de préstamos agrupados Canto Lending Market (CLM) bifurcada de Compound v2 y la moneda estable NOTE que se puede prestar desde CLM a través de activos de garantía.

Canto ha adoptado un enfoque novedoso: construir infraestructura pública gratuita dirigida a DeFi, posicionándose como un estacionamiento gratuito disponible para que los proyectos de su ecosistema lo utilicen sin costo alguno.

La infraestructura consta de tres protocolos: el intercambio descentralizado Canto DEX, la plataforma de préstamos compartidos Canto Lending Market (CLM) bifurcada de Compound v2, y la stablecoin NOTE, que se puede pedir prestada de CLM utilizando activos garantizados.

Canto DEX opera de forma perpetua como un protocolo no actualizable y sin gobernanza. Ni emite sus tokens ni cobra tarifas adicionales. Este diseño evita varios comportamientos de búsqueda de rentas dentro de las aplicaciones DeFi del ecosistema, evitando juegos de suma cero predatorios.

La gobernanza de la plataforma de préstamos CLM está controlada por las partes interesadas, que se benefician plenamente del crecimiento del ecosistema y, a su vez, crean el mejor entorno para los desarrolladores y usuarios de DeFi, motivándolos a contribuir continuamente. Los intereses generados por los préstamos emitidos en NOTE se pagan a los prestatarios, sin que el protocolo se lleve ninguna comisión.

Para los desarrolladores, Canto ha introducido el modelo de Ingresos Seguros del Contrato, que asigna un cierto porcentaje de las tarifas generadas a partir de las interacciones en cadena con los contratos a los desarrolladores. Esta serie de innovaciones en el modelo de negocio de Canto, denominada "matar tres pájaros de un tiro", fomenta un ecosistema constructivo y próspero al proporcionar una infraestructura financiera abierta y gratuita.

Por diversos medios, Canto incentiva a los desarrolladores y usuarios del ecosistema a unirse y enriquecer continuamente el ecosistema. Al controlar estrictamente los "derechos de acuñación", Canto crea posibilidades de liquidez entre diversas aplicaciones descentralizadas. A medida que el ecosistema prospera, sus tokens aumentan de valor. Después de que la propuesta de CSR fuera aprobada por votación comunitaria el 26 de enero de 2024, el token $CANTO experimentó un aumento de precio.

Siguiendo esta serie de innovaciones en el modelo de negocio, el 18 de marzo de 2024, Canto anunció su última ronda de iteraciones técnicas en su blog oficial.

Además de adoptar una nueva versión del Cosmos SDK e integrar nuevas tecnologías para reducir los cuellos de botella de acceso al almacenamiento, Canto también se actualizará a EVM paralelas: introduciendo la paralelización optimista a través de la implementación de Cyclone EVM.

El SDK de Cosmos utilizado por Canto divide el procesamiento de transacciones en tres etapas: Propuesta, Votación y Finalización. El subproceso ProcessProposal durante la Votación es responsable de la ejecución paralela de transacciones. El motor de ejecución paralela maneja la ejecución, mientras que el motor de detección de conflictos verifica la validez de las transacciones.

Si una transacción es inválida, se envía de vuelta al motor de ejecución para su reejecución; si es válida, se compromete al flujo de procesamiento posterior. Se cree que esta ronda de actualizaciones tecnológicas hará que los tokens de Canto sean aún más llamativos.

5.2 Basado en listas de acceso de estado estrictas: Combustible

Fuel, compuesto por la máquina virtual FuelVM, el lenguaje de desarrollo de contratos Sway inspirado en Rust y su conjunto de herramientas asociadas, es un “sistema operativo de rollup de Ethereum” modular personalizado. El proyecto Fuel se estableció en 2019 y en diciembre de 2020, Fuel Labs lanzó la primera capa de ejecución de rollup optimista en Ethereum, Fuel v1. Después de más de tres años de desarrollo, el proyecto finalmente está listo para lanzar su red principal en el tercer trimestre de 2024.

Fuel completó rondas de financiamiento de $1.5 millones y $80 millones en 2021 y 2022, respectivamente. El equipo principal consta de más de 60 ingenieros, con el fundador John Adler también siendo cofundador de la solución de disponibilidad de datos Celestia Labs y uno de los primeros defensores del enfoque de rollup optimista. En cuanto a operaciones, el proyecto cuenta con 270,000 miembros en Twitter y 390,000 en Discord.

Ejecutar transacciones una por una en la cadena de bloques incurre en tarifas de gas y compite por un valioso espacio de bloque, lo cual es lento. Naturalmente, vienen a la mente varias soluciones de escalabilidad, como el procesamiento por lotes de transacciones que luego se empaquetan juntas y se liquidan en la cadena para acelerar la ejecución.

Un rollup es una solución de escalado que opera fuera de L1, ejecutando transacciones en lotes fuera de la cadena y luego enviando datos de transacciones o pruebas de ejecución a L1. Esto asegura la seguridad a través de la capa DA y liquida transacciones. Hay dos tipos principales de rollups: optimistas y de conocimiento cero (ZK).

Los rollups optimistas asumen que las transacciones son válidas y producen una prueba de fraude para revertir transacciones maliciosas o incorrectas en L1 cuando se detectan. Los rollups ZK generan pruebas de validez de transacción a través de cálculos complejos sin exponer detalles de la transacción, y las publican en L1 para demostrar que el rollup ha ejecutado las transacciones correctamente. Por lo tanto, los rollups son una tecnología de capa de ejecución de cadena de bloques.

Aunque los rollups aceleran la ejecución de transacciones, la mayoría de las implementaciones existentes están diseñadas para blockchains monolíticas. Los desarrolladores tienen que hacer varios compromisos técnicos, lo que limita el rendimiento completo de los rollups. Con la nueva tendencia hacia blockchains modulares, no ha habido una solución de rollup adecuada en la industria. Fuel fue creado para llenar este vacío.

Fuel utiliza el modelo de datos UTXO, que tiene la ventaja de que sus salidas de transacción solo tienen dos estados: o bien gastadas, registradas permanentemente en el historial de transacciones del bloque, o no gastadas, disponibles para transacciones futuras. Esto minimiza los datos de estado almacenados en cada nodo de la cadena. Con base en esto, Fuel verifica la información de la cuenta accedida por cada transacción antes de la ejecución, identificando dependencias y programando transacciones sin dependencias para que se ejecuten en paralelo, mejorando el rendimiento del procesamiento de transacciones.

5.3 Integración entre cadenas L1 con soluciones L2: Neno, Eclipse y Lumio

Las soluciones L2 comparten una característica común: combinan las capacidades de dos tipos de máquinas virtuales para mejorar la velocidad de ejecución de transacciones. Específicamente, esto implica utilizar L1 paralelos para ejecutar transacciones manteniendo la compatibilidad con otras cadenas (soporte de máquina virtual dual). Sin embargo, los mecanismos de compatibilidad adoptados por diferentes proyectos varían. En este sentido, Neon, Eclipse y Lumio son particularmente representativos.

Neon afirma ser el primer proyecto paralelo de EVM en el ecosistema de Solana, lo que permite a los desarrolladores migrar sin problemas proyectos del ecosistema de Ethereum al ecosistema de Solana. Eclipse es otro protocolo en el ecosistema de Solana compatible con EVM, construido con una arquitectura modular. De entre estos tres proyectos, solo Neon ha emitido su propio token, logrando un valor de mercado de circulación superior a 78 millones.

Los otros dos proyectos aún se encuentran en etapas relativamente tempranas. Lumio combina Aptos y Ethereum para crear un protocolo de capa 2 de rollup optimista, ejecutando de manera eficiente aplicaciones de Ethereum a la velocidad de Move VM.

En cuanto a la financiación, Neon completó la recaudación de fondos de $40 millones en noviembre de 2021 y $5 millones en junio de 2023, con un total de $45 millones. Eclipse completó la recaudación de fondos de $6 millones en agosto de 2022, $9 millones en septiembre de 2022 y $50 millones en marzo de 2024, con un total de $65 millones. Lumio aún no ha recaudado fondos.

Ninguno de los tres proyectos ha logrado formar todavía un ecosistema de aplicaciones a gran escala, pero cuentan con decenas a cientos de miles de seguidores o miembros en las principales plataformas de redes sociales, lo que indica una actividad comunitaria significativa.

Desde una perspectiva de mecanismo, Neon es un emulador de EVM en la red Solana, que se ejecuta como un contrato inteligente. Los desarrolladores pueden utilizar lenguajes como Solidity y Vyper para escribir aplicaciones dApp, y pueden utilizar herramientas de Ethereum y APIs RPC compatibles con Ethereum, cuentas, firmas y estándares de tokens, como MetaMask, Hardhat y Remix. Mientras tanto, disfrutan de los beneficios de tarifas bajas, alta velocidad de ejecución de transacciones y capacidades de procesamiento paralelo proporcionadas por Solana.

Las transacciones de Ethereum enviadas desde el frontend de la aplicación Ethereum se convierten por un proxy en transacciones de Solana, luego se ejecutan en el emulador, modificando el estado de la cadena. Es como los emuladores de juegos que a menudo usamos en PC, que nos permiten jugar juegos exclusivos de consolas como Switch y PlayStation en computadoras de escritorio. Neon permite a los desarrolladores de Ethereum ejecutar aplicaciones de Ethereum en la red de Solana.

Eclipse adopta un enfoque de implementación diferente: ejecutar transacciones a través de SVM y liquidar transacciones a través de EVM. Eclipse utiliza una arquitectura de cadena de bloques modular, donde solo se encarga de la ejecución de transacciones y subcontrata otras responsabilidades, formando una solución unificada a través de combinaciones modulares.

Por ejemplo, utiliza Celestia para gestionar la disponibilidad de datos y Ethereum para ejecutar y liquidar transacciones. Eclipse garantiza la velocidad de ejecución a través de SVM y la seguridad a través de la validación y liquidación de Ethereum.

Lumio emplea una filosofía de diseño independiente de las capas de ejecución y liquidación, compatible con varias máquinas virtuales y compatible con múltiples redes L1/L2: Ethereum, Aptos, Optimism, Avalanche, zkSync, y otras. Ejecuta transacciones a través de Move VM y las liquida a través de EVM, conectando así los ecosistemas de Ethereum y Aptos.

Sin embargo, las ambiciones de Lumio no se detienen allí. Su visión es proporcionar llamadas cruzadas de máquinas virtuales para lograr conectividad de liquidez multi-blockchain a la velocidad más alta y las tarifas más bajas.

Los anteriores son los principales proyectos actualmente relacionados con la narrativa paralela de EVM, como se muestra en el siguiente diagrama.

6. Conclusión y Perspectivas

La gente a menudo compara Bitcoin con un "libro mayor distribuido" y Ethereum con una "máquina de estado distribuida". Si consideramos que todos los nodos que operan en una red de blockchain son un solo ordenador, entonces las cadenas de bloques paralelas estudian fundamentalmente cómo maximizar la utilización de los recursos de procesamiento de este "ordenador" para lograr las velocidades de ejecución más rápidas.

Esta es una evolución inevitable en la historia de la tecnología informática, similar al desarrollo de procesadores de un solo núcleo a procesadores de varios núcleos, y sistemas operativos que evolucionan de un solo usuario y un solo hilo a multiusuario y multidifusión. Esto tiene implicaciones significativas para el desarrollo continuo de la industria.

Los principios técnicos de la EVM paralela se pueden desglosar en dos componentes: la máquina virtual y el mecanismo de ejecución paralela. En el contexto de la cadena de bloques, la máquina virtual integra un conjunto de instrucciones para ejecutar contratos de manera distribuida y ejecutar dApps. El mecanismo de ejecución paralela se centra principalmente en maximizar la velocidad de ejecución de transacciones asegurando la precisión de los resultados de las transacciones.

Por un lado, las EVM paralelas comparten principios técnicos comunes. En primer lugar, el modelo de paralelización optimista es un consenso para las cadenas de bloques públicas de L1. Sin embargo, esto no significa que el modelo de bloqueo de memoria sea inútil. La superioridad tecnológica no existe; más bien, es el nivel de habilidad de los desarrolladores lo que varía.

En segundo lugar, proyectos como Fuel creen firmemente que los mecanismos de escalado fuera de la cadena solo pueden lograr su máximo rendimiento después de la modularización. Finalmente, numerosos proyectos de L2 buscan mejorar la capacidad de procesamiento de transacciones mediante la integración con blockchain públicos paralelos de L1, logrando así capacidades de escalado interecosistema.

Por otro lado, las cadenas de bloques paralelas tienen sus propios logros técnicos únicos. Incluso al adoptar el mismo modelo de ejecución paralela, diferentes equipos han implementado diferentes patrones de diseño arquitectónico, modelos de datos o mecanismos de preprocesamiento. La exploración tecnológica es interminable, y diferentes proyectos desarrollan tecnologías distintas basadas en diferentes visiones para llevar la práctica a niveles más altos.

Mirando hacia adelante, más proyectos L1 y L2 se unirán a la competencia en paralelo a las EVM. La pista L1 verá una competencia integral entre las EVM paralelas y los campos no EVM en recursos del procesador, recursos de almacenamiento, recursos de red, recursos del sistema de archivos y recursos del dispositivo. Esta competencia también dará lugar a nuevas narrativas relacionadas con la mejora del rendimiento. Mientras tanto, la pista L2 evolucionará hacia simuladores de máquinas virtuales de blockchain o blockchains modulares.

En el futuro, las optimizaciones de infraestructura traerán velocidades más rápidas, costos más bajos y mayor eficiencia. Los emprendedores de Web3 pueden innovar audazmente modelos de negocio para crear mejores experiencias de productos descentralizados en todo el mundo, lo que fomentará aún más el ecosistema de la industria. Para los inversores de Web3, centrarse únicamente en la tecnología es insuficiente.

Al elegir objetivos de inversión, los inversores deben considerar narrativas, capitalización de mercado y liquidez, seleccionando proyectos con "buenas narrativas", "baja capitalización de mercado" y "alta liquidez". Luego, deben adentrarse en el negocio, antecedentes del equipo, modelo económico, marketing y proyectos ecológicos, descubriendo así proyectos potenciales y encontrando avenidas de inversión adecuadas.

Las EVM paralelas todavía están en las primeras etapas de desarrollo, con proyectos como Neon, Monad, Canto, Eclipse, Fuel y Lumio en la fase en la que su valor no ha sido completamente realizado. En particular, Monad, Canto y Fuel.

Desde el estilo de marketing de Monad, no solo es destacado por sí mismo, sino que también vale la pena prestar atención a los proyectos de memes dentro de su ecosistema, lo que puede llevar a historias de enriquecimiento rápido impulsadas por la exageración. Canto cumple con las condiciones de una 'buena narrativa' y 'baja valoración de mercado', pero si es un buen objetivo de inversión aún requiere un examen exhaustivo de sus diversos indicadores. Fuel representa una dirección popular en el desarrollo de cadenas de bloques modulares y también puede dar lugar a nuevas oportunidades de inversión, todas las cuales son direcciones que merecen nuestra atención.

Declaración:

  1. Este artículo es reproducido de Academia Gryphsis), el título original es "Interpretación de diez mil palabras del EVM paralelo: ¿Cómo superar el cuello de botella del rendimiento de la Cadena de bloques?", los derechos de autor pertenecen al autor original [@leesper6], si tiene alguna objeción a la reproducción, por favor contacteEquipo de Aprendizaje Gate, el equipo lo manejará tan pronto como sea posible de acuerdo con los procedimientos relevantes.

  2. Descargo de responsabilidad: Las opiniones expresadas en este artículo representan solo las opiniones personales del autor y no constituyen ningún consejo de inversión.

  3. Otras versiones del artículo en otros idiomas son traducidas por el equipo de Gate Learn y no se mencionan enGate.ioEl artículo traducido no puede ser reproducido, distribuido o plagiado.

Comece agora
Registe-se e ganhe um cupão de
100 USD
!