En la nueva era de los contratos inteligentes, ¿cuáles son las ventajas de las máquinas virtuales Qtum-x86?

Prefacio

Con el avance continuo del diseño y desarrollo de la máquina virtual Qtum-x86, han surgido gradualmente más detalles de desarrollo. ¿Qué importancia tiene la máquina virtual en el mundo blockchain? ¿Cuáles son las características y ventajas especiales de la máquina virtual Qtum-x86 en este campo?

 

Antes de entrar en el tema, tomemos un momento y repasemos brevemente la historia de blockchain. Bitcoin, que comenzó a ejecutarse en 2009, utiliza códigos de operación para manipular UTXO en la capa inferior para realizar la función de "transferencia" que los usuarios pueden percibir en la capa superior. De hecho, no existe un concepto de cuenta en el mundo de Bitcoin. El saldo en la billetera de cada usuario es la suma de todos sus UTXO. Al igual que la billetera que realmente posee, el saldo de la billetera es igual a la suma de los billetes que contiene.

 

Poco después, los "cypherpunks" comenzaron a transportar bienes privados en el protocolo de Bitcoin, inventaron la capa omni y una serie de monedas de colores que usaban OP_RETUN para registrar información y comenzaron a transformar la nueva cadena de emisión de códigos de Bitcoin. Este método de distribución es demasiado complicado. Posteriormente, surgieron blockchains que permitían a los usuarios emitir activos en sus cadenas. Este tipo de blockchain proporciona a los usuarios una interfaz y pueden ingresar algunos parámetros de moneda, como emisión, unidad mínima, etc., lo que simplifica enormemente el costo de emisión de monedas. Pero este método no se ha vuelto realmente popular, porque ha existido una cadena pública llamada Ethereum que es más fácil de emitir monedas y más versátil. Ethereum implementa contratos inteligentes en la cadena de bloques. Los usuarios pueden usar el lenguaje de solidez único de Ethereum para escribir código, compilado en código de bytes y ejecutarlo en la máquina virtual EVM de Ethereum del nodo.

 

 

La historia evolutiva de las máquinas virtuales blockchain

De máquina virtual a máquina virtual blockchain

 

Las máquinas virtuales, o tecnología de virtualización, tienen una historia mucho más larga que blockchain. Desde el primer sistema de tiempo compartido de mainframe hasta la máquina virtual del sistema operativo, la máquina virtual del lenguaje de programación, la virtualización de servidores, la contenerización y otras tecnologías, después de décadas de desarrollo, dichas tecnologías han sido relativamente maduras y se han aplicado Muchas escenas. El núcleo es aislar el entorno operativo de la aplicación del sistema operativo y el hardware reales, abstraer los recursos informáticos y hacer que la aplicación no se limite al entorno del hardware o del sistema operativo.

 

Volviendo al campo de la cadena de bloques, el uso de máquinas virtuales en la cadena de bloques tiene principalmente dos propósitos: verificabilidad y seguridad.

 

Solo mediante la verificabilidad se puede llegar a un consenso, y el consenso es la razón por la que blockchain puede lograr la confianza. Las aplicaciones ordinarias casi no tienen requisitos de verificabilidad. Debido a la diferencia en el software y el hardware en el entorno operativo, los resultados del mismo programa en diferentes clientes pueden no ser completamente consistentes. No es un problema para las aplicaciones centralizadas, porque existen servidores para sincronizar datos, pero para las blockchains descentralizadas, esta diferencia hará que sea imposible llegar a un consenso y por lo tanto no se pueda aceptar, por lo que se necesita un entorno virtual unificado. Asegúrese de que se puedan verificar los resultados de la operación del contrato inteligente.

 

Los altos requisitos de seguridad de Blockchain también se deben a sus características descentralizadas e irreversibles. El entorno operativo virtualizado puede reducir el impacto de los contratos en otros contratos y la propia plataforma blockchain, y mejorar la seguridad del sistema.

 

A partir de estos requisitos únicos, Ethereum diseñó el lenguaje Solidity y la máquina virtual Ethereum correspondiente cuando se fundó. La cadena cuántica Qtum combina las ventajas de Bitcoin y Ethereum, y actualmente utiliza EVM como máquina virtual de la plataforma. Las máquinas virtuales actuales en el campo blockchain se pueden dividir en dos géneros principales:

  • Máquina virtual derivada de EVM y ejecutando Solidity

  • Ejecute la máquina virtual WASM (WebAssembly)

 

Entre las dos, las máquinas virtuales EVM son las más utilizadas y muchas cadenas públicas, incluida Qtum, eligen ser compatibles con EVM. Aunque el desarrollo de Solidity es bastante diferente del diseño de lenguajes de programación comunes, años de desarrollo y las ventajas de ser el primero en moverse le han permitido tener un grupo de desarrolladores relativamente amplio, y en el campo de blockchain, su entorno de desarrollo, cadena de herramientas, Los recursos como el marco estándar también son los más maduros y abundantes.

 

Solidity combina las características de JavaScript, Go, C ++ y otros lenguajes, y la sintaxis general es similar a JavaScript. Una vez que el código se escribe en un lenguaje de alto nivel, un compilador lo compilará en el código de bytes de EVM y el código de bytes se entregará al EVM para su ejecución. EVM es una máquina virtual con una estructura de pila, que es diferente del modelo de registro de la mayoría de las computadoras, por lo tanto, cuando la máquina virtual ejecuta bytecode, debe ser interpretado como código de máquina y ejecutarse en una máquina física.

 

EVM está hecho a medida para la cadena de bloques Ethereum, pero esto también crea un acoplamiento profundo entre la máquina virtual y la cadena. El EVM existente es difícil de ser compatible con lenguajes distintos a Solidity. El diseño de EVM y Solidity es relativamente apresurado, dejando una serie de problemas que han sido criticados. Por ejemplo, todas las claves y valores son de 256 bits, lo que requiere mucha optimización adicional al ejecutar en una máquina física; aunque el lenguaje de programación ha logrado la completitud de Turing , Pero carece de muchas características de lenguaje de alto nivel; el bytecode generado es grande, lo que desperdicia espacio en bloque; el modelo de gas no es razonable, es difícil estimar el consumo de gas y la modificación del modelo afectará el contrato existente; el contrato no se puede actualizar, etc. La actualización del EVM nunca se ha detenido, pero es difícil, el problema de los ataques de reentrada ha costado mucha energía y no se ha resuelto por completo, y provocó directamente el retraso del hard fork de Constantinopla. El equipo de Ethereum comenzó a investigar sobre WASM hace unos años y se está preparando para aplicar la nueva máquina virtual WASM en ETH2.0.

 

¿Por qué proponer la máquina virtual Qtum-x86?

¿De dónde vino la máquina virtual Qtum-x86?

 

Debido a los defectos congénitos de EVM, se ha introducido la segunda categoría de máquinas virtuales blockchain: máquinas virtuales WASM. Este tipo de máquina virtual es utilizado por muchos proyectos nuevos y proyectos en investigación y desarrollo. WASM no es un lenguaje de alto nivel, sino una especificación de código de bytes generada durante el proceso de compilación. WASM está respaldado por el soporte de desarrollo de grandes empresas como Google y Microsoft. La intención original era complementar JavaScript en la web para soportar aplicaciones web de manera más eficiente. WASM es una tecnología relativamente nueva, que todavía se encuentra en rápido desarrollo y mejora. El tamaño de su código es pequeño y la velocidad de ejecución de ciertos escenarios es significativamente más rápida que JavaScript, y puede admitir múltiples lenguajes generales de alto nivel como C / C ++ / Rust.

 

La máquina virtual de WASM es similar a EVM, pero también utiliza la estructura de pila. En el campo de la máquina virtual blockchain, ¿por qué Qtum Quantum Chain lanzado en el Laboratorio de Tecnología QTUM  diseña una máquina virtual x86? La explicación es muy completa. Qtum usa AAL y usa UTXO de Bitcoin como capa inferior para innovar al combinar la capacidad de programación de EVM con la seguridad y privacidad de Bitcoin. Desde el principio, Qtum estaba listo para ser compatible con múltiples máquinas virtuales, desacopló el EVM de la capa inferior y planeó el desarrollo de máquinas virtuales x86.

 

A diferencia de EOS y otras cadenas públicas de DPoS con un pequeño grupo de productores de bloques, Qtum utiliza un mecanismo de consenso MPoS más descentralizado, no tiene un supernodo y tiene pocos requisitos de hardware para los productores de bloques. Miles de nodos se encuentran dispersos por todo el mundo. Por lo tanto, x86, una arquitectura de CPU con una participación de mercado de PC de más del 90%, puede adaptarse mejor a las condiciones de hardware del nodo actual. A diferencia de EVM o WASM, x86 es un ISA (arquitectura de conjunto de instrucciones, el lenguaje subyacente diseñado para las CPU) con una historia de más de 40 años. Por un lado, hay muchas investigaciones y herramientas ricas, y hay muchas experiencias de virtualización y simulación a las que hacer referencia; por otro lado, La estructura de registro se puede utilizar para la simulación para adaptarse mejor a las condiciones físicas de la máquina, y la eficiencia de ejecución y el costo se pueden optimizar aún más. Con la ayuda del conjunto de instrucciones eficientes x86 y la arquitectura von Neumann de la máquina virtual, muchas máquinas virtuales existentes no se pueden realizar. característica.

 

Ventajas técnicas de Qtum-x86

Interpretación integral de 7 ventajas principales

 

Soporte multilenguaje, Rust será compatible primero: Rust es un lenguaje de programación muy popular en el campo blockchain recientemente, su diseño es más ligero y eficiente, y enfatiza la seguridad. Desde que Libra eligió usar Rust, Rust ha atraído la atención de más y más desarrolladores. El cofundador de Qtum, Jordan Earls, puso a Rust en el lenguaje de prioridad admitido por las máquinas virtuales ya en 2017, y predijo que 2018 será el comienzo de los contratos inteligentes de Rust. Los desarrolladores usan Rust para aprender a bajo costo, y hay muchas herramientas que pueden usarse y pueden transformar un compilador aplicable de un compilador existente con menos trabajo. Qtum también planea agregar soporte para lenguajes populares como C # y Go en el futuro.

 

El uso de máquinas virtuales para comunicarse con la cadena de bloques mediante API puede admitir varias máquinas virtuales en paralelo: significa que los desarrolladores de Solidity pueden seguir usando Solidity para desarrollar en Qtum, o incluso mezclar el desarrollo y llamar entre sí. Esto puede reducir el costo de migración del desarrollador y reducir el umbral de desarrollo.

 

Optimice el modelo Gas para que sea más económico de desarrollar y usar. Combinado con DGP, el modelo se puede optimizar continuamente en el futuro: bajo la arquitectura x86, muchas operaciones que originalmente eran costosas en el EVM pueden volverse muy baratas, como strlen. Al mismo tiempo, debido a la existencia de Qtum DGP, el modelo puede ser votado y modificado por los nodos, lo que dificulta diseñar el modelo de Gas exacto para optimizarlo aún más en aplicaciones prácticas.

 

El modelo de arrendamiento de almacenamiento se utiliza para resolver el problema de la expansión del estado y la ocupación del almacenamiento: con el tiempo, el tamaño del nodo completo de Bitcoin ha excedido los 100G, y la cadena de bloques más rápida como EOS puede superar 1T en unos pocos años. Esto evita que los usuarios normales se unan a la red para verificar transacciones, lo que dificulta la sincronización, la búsqueda y la verificación. Qtum propone cobrar una tarifa basada en el almacenamiento utilizado por el contrato. Para obtener más detalles, consulte: La máquina virtual Qtum-x86 realiza el arrendamiento del área de almacenamiento y ahorra eficientemente la memoria de la máquina virtual .

 

Los contratos inteligentes se pueden actualizar: los contratos actuales de Ethereum no se pueden actualizar. Los desarrolladores solo pueden separar el estado y la lógica, y volver a cargar el contrato cuando necesiten actualizarse. Esto no cumple con los requisitos objetivos del desarrollo, y existen mejores soluciones para darse cuenta de las características inalterables de la cadena de bloques. El contrato inteligente x86 se actualizará sin perder la seguridad del contrato y la falta de confianza, lo que es más adecuado para las necesidades de desarrollo reales.

 

Más bibliotecas estándar: los desarrolladores no tendrán que escribir safemath al comienzo de cada contrato. Esto no solo ahorra tiempo a los desarrolladores, sino que también ahorra espacio en blockchain y reduce los costos del contrato. Algunas bibliotecas estándar de uso común se integran de manera similar a los contratos preprogramados, por lo que los contratos se pueden llamar sin un soporte especial.

 

Desbloquee más funciones de AAL: muchos potenciales de AAL están actualmente limitados por EVM, como segwit, P2SH, etc. La máquina virtual x86 liberará aún más el potencial de Qtum.

 

Lo anterior es solo la punta del iceberg de la máquina virtual x86. La nueva máquina virtual también traerá más innovaciones en llamadas contractuales, almacenamiento de datos y funciones contractuales.

 

El camino menos transitado siempre es más duro, pero también trae más sorpresas. Cuando se fundó Qtum, la investigación y el desarrollo de la máquina virtual Qtum-x86 se estableció como un objetivo de desarrollo a largo plazo, y el código de GitHub relacionado se ha mantenido muy activo. Con el avance gradual y la mejora de la I + D y la implementación, la máquina virtual Qtum-x86 se basará en sus ventajas únicas para tener su propia posición en el campo de los contratos inteligentes de blockchain y llevar el blockchain a una etapa más amplia.

 

Supongo que te gusta

Origin blog.csdn.net/weixin_42667079/article/details/102892132
Recomendado
Clasificación