un informe de desempeño
El informe "Cadenas más rápidas" publicado por CoinGecko el 17 de mayo muestra que Solana es la más rápida entre las grandes cadenas de bloques, con el TPS real promedio diario más alto alcanzando 1.054 (se han eliminado las transacciones de votación), y Sui es la segunda cadena de bloques más rápida, la más alta. El TPS real promedio diario alcanza 854, el BSC ocupa el tercer lugar, pero el TPS real logrado es menos de la mitad de Sui.
Como se puede ver en este informe, Solana y Sui con mejor rendimiento son cadenas de bloques no compatibles con EVM. Además, el TPS real promedio de 8 cadenas de bloques no compatibles con EVM es 284, 17 cadenas de bloques compatibles con EVM y el TPS promedio. de Ethereum Layer 2 es solo 74, y el rendimiento de las cadenas de bloques no compatibles con EVM es aproximadamente 4 veces mayor que el de las cadenas de bloques compatibles con EVM.
Este artículo explorará los cuellos de botella de rendimiento de las cadenas de bloques compatibles con EVM y revelará los métodos de rendimiento de Solana.
Cuellos de botella en el rendimiento de las cadenas de bloques compatibles con EVM
Primero, generalizamos la cadena de bloques EVM a cadenas de bloques generales. En términos generales, si blockchain quiere mejorar TPS, existen varios métodos, como se muestra a continuación:
Mejore el rendimiento del nodo: mejore el rendimiento del nodo apilando recursos de hardware. Los requisitos de hardware del nodo afectarán el grado de descentralización. Por ejemplo, la configuración recomendada de Ethereum, CPU de 4 núcleos, memoria de 16 G, ancho de banda de red de 25 Mbps, usuario normal. El nivel de equipo que puede lograr es un mayor grado de descentralización; Solana recomienda una configuración relativamente más alta de 32 núcleos de CPU, 128 G de memoria y 1 Gbps de ancho de banda de red, que solo se puede lograr con equipos de nivel profesional, y el grado de descentralización es promedio. ;
Mejorar los protocolos subyacentes: incluidos los protocolos de red, criptografía, almacenamiento, etc. Mejorar los protocolos subyacentes de la cadena de bloques no cambia las propiedades de la cadena de bloques en sí ni afecta las reglas operativas de la cadena de bloques. Puede mejorar directamente el rendimiento de la cadena de bloques. blockchain, pero la atención técnica subyacente es baja y no hay avances importantes en el campo de investigación actual;
Bloques en expansión: aumentar el tamaño de los bloques puede incluir más transacciones, aumentando así el rendimiento de las transacciones de la cadena de bloques. Por ejemplo, Bitcoin Cash (BCH) amplió los bloques de 1 MB a 8 MB y luego a 32 MB. Sin embargo, ampliar el bloque también aumentará el retraso de propagación y provocará amenazas a la seguridad, como aumentar la posibilidad de bifurcaciones y ataques DDoS;
Protocolo de consenso: el protocolo de consenso garantiza que todos los nodos de la cadena de bloques lleguen a un acuerdo sobre la actualización del estado de la cadena de bloques. Es la puerta de seguridad más importante de la cadena de bloques. Los mecanismos de consenso que se han utilizado en la cadena de bloques incluyen PoW, PoS,. PBFT, etc. Para satisfacer las necesidades de escalabilidad, las cadenas públicas de alto rendimiento generalmente mejoran el protocolo de consenso y lo combinan con sus propios mecanismos especiales, como el mecanismo de consenso basado en PoH de Solana y el mecanismo de consenso basado en avalancha de Avalanche;
Ejecución de transacciones: la ejecución de transacciones solo se preocupa por la cantidad de transacciones o tareas informáticas procesadas por unidad de tiempo. Las cadenas de bloques como Ethereum utilizan un método en serie para ejecutar transacciones de contratos inteligentes en bloques, el cuello de botella en el rendimiento de la CPU es muy obvio. , restringiendo seriamente el rendimiento de la cadena de bloques. Generalmente, las cadenas públicas de alto rendimiento adoptarán la ejecución paralela y algunas propondrán modelos de lenguaje que sean más propicios para el paralelismo para construir contratos inteligentes, como Sui Move.
Para la cadena de bloques EVM, el mayor desafío radica en la ejecución de transacciones debido a la limitación de la máquina virtual, que es el entorno de ejecución de las transacciones. EVM tiene dos problemas principales de rendimiento:
256 bits: el EVM está diseñado como una máquina virtual de 256 bits para facilitar el procesamiento de los algoritmos hash de Ethereum, que producirán explícitamente una salida de 256 bits. Sin embargo, la computadora que realmente ejecuta EVM necesita asignar bytes de 256 bits a la arquitectura local para su ejecución. Un código de operación de EVM corresponderá a múltiples códigos de operación locales, lo que hace que todo el sistema sea muy ineficiente y poco práctico;
Falta de biblioteca estándar: no existe una biblioteca estándar en Solidity y debe implementarla usted mismo con el código de Solidity. Aunque OpenZeppelin ha mejorado esta situación hasta cierto punto, proporciona una biblioteca estándar para la implementación de Solidity (al incluir el código en el contrato o. en forma de llamada delegada Llame al contrato implementado), pero la velocidad de ejecución del código de bytes EVM es mucho menor que la de la biblioteca estándar precompilada.
Desde la perspectiva de la optimización de la ejecución, EVM todavía tiene dos deficiencias importantes:
Dificultad para realizar análisis estáticos: la ejecución paralela en la cadena de bloques significa procesar transacciones no relacionadas al mismo tiempo, tratando las transacciones no relacionadas como eventos que no se afectan entre sí. El principal desafío para lograr la ejecución paralela es determinar qué transacciones son irrelevantes y cuáles son independientes. Actualmente, algunas cadenas públicas de alto rendimiento realizan análisis estáticos de las transacciones por adelantado. El mecanismo de salto dinámico de EVM dificulta el análisis estático del código. ;
El compilador JIT es inmaduro: el compilador JIT (compilador Just In Time) es un método de optimización comúnmente utilizado en las máquinas virtuales modernas. El objetivo principal de JIT es convertir la ejecución de interpretación en ejecución compilada. En tiempo de ejecución, la máquina virtual compila el código activo en código de máquina relacionado con la plataforma local y realiza varios niveles de optimización. Aunque actualmente existen proyectos EVM JIT, todavía se encuentran en la etapa experimental y no están lo suficientemente maduros.
Por lo tanto, en términos de selección de máquinas virtuales, las cadenas públicas de alto rendimiento utilizan máquinas virtuales basadas en WASM, código de bytes eBPF o código de bytes Move en lugar de EVM. Solana, por ejemplo, utiliza su propia máquina virtual única SVM y el código de bytes SBF basado en eBPF.
Cadenas más rápidas: Solana
Solana es famosa por su mecanismo PoH (Prueba de Historia) y su baja latencia y alto rendimiento. Es uno de los "asesinos de Ethereum" más famosos.
En esencia, PoH es un algoritmo hash simple similar a la función de retardo verificable (VDF). Solana se implementa utilizando una función hash secuencial resistente a la preimagen (SHA-256) que se ejecuta continuamente, utilizando la salida de una iteración como entrada para la siguiente. Este cálculo se ejecuta en un único núcleo por validador.
Si bien la generación de secuencias es secuencial y de un solo subproceso, la verificación puede ocurrir en paralelo, lo que permite una verificación eficiente en sistemas de múltiples núcleos. Si bien existe un límite superior en la velocidad de hash, las mejoras de hardware pueden proporcionar mejoras de rendimiento adicionales.
Proceso de consenso de Solana
El mecanismo PoH sirve como una fuente de tiempo confiable y sin confianza, creando un registro verificable y ordenado de eventos dentro de la red. La sincronización basada en PoH permite a la red Solana rotar líderes de manera programada y transparente. Esta rotación se produce a intervalos fijos de 4 ranuras, cada ranura está actualmente configurada en 400 milisegundos. Este mecanismo de rotación de líderes garantiza que cada validador participante tenga una oportunidad justa de convertirse en líder y es un mecanismo importante para que la red Solana mantenga la descentralización y la seguridad, evitando que un validador obtenga demasiado poder en la red.
En cada período de slot, el líder propone un nuevo bloque que contiene las transacciones recibidas de los usuarios. El líder valida estas transacciones, las empaqueta en un bloque y luego transmite el bloque a los validadores restantes de la red. Este proceso de proponer y difundir bloques se denomina producción de bloques, y otros validadores de la red deben votar sobre la validez del bloque. Los validadores verifican el contenido de los bloques para garantizar que las transacciones sean válidas y cumplan con las reglas de la red. Un bloque se considera confirmado si recibe la mayoría de votos del peso de la participación. Este proceso de confirmación es fundamental para mantener la seguridad de la red Solana y evitar gastos dobles.
Cuando finaliza el período de tiempo del líder actual, la red no se detendrá ni esperará la confirmación del bloque, sino que pasará al siguiente período de tiempo, brindando a los líderes posteriores la oportunidad de producir bloques y todo el proceso comienza de nuevo. Este enfoque garantiza que la red Solana mantenga un alto rendimiento y sea resistente, incluso si algunos validadores experimentan problemas técnicos o se desconectan.
Tao de rendimiento de Solana
Dado que la red Solana confirma a los líderes con anticipación, Solana no requiere un mempool público para realizar las transacciones de los usuarios. Cuando un usuario envía una transacción, el servidor RPC la convierte en un paquete QUIC y lo reenvía inmediatamente al validador líder. Este enfoque se llama Gulf Stream y permite transiciones rápidas de líder y ejecución previa de transacciones, lo que reduce la carga de memoria en otros validadores.
Los datos del bloque de Solana se llevan al espacio del kernel y luego se pasan a la GPU para la verificación de la firma en paralelo. Una vez que se verifica la firma en la GPU, los datos se pasan a la CPU para la ejecución de la transacción y finalmente se devuelven al espacio del kernel. persistencia de datos. Este proceso de procesamiento múltiple de dividir datos en diferentes componentes de hardware, llamado tecnología de canalización, puede maximizar la utilización del hardware y acelerar la verificación y transmisión de bloques.
Debido a que las transacciones de Solana especifican explícitamente a qué cuentas se accede, el programador de transacciones de Solana puede aprovechar los mecanismos de bloqueo de lectura y escritura para ejecutar transacciones en paralelo. Cada hilo del programador de transacciones de Solana tiene su propia cola administrada, procesa las transacciones de forma secuencial e independiente, los intentos de bloquear (bloqueo de lectura y escritura) la cuenta de la transacción y ejecutar la transacción con conflictos de cuenta se ejecutarán más tarde. Esta tecnología de ejecución paralela de subprocesos múltiples se llama Sealevel.
El proceso de propagación líder de bloques, dividiendo paquetes QUIC (opcionalmente usando codificación de borrado) en paquetes más pequeños y distribuyéndolos a los validadores en una estructura jerárquica. Esta técnica se llama Turbina y reduce principalmente el uso de ancho de banda del líder.
Durante el proceso de votación, los validadores utilizan un mecanismo de consenso para la votación bifurcada. Los validadores no necesitan esperar a que haya votos para continuar con la producción del bloque; en cambio, los productores de bloques monitorean continuamente los nuevos votos válidos y los incluyen en el bloque actual en tiempo real; Este mecanismo de consenso se llama TowerBFT y, al fusionar los votos bifurcados en tiempo real, Solana garantiza un proceso de consenso más eficiente y optimizado, mejorando así el rendimiento general.
Para el proceso de persistencia de bloques, Solana desarrolló la base de datos Cloudbreak para maximizar la eficiencia de SSD particionando la estructura de datos de la cuenta de una manera específica para beneficiarse de la velocidad de las operaciones secuenciales y utilizando archivos mapeados en memoria.
Para reducir la carga de los validadores, Solana transfiere el almacenamiento de datos de los validadores a una red de nodos llamada Archiver. El historial del estado de las transacciones se divide en muchos fragmentos y se utiliza tecnología de codificación de borrado. Archiver se utiliza para almacenar fragmentos de estado, pero no participa en el consenso.
Resumir
La visión de Solana es ser una cadena de bloques cuyo software escala a la velocidad del hardware, por lo que Solana aprovecha al máximo todas las capacidades de CPU, GPU y ancho de banda disponibles en las computadoras actuales para maximizar el rendimiento, con una velocidad máxima teórica de 65.000 TPS.
Es precisamente debido al alto rendimiento y la escalabilidad de Solana que Solana se ha convertido en la plataforma blockchain preferida para procesar transacciones de alta frecuencia y contratos inteligentes complejos, ya sea la pista DePIN/AI a principios de año o la reciente pista Meme. Solana ha demostrado un enorme potencial.
Tras el lanzamiento del ETF de Ethereum, Solana también se ha convertido en la criptomoneda con más solicitudes para el próximo ETF. Aunque la SEC todavía incluye a Solana como un valor, otros ETF de criptomonedas no serán aprobados en el corto plazo. Pero en el mercado de las criptomonedas, el consenso es valioso, y el consenso de Solana puede estar volviéndose tan indestructible como Bitcoin y Ethereum.