Interpretación de diez mil caracteres del EVM paralelo: más allá de la serie, ¿cómo superar el cuello de botella en el rendimiento de la Cadena de bloques?
El rendimiento se ha convertido en un cuello de botella para el desarrollo adicional de la Cadena de bloques. La red de Cadena de bloques crea una nueva base de confianza descentralizada para que individuos y empresas realicen transacciones.
Las primeras redes de cadena de bloques, representadas por Bitcoin, crearon un nuevo modelo de transacciones de moneda electrónica descentralizada mediante la contabilidad distribuida, inaugurando de manera revolucionaria una nueva era. Las segundas redes de cadena de bloques, representadas por Ethereum, aprovechan al máximo la imaginación, proponiendo la implementación de aplicaciones descentralizadas (dApp) a través de máquinas de estado distribuidas.
Desde entonces, la red de Cadena de bloques ha comenzado su propia historia de desarrollo acelerado durante más de una década, desde la infraestructura Web3 hasta diversas áreas representadas por DeFi, NFT, redes sociales y GameFi, naciendo innumerables innovaciones, ya sean técnicas o de modelos comerciales. El florecimiento de la industria requiere atraer constantemente nuevos usuarios para participar en la construcción del ecosistema de aplicaciones descentralizadas, lo que a su vez plantea mayores exigencias para la experiencia del producto.
Y Web3, como una nueva forma de producto "sin precedentes", no solo debe innovar en la satisfacción de las necesidades de los usuarios (necesidades funcionales), sino que también debe considerar cómo lograr un equilibrio entre la seguridad y el rendimiento (necesidades no funcionales). Desde su nacimiento, se han propuesto diversas soluciones para intentar resolver los problemas de rendimiento.
Estas soluciones se pueden dividir en dos categorías: una categoría son las soluciones de escalado en cadena, como el sharding y el grafo acíclico dirigido (DAG); la otra categoría son las soluciones de escalado fuera de la cadena, como Plasma, la red Lightning, las cadenas laterales y los Rollups. Sin embargo, esto aún está lejos de seguir el rápido crecimiento de las transacciones en cadena.
Particularmente después de haber pasado por el verano de DeFi de 2020 y la continua explosión de inscripciones en el ecosistema de Bitcoin a finales de 2023, la industria necesita urgentemente nuevas soluciones de mejora del rendimiento para satisfacer los requisitos de "alto rendimiento y bajas tarifas". La cadena de bloques paralela nació en este contexto.
Descripción general de EVM en paralelo
La narrativa de EVM en paralelo marca la formación de un escenario competitivo de dos fuerzas en el campo de las cadenas de bloques paralelas. El procesamiento de transacciones de Ethereum es secuencial, las transacciones deben ejecutarse una tras otra en orden, lo que resulta en una baja utilización de recursos. Cambiar el enfoque de procesamiento secuencial a procesamiento en paralelo traerá una gran mejora en el rendimiento.
Competidores de Ethereum como Solana, Aptos y Sui tienen capacidades de procesamiento paralelo integradas y sus ecosistemas también se han desarrollado bastante bien, con capitalización de mercado de los tokens alcanzando 45 mil millones, 3.3 mil millones y 1.9 mil millones de dólares, formando así un campamento no EVM paralelo. Frente al desafío, el ecosistema de Ethereum también no se queda atrás, surgiendo para potenciar EVM, formando un campamento EVM paralelo.
Una plataforma de intercambio ha declarado con gran bombo en su propuesta de actualización a la versión v2 que se convertirá en "la primera cadena de bloques EVM paralela", con una capitalización de mercado actual de 2,1 mil millones de dólares, y se espera que tenga un desarrollo aún mayor. Actualmente, la nueva cadena pública EVM paralela Monad, que lidera el marketing, es muy favorecida por el capital y su potencial no debe ser subestimado. Además, la cadena pública L1 Canto, con una capitalización de mercado de 170 millones de dólares y que cuenta con infraestructura pública gratuita, también ha anunciado su propuesta de actualización de EVM paralela.
Además, varios proyectos de L2 que aún se encuentran en una etapa temprana están mejorando el rendimiento interecológico mediante la integración de las capacidades de múltiples cadenas de L1. Aparte de Neon, que ha alcanzado un valor de mercado circulante de 69 millones de dólares, otros proyectos carecen de datos relevantes. Se cree que en el futuro aparecerán más proyectos de L1 y L2 que se unirán a la batalla de cadenas de bloques paralelas.
No solo la narrativa de EVM paralelo tiene un gran espacio de crecimiento en el mercado, sino que el sector de cadenas de bloques paralelas al que pertenece la narrativa de EVM paralelo también tiene un gran espacio de crecimiento en el mercado, por lo que las perspectivas del mercado son amplias.
Actualmente, la capitalización de mercado total de L1 y L2 es de 7521.23 millones de dólares, y la capitalización de mercado de las cadenas de bloques paralelas es de 525.39 millones de dólares, representando solo aproximadamente el 7%. De esto, la capitalización de mercado de los proyectos relacionados con la narrativa EVM paralela es de 23.39 millones de dólares, que solo representa el 4% de la capitalización de mercado de las cadenas de bloques paralelas.
Clasificación de proyectos narrativos EVM paralelos
La industria generalmente divide la red de Cadena de bloques en 4 capas.
Capa 0 (red): red de base de la Cadena de bloques, que maneja los protocolos de comunicación de red básicos.
Capa 1 (Infraestructura): Red descentralizada que depende de varios mecanismos de consenso para validar transacciones
Capa 2 (Escalabilidad): Depende de varios protocolos de segunda capa de la Capa 1, destinados a resolver diversas limitaciones de la Capa 1, especialmente la escalabilidad.
Capa 3 (Aplicación): depende de la Capa 2 o la Capa 1, utilizada para construir diversas aplicaciones descentralizadas (dApp)
Los proyectos narrativos de EVM paralelos se dividen principalmente en cadenas de bloques monolíticas y cadenas de bloques modulares, siendo las cadenas de bloques monolíticas a su vez divididas en L1 y L2. A partir del número total de proyectos y el desarrollo de algunas de las principales pistas, se puede observar que los ecosistemas de las cadenas de bloques públicas L1 de EVM paralelos todavía tienen un gran espacio de desarrollo en comparación con el ecosistema de Ethereum.
El sector DeFi tiene la demanda de "alta velocidad y bajas tarifas", mientras que el sector de juegos tiene la demanda de "fuertes interacciones en tiempo real". Ambos tienen ciertos requisitos sobre la velocidad de ejecución. El EVM paralelo sin duda proporcionará una mejor experiencia de usuario a estos proyectos, impulsando el desarrollo de la industria hacia una nueva etapa.
L1 es una nueva cadena de bloques que cuenta con capacidad de ejecución paralela y es una infraestructura de alto rendimiento. En esta rama de L1, proyectos como Sei v2, Monad y Canto diseñan su propia EVM paralela, son compatibles con el ecosistema de Ethereum y ofrecen una alta capacidad de procesamiento de transacciones.
L2, a través de la integración de las capacidades de otras cadenas L1, ofrece capacidad de escalabilidad para la cooperación entre ecosistemas, siendo el rollup un enfoque destacado. Dentro de esta categoría de L2, Neon es un simulador EVM en la red Solana, mientras que Eclipse utiliza Solana para ejecutar transacciones pero realiza la liquidación en EVM. Lumio es similar a Eclipse, solo que sustituye la capa de ejecución por Aptos.
Además de la solución de cadena de bloques monolítica mencionada, Fuel ha propuesto su propio enfoque de cadena de bloques modular. En su segunda versión, se posicionará como un sistema operativo rollup de Ethereum, ofreciendo una capacidad de ejecución modular más flexible y completa.
Fuel se centra en la ejecución de transacciones, delegando el resto a una o más cadenas de bloques independientes, logrando así una combinación más flexible: puede ser tanto L2 como L1, e incluso cadena lateral o canal de estado. Actualmente, el ecosistema de Fuel cuenta con 17 proyectos, principalmente enfocados en DeFi, NFT e infraestructura.
Sin embargo, solo el oráculo de cadena cruzada Orally ha sido implementado en la práctica. La plataforma de préstamo descentralizada Swaylend y la plataforma de negociación de contratos perpetuos SPARK han entrado en la red de prueba, mientras que otros proyectos aún están en desarrollo.
Principios de la tecnología EVM paralela
Para lograr la ejecución de transacciones descentralizadas, la red de cadena de bloques debe cumplir con 4 responsabilidades:
Ejecución: ejecutar y verificar transacciones
Disponibilidad de datos: distribuir nuevos Bloquear a todos los nodos de la Cadena de bloques
Mecanismo de consenso: validar bloques, alcanzar consenso
Liquidación: Liquidar y registrar el estado final de la transacción
EVM paralelo se centra principalmente en la optimización del rendimiento de la capa de ejecución. Esto se divide en dos soluciones: la solución de red de capa uno (L1) y la solución de red de capa dos (L2). La solución de L1 introduce un mecanismo de ejecución paralela de transacciones, permitiendo que las transacciones se ejecuten de manera paralela en la máquina virtual. La solución de L2, en esencia, utiliza la máquina virtual L1 ya paralelizada para lograr cierto grado de "ejecución fuera de la cadena + liquidación en la cadena".
Por lo tanto, para entender los principios técnicos de EVM en paralelo, hay que descomponerlo: primero entender qué es una máquina virtual (virtual machine) y luego entender qué es la ejecución paralela (parallel execution).
máquina virtual
En la ciencia de la computación, una máquina virtual se refiere a la virtualización o emulación de un sistema informático.
Las máquinas virtuales se dividen en dos tipos: una se llama máquina virtual de sistema (system virtual machine), que puede virtualizar una máquina física en varias máquinas, ejecutando múltiples sistemas operativos, lo que aumenta la utilización de recursos. La otra se llama máquina virtual de proceso (process virtual machine), que proporciona abstracción para ciertos lenguajes de programación de alto nivel, permitiendo que los programas informáticos escritos en este lenguaje se ejecuten de manera independiente de la plataforma en diferentes plataformas.
JVM es una máquina virtual de procesos diseñada para el lenguaje de programación Java. Los programas escritos en Java se compilan primero en bytecode de Java (un código binario de estado intermedio), el bytecode de Java es interpretado y ejecutado por la JVM: la JVM envía el bytecode al intérprete, que lo traduce a código de máquina en diferentes máquinas y luego se ejecuta en la máquina.
La máquina virtual de cadena de bloques es un tipo de máquina virtual de procesos. En el contexto de la cadena de bloques, la máquina virtual se refiere a la virtualización de una máquina de estados distribuidos, utilizada para ejecutar contratos de manera distribuida y para ejecutar dApps. Al igual que la JVM, la EVM es una máquina virtual de procesos diseñada para el lenguaje Solidity; los contratos inteligentes se compilan primero en código de bytes opcode y luego son interpretados y ejecutados por la EVM.
Las nuevas cadenas de bloques emergentes fuera de Ethereum adoptan cada vez más máquinas virtuales basadas en código de bytes WASM o eBPF al implementar sus propias máquinas virtuales. WASM es un formato de código de bytes de tamaño pequeño, carga rápida, portátil y basado en un mecanismo de seguridad de sandbox, los desarrolladores pueden usar varios lenguajes de programación (C, C++, Rust, Go, Python, Java e incluso TypeScript) para escribir contratos inteligentes, que luego se compilan en código de bytes WASM y se ejecutan. El contrato inteligente ejecutado en una cadena de bloques adoptó precisamente este formato de código de bytes.
eBPF es la evolución de BPF (Berkeley Packet Filter, filtro de paquetes de Berkeley), que originalmente se utilizaba para el filtrado eficiente de paquetes de red y que, tras su evolución, ha dado lugar a eBPF, proporcionando un conjunto de instrucciones más rico.
Es una tecnología revolucionaria que permite la intervención dinámica en el núcleo del sistema operativo y la modificación de su comportamiento sin cambiar el código fuente. Posteriormente, esta tecnología salió del núcleo y se desarrolló en un entorno de ejecución eBPF en modo usuario, que tiene alto rendimiento, seguridad y portabilidad. Los contratos inteligentes ejecutados en Solana se compilan en bytecode eBPF y se ejecutan en su Cadena de bloques.
En otras cadenas de bloques de nivel 1, Aptos y Sui utilizan el lenguaje de programación de contratos inteligentes Move, que se compila en un bytecode único que se ejecuta en la máquina virtual Move. Monad, por su parte, ha diseñado su propia máquina virtual compatible con el bytecode opcode de EVM (fork de Shanghai).
mecanismo de ejecución en paralelo
La ejecución en paralelo es una técnica de este tipo:
Capacidad de aprovechar las ventajas de los procesadores multinúcleo para manejar múltiples tareas simultáneamente, aumentando el rendimiento del sistema;
Asegúrese de que los resultados de las transacciones obtenidos sean exactamente los mismos que si se ejecutaran en serie y en orden.
La red de cadena de bloques utiliza comúnmente TPS (transacciones por segundo) como un indicador técnico para medir la velocidad de procesamiento. El mecanismo de ejecución paralela es bastante complejo y también pone a prueba el nivel técnico de los desarrolladores, por lo que no es fácil de explicar. A continuación, comenzaremos con un ejemplo de "banco" para explicar qué es la ejecución paralela.
Primero, ¿qué es la ejecución en serie?
Situación 1: Si vemos el sistema como un banco y la CPU que procesa las tareas como un mostrador, entonces ejecutar tareas de forma secuencial es como si este banco solo tuviera un mostrador para atender los negocios. En este momento, los clientes (tareas) que vienen al banco para realizar trámites solo pueden formar una larga cola y atender uno por uno. Para cada cliente, el personal del mostrador tiene que repetir la misma acción (ejecutar instrucciones) para atender a los clientes. Cuando no es su turno, el cliente solo puede esperar, lo que provoca un aumento en el tiempo de transacción.
¿Entonces qué es la ejecución en paralelo?
Situación 2: En este momento, el banco ve que está lleno de gente, así que abre varios mostradores más para manejar los negocios. Hay 4 cajeros en el mostrador manejando negocios al mismo tiempo, lo que hace que la velocidad sea aproximadamente 4 veces más rápida que antes, por lo que el tiempo de espera de los clientes se reduce a aproximadamente 1/4 del original, y la velocidad de procesamiento de negocios del banco mejora.
¿Qué error ocurriría si dos personas transfieren dinero a otra persona al mismo tiempo sin protección?
Situación 3: A, B y C, tres personas, tienen en sus cuentas 2 ETH, 1 ETH y 0 ETH respectivamente. Ahora A y B quieren transferir 0.5 ETH a C. En un sistema de ejecución de transacciones en serie, no habrá ningún problema (la flecha izquierda "\u003c=" indica lectura del libro mayor, la flecha derecha "=\u003e" indica escritura en el libro mayor, lo mismo a continuación):
A.transfer(C, 0.5):
A <= 2
A => 1.5
Ver originales
Esta página puede contener contenido de terceros, que se proporciona únicamente con fines informativos (sin garantías ni declaraciones) y no debe considerarse como un respaldo por parte de Gate a las opiniones expresadas ni como asesoramiento financiero o profesional. Consulte el Descargo de responsabilidad para obtener más detalles.
12 me gusta
Recompensa
12
5
Compartir
Comentar
0/400
MrDecoder
· hace19h
La paralelización es el futuro
Ver originalesResponder0
gas_fee_trauma
· hace19h
Aún hay que ver el gas
Ver originalesResponder0
HodlOrRegret
· hace19h
El camino por delante es brillante pero lleno de obstáculos.
Análisis exhaustivo de EVM paralelo: rompiendo el cuello de botella del rendimiento y abriendo una nueva era de Web3
Interpretación de diez mil caracteres del EVM paralelo: más allá de la serie, ¿cómo superar el cuello de botella en el rendimiento de la Cadena de bloques?
El rendimiento se ha convertido en un cuello de botella para el desarrollo adicional de la Cadena de bloques. La red de Cadena de bloques crea una nueva base de confianza descentralizada para que individuos y empresas realicen transacciones.
Las primeras redes de cadena de bloques, representadas por Bitcoin, crearon un nuevo modelo de transacciones de moneda electrónica descentralizada mediante la contabilidad distribuida, inaugurando de manera revolucionaria una nueva era. Las segundas redes de cadena de bloques, representadas por Ethereum, aprovechan al máximo la imaginación, proponiendo la implementación de aplicaciones descentralizadas (dApp) a través de máquinas de estado distribuidas.
Desde entonces, la red de Cadena de bloques ha comenzado su propia historia de desarrollo acelerado durante más de una década, desde la infraestructura Web3 hasta diversas áreas representadas por DeFi, NFT, redes sociales y GameFi, naciendo innumerables innovaciones, ya sean técnicas o de modelos comerciales. El florecimiento de la industria requiere atraer constantemente nuevos usuarios para participar en la construcción del ecosistema de aplicaciones descentralizadas, lo que a su vez plantea mayores exigencias para la experiencia del producto.
Y Web3, como una nueva forma de producto "sin precedentes", no solo debe innovar en la satisfacción de las necesidades de los usuarios (necesidades funcionales), sino que también debe considerar cómo lograr un equilibrio entre la seguridad y el rendimiento (necesidades no funcionales). Desde su nacimiento, se han propuesto diversas soluciones para intentar resolver los problemas de rendimiento.
Estas soluciones se pueden dividir en dos categorías: una categoría son las soluciones de escalado en cadena, como el sharding y el grafo acíclico dirigido (DAG); la otra categoría son las soluciones de escalado fuera de la cadena, como Plasma, la red Lightning, las cadenas laterales y los Rollups. Sin embargo, esto aún está lejos de seguir el rápido crecimiento de las transacciones en cadena.
Particularmente después de haber pasado por el verano de DeFi de 2020 y la continua explosión de inscripciones en el ecosistema de Bitcoin a finales de 2023, la industria necesita urgentemente nuevas soluciones de mejora del rendimiento para satisfacer los requisitos de "alto rendimiento y bajas tarifas". La cadena de bloques paralela nació en este contexto.
Descripción general de EVM en paralelo
La narrativa de EVM en paralelo marca la formación de un escenario competitivo de dos fuerzas en el campo de las cadenas de bloques paralelas. El procesamiento de transacciones de Ethereum es secuencial, las transacciones deben ejecutarse una tras otra en orden, lo que resulta en una baja utilización de recursos. Cambiar el enfoque de procesamiento secuencial a procesamiento en paralelo traerá una gran mejora en el rendimiento.
Competidores de Ethereum como Solana, Aptos y Sui tienen capacidades de procesamiento paralelo integradas y sus ecosistemas también se han desarrollado bastante bien, con capitalización de mercado de los tokens alcanzando 45 mil millones, 3.3 mil millones y 1.9 mil millones de dólares, formando así un campamento no EVM paralelo. Frente al desafío, el ecosistema de Ethereum también no se queda atrás, surgiendo para potenciar EVM, formando un campamento EVM paralelo.
Una plataforma de intercambio ha declarado con gran bombo en su propuesta de actualización a la versión v2 que se convertirá en "la primera cadena de bloques EVM paralela", con una capitalización de mercado actual de 2,1 mil millones de dólares, y se espera que tenga un desarrollo aún mayor. Actualmente, la nueva cadena pública EVM paralela Monad, que lidera el marketing, es muy favorecida por el capital y su potencial no debe ser subestimado. Además, la cadena pública L1 Canto, con una capitalización de mercado de 170 millones de dólares y que cuenta con infraestructura pública gratuita, también ha anunciado su propuesta de actualización de EVM paralela.
Además, varios proyectos de L2 que aún se encuentran en una etapa temprana están mejorando el rendimiento interecológico mediante la integración de las capacidades de múltiples cadenas de L1. Aparte de Neon, que ha alcanzado un valor de mercado circulante de 69 millones de dólares, otros proyectos carecen de datos relevantes. Se cree que en el futuro aparecerán más proyectos de L1 y L2 que se unirán a la batalla de cadenas de bloques paralelas.
No solo la narrativa de EVM paralelo tiene un gran espacio de crecimiento en el mercado, sino que el sector de cadenas de bloques paralelas al que pertenece la narrativa de EVM paralelo también tiene un gran espacio de crecimiento en el mercado, por lo que las perspectivas del mercado son amplias.
Actualmente, la capitalización de mercado total de L1 y L2 es de 7521.23 millones de dólares, y la capitalización de mercado de las cadenas de bloques paralelas es de 525.39 millones de dólares, representando solo aproximadamente el 7%. De esto, la capitalización de mercado de los proyectos relacionados con la narrativa EVM paralela es de 23.39 millones de dólares, que solo representa el 4% de la capitalización de mercado de las cadenas de bloques paralelas.
Clasificación de proyectos narrativos EVM paralelos
La industria generalmente divide la red de Cadena de bloques en 4 capas.
Los proyectos narrativos de EVM paralelos se dividen principalmente en cadenas de bloques monolíticas y cadenas de bloques modulares, siendo las cadenas de bloques monolíticas a su vez divididas en L1 y L2. A partir del número total de proyectos y el desarrollo de algunas de las principales pistas, se puede observar que los ecosistemas de las cadenas de bloques públicas L1 de EVM paralelos todavía tienen un gran espacio de desarrollo en comparación con el ecosistema de Ethereum.
El sector DeFi tiene la demanda de "alta velocidad y bajas tarifas", mientras que el sector de juegos tiene la demanda de "fuertes interacciones en tiempo real". Ambos tienen ciertos requisitos sobre la velocidad de ejecución. El EVM paralelo sin duda proporcionará una mejor experiencia de usuario a estos proyectos, impulsando el desarrollo de la industria hacia una nueva etapa.
L1 es una nueva cadena de bloques que cuenta con capacidad de ejecución paralela y es una infraestructura de alto rendimiento. En esta rama de L1, proyectos como Sei v2, Monad y Canto diseñan su propia EVM paralela, son compatibles con el ecosistema de Ethereum y ofrecen una alta capacidad de procesamiento de transacciones.
L2, a través de la integración de las capacidades de otras cadenas L1, ofrece capacidad de escalabilidad para la cooperación entre ecosistemas, siendo el rollup un enfoque destacado. Dentro de esta categoría de L2, Neon es un simulador EVM en la red Solana, mientras que Eclipse utiliza Solana para ejecutar transacciones pero realiza la liquidación en EVM. Lumio es similar a Eclipse, solo que sustituye la capa de ejecución por Aptos.
Además de la solución de cadena de bloques monolítica mencionada, Fuel ha propuesto su propio enfoque de cadena de bloques modular. En su segunda versión, se posicionará como un sistema operativo rollup de Ethereum, ofreciendo una capacidad de ejecución modular más flexible y completa.
Fuel se centra en la ejecución de transacciones, delegando el resto a una o más cadenas de bloques independientes, logrando así una combinación más flexible: puede ser tanto L2 como L1, e incluso cadena lateral o canal de estado. Actualmente, el ecosistema de Fuel cuenta con 17 proyectos, principalmente enfocados en DeFi, NFT e infraestructura.
Sin embargo, solo el oráculo de cadena cruzada Orally ha sido implementado en la práctica. La plataforma de préstamo descentralizada Swaylend y la plataforma de negociación de contratos perpetuos SPARK han entrado en la red de prueba, mientras que otros proyectos aún están en desarrollo.
Principios de la tecnología EVM paralela
Para lograr la ejecución de transacciones descentralizadas, la red de cadena de bloques debe cumplir con 4 responsabilidades:
EVM paralelo se centra principalmente en la optimización del rendimiento de la capa de ejecución. Esto se divide en dos soluciones: la solución de red de capa uno (L1) y la solución de red de capa dos (L2). La solución de L1 introduce un mecanismo de ejecución paralela de transacciones, permitiendo que las transacciones se ejecuten de manera paralela en la máquina virtual. La solución de L2, en esencia, utiliza la máquina virtual L1 ya paralelizada para lograr cierto grado de "ejecución fuera de la cadena + liquidación en la cadena".
Por lo tanto, para entender los principios técnicos de EVM en paralelo, hay que descomponerlo: primero entender qué es una máquina virtual (virtual machine) y luego entender qué es la ejecución paralela (parallel execution).
máquina virtual
En la ciencia de la computación, una máquina virtual se refiere a la virtualización o emulación de un sistema informático.
Las máquinas virtuales se dividen en dos tipos: una se llama máquina virtual de sistema (system virtual machine), que puede virtualizar una máquina física en varias máquinas, ejecutando múltiples sistemas operativos, lo que aumenta la utilización de recursos. La otra se llama máquina virtual de proceso (process virtual machine), que proporciona abstracción para ciertos lenguajes de programación de alto nivel, permitiendo que los programas informáticos escritos en este lenguaje se ejecuten de manera independiente de la plataforma en diferentes plataformas.
JVM es una máquina virtual de procesos diseñada para el lenguaje de programación Java. Los programas escritos en Java se compilan primero en bytecode de Java (un código binario de estado intermedio), el bytecode de Java es interpretado y ejecutado por la JVM: la JVM envía el bytecode al intérprete, que lo traduce a código de máquina en diferentes máquinas y luego se ejecuta en la máquina.
La máquina virtual de cadena de bloques es un tipo de máquina virtual de procesos. En el contexto de la cadena de bloques, la máquina virtual se refiere a la virtualización de una máquina de estados distribuidos, utilizada para ejecutar contratos de manera distribuida y para ejecutar dApps. Al igual que la JVM, la EVM es una máquina virtual de procesos diseñada para el lenguaje Solidity; los contratos inteligentes se compilan primero en código de bytes opcode y luego son interpretados y ejecutados por la EVM.
Las nuevas cadenas de bloques emergentes fuera de Ethereum adoptan cada vez más máquinas virtuales basadas en código de bytes WASM o eBPF al implementar sus propias máquinas virtuales. WASM es un formato de código de bytes de tamaño pequeño, carga rápida, portátil y basado en un mecanismo de seguridad de sandbox, los desarrolladores pueden usar varios lenguajes de programación (C, C++, Rust, Go, Python, Java e incluso TypeScript) para escribir contratos inteligentes, que luego se compilan en código de bytes WASM y se ejecutan. El contrato inteligente ejecutado en una cadena de bloques adoptó precisamente este formato de código de bytes.
eBPF es la evolución de BPF (Berkeley Packet Filter, filtro de paquetes de Berkeley), que originalmente se utilizaba para el filtrado eficiente de paquetes de red y que, tras su evolución, ha dado lugar a eBPF, proporcionando un conjunto de instrucciones más rico.
Es una tecnología revolucionaria que permite la intervención dinámica en el núcleo del sistema operativo y la modificación de su comportamiento sin cambiar el código fuente. Posteriormente, esta tecnología salió del núcleo y se desarrolló en un entorno de ejecución eBPF en modo usuario, que tiene alto rendimiento, seguridad y portabilidad. Los contratos inteligentes ejecutados en Solana se compilan en bytecode eBPF y se ejecutan en su Cadena de bloques.
En otras cadenas de bloques de nivel 1, Aptos y Sui utilizan el lenguaje de programación de contratos inteligentes Move, que se compila en un bytecode único que se ejecuta en la máquina virtual Move. Monad, por su parte, ha diseñado su propia máquina virtual compatible con el bytecode opcode de EVM (fork de Shanghai).
mecanismo de ejecución en paralelo
La ejecución en paralelo es una técnica de este tipo:
La red de cadena de bloques utiliza comúnmente TPS (transacciones por segundo) como un indicador técnico para medir la velocidad de procesamiento. El mecanismo de ejecución paralela es bastante complejo y también pone a prueba el nivel técnico de los desarrolladores, por lo que no es fácil de explicar. A continuación, comenzaremos con un ejemplo de "banco" para explicar qué es la ejecución paralela.
Primero, ¿qué es la ejecución en serie?
Situación 1: Si vemos el sistema como un banco y la CPU que procesa las tareas como un mostrador, entonces ejecutar tareas de forma secuencial es como si este banco solo tuviera un mostrador para atender los negocios. En este momento, los clientes (tareas) que vienen al banco para realizar trámites solo pueden formar una larga cola y atender uno por uno. Para cada cliente, el personal del mostrador tiene que repetir la misma acción (ejecutar instrucciones) para atender a los clientes. Cuando no es su turno, el cliente solo puede esperar, lo que provoca un aumento en el tiempo de transacción.
¿Entonces qué es la ejecución en paralelo?
Situación 2: En este momento, el banco ve que está lleno de gente, así que abre varios mostradores más para manejar los negocios. Hay 4 cajeros en el mostrador manejando negocios al mismo tiempo, lo que hace que la velocidad sea aproximadamente 4 veces más rápida que antes, por lo que el tiempo de espera de los clientes se reduce a aproximadamente 1/4 del original, y la velocidad de procesamiento de negocios del banco mejora.
¿Qué error ocurriría si dos personas transfieren dinero a otra persona al mismo tiempo sin protección?
Situación 3: A, B y C, tres personas, tienen en sus cuentas 2 ETH, 1 ETH y 0 ETH respectivamente. Ahora A y B quieren transferir 0.5 ETH a C. En un sistema de ejecución de transacciones en serie, no habrá ningún problema (la flecha izquierda "\u003c=" indica lectura del libro mayor, la flecha derecha "=\u003e" indica escritura en el libro mayor, lo mismo a continuación):
A.transfer(C, 0.5):