Aller au contenu

Pourquoi Move ?

Le langage de programmation Move a été créé à l’origine par une équipe d’ingénieurs chez Facebook pour le Réseau de Paiement Diem. Move est conçu pour être un langage agnostique à la plateforme pour permettre des bibliothèques communes, des outils et des communautés de développeurs à travers diverses blockchains avec des modèles de données et d’exécution vastement différents. Chez Aptos, nous croyons en la construction d’une communauté de développeurs forte en Move et les invitons à construire sur la pile Move sur Aptos et contribuer au logiciel open source.

Move est construit sur les principes suivants :

PrincipeExplication
Sécurisé par défautLes systèmes financiers sont construits pour s’assurer que les utilisateurs ne perdent pas de fonds. Move a été conçu pour empêcher des classes entières d’attaques et de bugs tels que les attaques de réentrance, les doubles dépenses, et le débordement arithmétique. La sécurité des types et les vérifications au moment de la compilation sont au premier plan de la sécurité.
Vérification d’exécutionLe bytecode peut être vérifié à l’exécution pour vérifier que rien ne s’est mal passé, fournissant une sécurité supplémentaire et empêchant les acteurs malveillants.
Vérification formelleMove sur Aptos fournit un langage de spécification pour fournir une vérification formelle des contrats. Cela permet de prouver les invariants et aide à l’audit du code.
SimplicitéLes commandes et le bytecode sont volontairement simples. Cela permet une décompilation facile, une vérification d’exécution, et une inspection du code. L’utilisation de langages de programmation réguliers pour les blockchains nécessite souvent d’ignorer une grande partie du langage pour les rendre appropriés aux contrats intelligents (par exemple Rust).

Move sur Aptos supporte le langage complet construit par l’équipe chez Facebook, avec des extensions supplémentaires construites pour améliorer la sécurité et l’expérience développeur.

AvantagesExplication
Vérification formelleLe framework Aptos est entièrement spécifié et formellement vérifié avec le Move Prover. Cela inclut les contrats centraux impliquant la gouvernance, les NFT, et les Jetons.
Couverture de gazMove VM a 100% de couverture de gaz. Le gaz est facturé basé sur l’utilisation réelle dans le système (CPU, mémoire, stockage, E/S). En d’autres termes, pas d’exploits de gaz.
Redondance de sécuritéRedondance de sécurité fournie par les vérifications de sécurité d’exécution.
Contrôles de permissionsLes contrôles de permissions peuvent être construits de manière flexible à différents niveaux. Par exemple, les contrôles de permissions au niveau des jetons existent par défaut pour permettre la tokenisation RWA.
AvantagesExplication
Outils de Développement Move- Tests unitaires : Move a des tests unitaires intégrés pour tous les contrats. Aptos fournit en plus des fonctionnalités de test dans le framework pour tester différents scénarios.
- Couverture : L’outillage de couverture permet un rapport de couverture au niveau du code source et du bytecode.
- Décompilateur : Pour une meilleure sécurité, le bytecode sur la chaîne peut être désassemblé ou décompilé pour fournir une visibilité sur les contrats réels.
- Plugins IDE : Aptos a un support pour tous les IDE majeurs : VSCode, Cursor etc. et IntelliJ.
Modèle de DonnéesAptos a un modèle de données accessible avec la définition des données stockée sur la chaîne. Les objets et comptes peuvent avoir plusieurs structures distinctes dans un format facile à analyser.
Mise à niveauLa mise à niveau garantit que les interfaces d’application ne peuvent pas être cassées et ne nécessite pas d’adoption explicite des applications en aval. Les contrats peuvent simplement être mis à niveau sur place pour corriger les bugs.
Interaction croiséeMove permet l’interaction entre contrats en utilisant des structures type-safe.
Stockage de codeAptos stocke le code source sur la chaîne améliorant la capacité d’auditer et d’assurer la correction du contrat au bytecode.
Transactions sponsoriséesLe support natif de transactions sponsorisées permet d’avoir des transactions payées par d’autres utilisateurs sans services spéciaux ou code spécifique au contrat requis.
Standards de jetons robustesLes standards Digital Asset et Fungible Asset fournissent flexibilité et un standard unifié pour divers types de jetons et d’actifs numériques sur la chaîne. Ceux-ci ont été influencés par des standards existants tels qu’ERC-20, ERC-721, ERC-1155 et Token-2022.
Aléatoire sur chaîneL’aléatoire natif sur chaîne non biaisable fournit un moyen sûr et cohérent d’obtenir des nombres aléatoires, avec des vérifications de sécurité supplémentaires au moment de la compilation.