Actualización de máquina virtual — QIP-7

Qtum Español
4 min readOct 1, 2019

Qtum

Sep 26 ·

QIP-7 integra las últimas características de la máquina virtual Ethereum, presentando un conjunto integral de mejoras que moderniza la máquina virtual dentro del ecosistema de Qtum. Esta actualización incluye una amplia gama de mejoras: construcciones de criptografía más baratas, nuevos operadores matemáticos, optimizaciones de costos de gas para el almacenamiento, así como nuevas formas de implementar e interactuar con contratos inteligentes.

Como resultado de estas actualizaciones, esperamos que los desarrolladores de contratos inteligentes en la plataforma Qtum puedan crear nuevos tipos de aplicaciones que permitan una mejor privacidad, confianza, seguridad y usabilidad dentro de nuestro ecosistema descentralizado.

Mejoras de máquinas virtuales

En esta actualización, se agregaron varias instrucciones nuevas a la máquina virtual para mejorar la funcionalidad y disminuir los costos de gas. QIP-7 trae a Qtum las actualizaciones inteligentes relevantes para el contrato de las actualizaciones de Ethereum Byzantium y Constantinople, incluidos los siguientes EIP: Byzantium: 140, 196, 197, 198, 211, 214, 658 y Constantinople: 145, 1014, 1052, 1283 .

  • Los operadores de desplazamiento bitwise SHL (desplazamiento a la izquierda), SHR (desplazamiento lógico a la derecha) y SAR (desplazamiento aritmético a la derecha) se agregan para operaciones matemáticas de bajo nivel más rápidas y eficientes.
  • extcodehash se agrega para que sea más barato verificar si una dirección tiene el código de contrato inteligente esperado.
  • Se agrega la instrucción de reversión, para informar mensajes de error a los usuarios y reembolsar cualquier gas no utilizado.
  • Se agrega la instrucción staticcall, para que sea posible llamar a otro contrato en modo “solo lectura”.
  • Proporcione una forma para que los métodos de contrato inteligente devuelvan múltiples valores.
  • Se agrega create2, por lo que es posible implementar un contrato inteligente en una dirección predeterminada.

En particular, la adición de la instrucción create2 abre las posibilidades fascinantes de crear un “contrato contrafáctico”. Anteriormente, la dirección de un contrato inteligente está parcialmente determinada por el nonce de su creador, por lo tanto, es impredecible. Con create2, un desarrollador puede predeterminar la dirección de un contrato inteligente, sin implementar realmente el código. Esto es útil, porque los detalles de alguna lógica de contrato inteligente ahora pueden estar ocultos al público hasta que las partes involucradas los necesiten. Es como un árbitro justo que seguirá las instrucciones en un sobre cerrado si surgen disputas.

Los contratos inteligentes contrafactuales permiten que se implemente un canal de estado generalizado en Qtum, lo que podría potenciar las soluciones de privacidad fuera de la cadena.

Mejoras de criptografía

La máquina virtual dentro de Qtum es una plataforma de computación general. Si bien los desarrolladores pueden implementar cualquier algoritmo criptográfico directamente en un contrato inteligente, hacerlo a menudo es demasiado costoso para un uso práctico. Los algoritmos criptográficos a menudo requieren optimizaciones especiales para funcionar de manera eficiente.

Esta actualización introduce implementaciones altamente optimizadas de funciones matemáticas para reducir drásticamente los costos de gas para algunos algoritmos interesantes, haciéndolos prácticos para casos de uso reales.

Aritmética de enteros grandes

La máquina virtual está optimizada para enteros de 256 bits, que son adecuados para implementar algoritmos modernos de criptografía de curva elíptica. Sin embargo, los algoritmos criptográficos más antiguos como RSA dependen de diferentes entidades matemáticas, que a su vez requieren un número mucho mayor de bits para lograr una seguridad equivalente. Las pautas modernas para usar RSA recomiendan que las claves públicas de 4028 bits sean tan seguras como las claves públicas ECC de 256 bits.

Para admitir estos algoritmos, esta actualización presenta formas eficientes y económicas de hacer cálculos matemáticos en números mayores de 256 bits. Esto se logra al agregar contratos precompilados que respaldan las siguientes operaciones (así como sus costos de gas asociados):

GADDSUBBASE: 15
GMULDIVBASE: 30
GMODEXPBASE: 45
GARITHWORD: 6
GQUADDIVISOR: 32

Soporte de ZK-SNARKs

Los sistemas a prueba de conocimiento cero abren nuevas y emocionantes posibilidades para habilitar aplicaciones de privacidad en la cadena de bloques Qtum. Sin embargo, estos sistemas dependen de un tipo diferente de curva elíptica que la curva elíptica nativa utilizada por Qtum.

Esta actualización agrega soporte para la curva alt_bn128, de la que dependen muchos sistemas zk-SNARK. En particular, esta es la misma curva elegida por la criptomoneda ZCash.

Optimización de costos de almacenamiento de gas

El almacenamiento de datos en la blockchain es costoso ya que cada elemento almacenado es almacenado por cada nodo de la red, ¡y para siempre! Sin embargo, la forma en que se implementa el almacén de instrucciones de almacenamiento está realmente optimizada para hacer que algunos casos sean más baratos, pero el sistema carga la misma cantidad de gas de todos modos. Esta actualización disminuye el costo del gas para casos especiales en los que sstore podría optimizarse.

Considere la siguiente serie de instrucciones en una llamada de contrato inteligente, estableciendo la posición 0x0 en diferentes números:

sstore 0x00 0x1
sstore 0x00 0x2
sstore 0x00 0x3

En esta secuencia, solo el sstore final importa en términos de costo, porque ese es el número que se escribe en la blockchain. Anteriormente, todos estos son costosos en costos de gas. Con la nueva actualización, solo la última es costosa, y las instrucciones anteriores se hicieron lo más baratas posible.

Sign up to discover human stories that deepen your understanding of the world.

Free

Distraction-free reading. No ads.

Organize your knowledge with lists and highlights.

Tell your story. Find your audience.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

No responses yet

Write a response