BlockPulseNews
Définition

Langage Move : définition

Move est un langage de programmation de smart contracts orienté ressources, dans lequel les actifs numériques sont des types qui ne peuvent être ni copiés ni détruits par accident, ce qui élimine toute une catégorie de bugs.

Thème : Les bases de la crypto

Langage Move : comment ça marche ?

Move a été conçu au sein de Meta pour le projet Diem, abandonné depuis, puis repris par plusieurs blockchains, dont Aptos et Sui, chacune avec sa propre variante. Son idée centrale est la ressource : un type de donnée qui représente un actif rare. Par défaut, le langage interdit de dupliquer une ressource ou de la faire disparaître implicitement ; elle doit être explicitement déplacée d'un endroit à un autre, d'où le nom Move. Un jeton ne peut donc pas être créé par erreur lors d'une copie ni perdu par oubli dans le code.

Ces garanties sont vérifiées par le compilateur et par un vérificateur de bytecode avant l'exécution. Move dispose aussi d'un outil de vérification formelle, le Move Prover, qui permet de démontrer mathématiquement certaines propriétés d'un contrat. Contrairement à une formulation fréquente, Move n'empêche pas à lui seul la double dépense au sens du consensus, qui relève de la blockchain elle-même : il empêche la duplication ou la perte d'actifs au niveau du programme. Il n'élimine pas non plus les erreurs de logique métier.

Un exemple concret

Imaginons qu'un développeur écrive une fonction de transfert de jetons et oublie, par inadvertance, de stocker le jeton reçu à la fin de la fonction. Dans beaucoup de langages, le jeton disparaîtrait silencieusement. En Move, le compilateur refuse le code : une ressource qui n'a pas la capacité d'être détruite ne peut pas être abandonnée, et le développeur doit indiquer explicitement où elle va.

Les risques à connaître

Les garanties du langage ne protègent pas contre une mauvaise conception : contrôle d'accès mal pensé, calcul de prix erroné ou dépendance à un oracle fragile restent possibles. L'écosystème est plus jeune que celui de Solidity, avec moins d'outils et d'auditeurs spécialisés, et les dialectes de Move diffèrent d'une chaîne à l'autre.

À ne pas confondre avec

  • EVM : L'EVM est la machine virtuelle d'Ethereum, programmée surtout en Solidity, alors que Move s'exécute sur ses propres machines virtuelles.
  • Vérification formelle : La vérification formelle est une méthode de preuve applicable à de nombreux langages, que Move intègre avec un outil dédié.

Questions fréquentes sur Langage Move

Quelles blockchains utilisent le langage Move ?

Le langage est surtout associé à Aptos et Sui, qui en utilisent chacune une variante. Il avait été initialement développé pour le projet Diem de Meta.

Move est-il plus sûr que Solidity ?

Il évite par construction certaines erreurs, comme la duplication ou la perte accidentelle d'actifs. Un contrat Move peut toutefois contenir des failles logiques et doit être audité comme n'importe quel autre.

Dans le même thème : Les bases de la crypto

Tous les termes du thème Les bases de la crypto →

À lire

L'actualité : Les bases de la crypto

Les derniers articles de BlockPulseNews sur ce sujet.

Approfondir avec l'Académie : La Cryptomonnaie Un module gratuit, en leçons courtes et quiz, pour maîtriser ce thème pas à pas.
Découvrir le module

Les autres termes en L

← Tout le lexique crypto de A à Z