Análisis completo de la seguridad del lenguaje Move: características, mecanismos y herramientas de verificación

robot
Generación de resúmenes en curso

Introducción

El lenguaje Move, como un nuevo lenguaje de contratos inteligentes de próxima generación, tiene la seguridad como su principal característica. Este artículo explorará los problemas de seguridad del lenguaje Move desde tres aspectos: características del lenguaje, mecanismos de ejecución y herramientas de verificación.

1. Características de seguridad del lenguaje Move

El lenguaje Move ha abandonado la lógica no lineal, no admite el despacho dinámico ni las llamadas externas recursivas, sino que utiliza conceptos como genéricos, almacenamiento global y recursos para implementar un modo de programación alternativo. A continuación se presenta un ejemplo simple de implementación de activos de tokens:

mover módulo 0x1::TestCoin { use 0x1::signer;

const ADMIN: dirección = @0x1;

struct Coin tiene clave, almacenar {
    valor: u64
}

struct Info tiene la clave {
    total_supply: u64  
}

// La oferta total es igual a la suma de los valores de todas las monedas
invariante para todo addr: dirección donde existe<coin>(addr):
    global<info>(ADMIN).total_supply == sum(select Coin.value (global<coin>(addr)));

public fun initialize(account: &signer) {
    assert!(signer::address_of(account) == ADMIN, 0);
    move_to(cuenta, Información { suministro_total: 0 });
}

public fun mint(account: &signer, amount: u64): Coin {
    assert!(signer::address_of(account) == ADMIN, 0);
    let supply = borrow_global_mut&lt;info&gt;(ADMIN);
    supply.total_supply = supply.total_supply + amount;  
    Moneda { valor: cantidad }
}

public fun value_mut(coin: &mut Coin): &mut u64 {
    &mut coin.value  
}

}

Dos mecanismos de seguridad importantes del lenguaje Move:

a) Verificación de invariante: Definir la conservación del estado a través de un lenguaje de reducción.

b) Verificador de bytecode: aplica tipos seguros y linearización, evitando operaciones ilegales.

Análisis de seguridad de Move: el cambio de juego del lenguaje de contratos inteligentes

2. Mecanismo de funcionamiento de Move

El programa Move se ejecuta en una máquina virtual y no puede acceder directamente a la memoria del sistema. El estado del programa consiste en la pila de llamadas, la memoria, las variables globales y las operaciones de matriz.

MoveVM separa el almacenamiento de datos y la pila de llamadas, mejorando la seguridad y la eficiencia de ejecución. El almacenamiento independiente de recursos y el estricto control de acceso evitan eficazmente algunas vulnerabilidades comunes.

Análisis de seguridad de Move: el cambio de juego del lenguaje de contratos inteligentes

3. Mover Proveedor

Move Prover es una herramienta de verificación formal que utiliza algoritmos de verificación deductiva para validar la corrección de los programas. Su arquitectura es la siguiente:

  1. Recibir el archivo fuente Move y las especificaciones
  2. Compilar en bytecode y modelo de objeto de validador
  3. Convertir a lenguaje intermedio Boogie
  4. Generar condiciones de verificación
  5. Verificación con el solucionador Z3
  6. Salida del informe de diagnóstico

Move Specification Language se utiliza para describir las especificaciones del comportamiento del programa, y se puede escribir de forma independiente del código de negocio.

Análisis de seguridad de Move: el cambio de juego del lenguaje de contratos inteligentes

4. Resumen

El lenguaje Move ha considerado ampliamente la seguridad en términos de características del lenguaje, ejecución de la máquina virtual y herramientas de seguridad. Puede evitar de manera efectiva algunas vulnerabilidades comunes, pero aún se deben tener en cuenta problemas como la autenticación y la lógica. Se recomienda a los desarrolladores que utilicen auditorías de seguridad de terceros y que la verificación de normas sea realizada por empresas de seguridad profesionales.

Análisis de seguridad de Move: el cambio de juego del lenguaje de contratos inteligentes

Ver originales
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
  • Recompensa
  • 7
  • Compartir
Comentar
0/400
FromMinerToFarmervip
· 07-08 18:00
Move, ¡el asesino viene~
Ver originalesResponder0
ProxyCollectorvip
· 07-08 01:41
Serie de que nadie ve porque es demasiado largo
Ver originalesResponder0
TestnetScholarvip
· 07-06 08:22
¡Move es el futuro!
Ver originalesResponder0
MetaverseVagabondvip
· 07-06 08:20
¿De qué sirve la seguridad si no se sabe ganar dinero?
Ver originalesResponder0
RektCoastervip
· 07-06 08:18
Move es realmente genial
Ver originalesResponder0
FlyingLeekvip
· 07-06 08:05
El código está realmente bien hecho.
Ver originalesResponder0
GasFeeBarbecuevip
· 07-06 08:01
¿El movimiento tiene una única solución, verdad?
Ver originalesResponder0
  • Anclado
Opere con criptomonedas en cualquier momento y lugar
qrCode
Escanee para descargar la aplicación Gate
Comunidad
Español
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)