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
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.
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.