Sui.

Publicación

Comparte tu conocimiento.

Opiiii.
Aug 16, 2025
P&R expertos

¿Cómo puede el sistema de tipos de Move mejorar la seguridad en los contratos financieros inteligentes?

R: El sistema de tipos lineales de Move refuerza la seguridad de los recursos en el momento de la compilación, lo que evita el doble gasto, los errores tipo reingreso o la pérdida de activos. Al modelar los tokens, las posiciones y los derechos como recursos (struct has key, store>), los desarrolladores se aseguran de que no puedan duplicarse ni descartarse implícitamente. Además de prevenir el robo, puedes codificar las invariantes específicas de un dominio (por ejemplo, «la garantía siempre debe ser superior a la deuda») directamente y convertirlas en abstracciones seguras. Esto hace innecesarias muchas comprobaciones de tiempo de ejecución, lo que convierte la aplicación en el propio lenguaje.

  • Sui
  • Architecture
  • Transaction Processing
  • Security Protocols
0
2
Cuota
Comentarios
.

Respuestas

2
theking.
Aug 16 2025, 10:38

Puedes usar el sistema de tipos de Move para hacer que los contratos inteligentes financieros sean más seguros porque trata los activos como recursos sobre los que el propio compilador aplica reglas estrictas. Esto te brinda protección incluso antes de que se implemente el contrato.

El sistema eslineal, lo que significa que recursos como fichas, posiciones o garantías no se pueden copiar ni descartar accidentalmente. Por ejemplo, si defines un token como resource (struct Coin has key, store), el compilador no te permitirá duplicarlo ni te olvidará de manejarlo correctamente. Esto bloquea directamente problemas comunes como el doble gasto o la pérdida de activos durante las transferencias.

También dispondrás debarreras de protección integradas contra el reingreso y el mal uso. Dado que todos los recursos se deben transferir, mover o destruir de forma explícita, es más difícil escribir funciones que expongan las vulnerabilidades de forma involuntaria. Esto convierte muchas comprobaciones de seguridad en el tiempo de ejecución en lugar de aplicarlas en tiempo de compilación.

Otra gran ventaja escodificar las invariantes financieras directamente en tipos. En la lógica de los contratos inteligentes, puedes definir que la garantía siempre debe ser mayor que la deuda, o que un token de préstamo no puede existir sin su correspondiente garantía. Dado que estas condiciones se basan en abstracciones que garantizan la seguridad de tipos, se recurre menos a ifcomprobaciones dispersas y se reduce la posibilidad de que se produzcan errores en el tiempo de ejecución.

Esto hace que sus contratos financieros sean menos propensos a errores, más predecibles y fáciles de auditar, ya que muchas de las garantías fundamentales las aplica el propio lenguaje y no los procesos externos.

0
Comentarios
.
acher.
Aug 16 2025, 10:46

Puede confiar en el sistema de tipos de Move para hacer que los contratos financieros inteligentes sean más seguros, ya que trata los activos como recursos que no se pueden copiar ni desechar por error. Esto significa que problemas como el doble gasto, las vulnerabilidades de reingreso o la pérdida de fondos se detienen incluso antes de que se ejecute el código. Cuando diseñas fichas, garantías o deudas como recursos, el compilador aplica las reglas para que no tengas que depender únicamente de las comprobaciones en tiempo de ejecución. También puedes incluir tus propias reglas directamente en el código, por ejemplo, para asegurarte de que las garantías siempre cubran la deuda, y el lenguaje ayudará a aplicarlas automáticamente. Este enfoque reduce los errores humanos, refuerza la seguridad y mantiene limpia la lógica de los contratos desde el principio.

struct Collateral has key, store {
    amount: u64,
}
struct Debt has key, store {
    amount: u64,
}

// Example: enforce that collateral >= debt before borrowing
public fun borrow(collateral: &Collateral, debt: &mut Debt, amount: u64) {
    assert!(collateral.amount >= debt.amount + amount, 0);
    debt.amount = debt.amount + amount;
}
0
Comentarios
.

Sabes la respuesta?

Inicie sesión y compártalo.