
Move est un langage de programmation spécifiquement conçu pour la blockchain, développé à l’origine par l’équipe de Meta (anciennement Facebook) pour le projet Diem. Sa philosophie de conception repose sur la sécurisation et la vérifiabilité des actifs numériques, grâce à un paradigme de programmation orienté ressource et à un système de typage strict. Move introduit le concept unique de « Resources », considérant les actifs numériques comme des entités de premier ordre qui ne peuvent ni être copiées ni supprimées implicitement, ce qui prévient à la source les failles de sécurité courantes des smart contracts, telles que la double dépense et les vulnérabilités de réentrance. Après l’arrêt du projet Diem, Move a été adopté et perfectionné par des blockchains publiques émergentes comme Aptos et Sui, devenant une technologie clé pour l’infrastructure blockchain de nouvelle génération. Son typage statique, ses capacités de vérification formelle et son architecture modulaire permettent aux développeurs de concevoir des applications décentralisées plus sûres et auditables, offrant au secteur blockchain une solution de programmation qui concilie performance et sécurité.
L’origine du langage Move remonte à 2018, sous la direction de l’équipe de recherche blockchain de Meta (alors Facebook), avec pour objectif initial de servir son ambitieux projet de monnaie numérique mondiale Diem (anciennement Libra). Les initiateurs du projet estimaient que les langages de programmation blockchain existants, tels que Solidity, présentaient des lacunes en gestion des ressources et des failles de sécurité récurrentes, ne répondant pas aux exigences strictes de sécurité et de fiabilité des applications de niveau financier. Ils ont donc décidé de concevoir un nouveau langage à partir de zéro, intégrant directement les propriétés de sécurité des actifs numériques dans la couche du langage.
La conception de Move s’inspire de la théorie des types linéaires et du modèle de propriété de Rust, définissant de façon innovante les ressources comme des types à « sémantique de déplacement » plutôt que de « copie ». Cela signifie que les variables de ressource ne peuvent être que déplacées ou détruites dans le code, et non copiées ou perdues accidentellement, éliminant la possibilité d’apparition ou de disparition d’actifs de façon inexpliquée au niveau du langage. En 2020, le projet Diem a été progressivement réduit sous la pression réglementaire et des ajustements stratégiques, mais la valeur technique de Move a été reconnue par l’industrie. Après 2021, d’anciens membres de l’équipe Diem ont fondé séparément deux projets majeurs de blockchain publique, Aptos et Sui, tous deux adoptant Move comme langage principal de développement et procédant à des améliorations sur mesure selon leurs besoins architecturaux.
Move 语言诞生于 2018 年,由 Meta 公司(当时称为 Facebook)的区块链研究团队主导开发,最初服务于其雄心勃勃的全球数字货币项目 Diem(前身为 Libra)。项目发起人认为,现有区块链编程语言如 Solidity 存在资源管理缺陷和安全漏洞频发问题,无法满足金融级应用对安全性和可靠性的严苛要求。因此,团队决定从零开始设计一种新语言,将数字资产的安全属性直接嵌入语言层面。
Move 的设计吸收了线性类型理论(Linear Type Theory)和 Rust 语言的所有权模型,创造性地将资源定义为具备"移动语义"而非"复制语义"的类型。这意味着资源变量在代码中只能被移动或销毁,不能被复制或意外丢失,从语言层面杜绝了资产凭空产生或消失的可能性。2020 年,Diem 项目因监管压力和战略调整逐步收缩,但 Move 语言的技术价值得到行业认可。2021 年后,原 Diem 团队成员分别创建 Aptos 和 Sui 两大公链项目,均将 Move 作为核心开发语言,并根据各自架构需求进行定制化改进。
+++
Le langage Move est né en 2018, sous l’impulsion de l’équipe de recherche blockchain de Meta (alors Facebook), pour servir son projet ambitieux de monnaie numérique mondiale Diem (anciennement Libra). Les fondateurs du projet considéraient que les langages de programmation blockchain existants, tels que Solidity, souffraient de faiblesses en gestion des ressources et de vulnérabilités fréquentes, ne répondant pas aux exigences rigoureuses de sécurité et de fiabilité des applications financières. Ils ont donc choisi de concevoir un nouveau langage à partir de zéro, intégrant les propriétés de sécurité des actifs numériques directement dans la couche du langage.
La conception de Move s’est inspirée de la théorie des types linéaires et du modèle de propriété de Rust, définissant de façon novatrice les ressources comme des types à « sémantique de déplacement » plutôt que de « copie ». Ainsi, les variables de ressource ne peuvent être déplacées ou détruites, mais jamais copiées ni perdues accidentellement, excluant toute apparition ou disparition inexpliquée d’actifs au niveau du langage. En 2020, le projet Diem s’est progressivement contracté sous la pression réglementaire et des ajustements stratégiques, mais la valeur technique de Move a été reconnue dans l’industrie. Après 2021, d’anciens membres de l’équipe Diem ont fondé séparément deux grandes blockchains publiques, Aptos et Sui, qui ont toutes deux adopté Move comme langage de développement principal et l’ont adapté selon leurs besoins architecturaux spécifiques.
Système de types ressource : Le mécanisme central de Move repose sur le Resource Type, qui applique les règles de propriété via des contraintes du compilateur. Les variables de type ressource doivent être explicitement déplacées ou détruites, les opérations de copie ou de suppression étant interdites. Cela garantit l’unicité et la traçabilité des actifs numériques comme les tokens et NFTs lors de l’exécution des smart contracts, prévenant fondamentalement les problèmes de double dépense et de fuite d’actifs.
Modularité et système générique : Move utilise des modules comme unités d’organisation du code, chaque module pouvant définir des structures, des ressources et des fonctions publiques. Le système générique permet aux développeurs d’écrire du code abstrait réutilisable tout en maintenant la sécurité des types. Par exemple, il est possible de créer un module de token générique qui s’adapte à différents types d’actifs sans réécrire la logique.
Vérification du bytecode et vérification formelle : Une fois le code Move compilé en bytecode, la machine virtuelle effectue une vérification statique rigoureuse avant l’exécution, incluant le contrôle des types, l’analyse du flux de ressources et la vérification de la sécurité des références. Move permet également l’intégration d’outils de vérification formelle (comme Move Prover), permettant aux développeurs de prouver mathématiquement la validité de la logique des contrats, ce qui est particulièrement crucial dans les applications financières.
Modèle de compte et stockage global : Move adopte un modèle de stockage basé sur les comptes, chaque adresse de compte correspondant à un espace de stockage, et les données de ressource étant stockées dans les comptes plutôt qu’aux adresses de contrat. Cette conception clarifie la propriété des actifs, permettant aux utilisateurs de contrôler directement les ressources dans leurs comptes sans dépendre de l’état externe des contrats.
Environnement d’exécution : Le code Move s’exécute dans une machine virtuelle dédiée (Move VM), optimisée pour les environnements blockchain, prenant en charge l’exécution déterministe et la mesure du Gas. Les différentes blockchains publiques proposent des implémentations Move légèrement différentes : la Move VM d’Aptos optimise l’exécution parallèle, tandis que la variante Move de Sui introduit un modèle objet pour une gestion d’état plus complexe.
资源类型系统:Move 的核心机制是资源类型(Resource Type),通过编译器强制执行所有权规则。资源类型变量必须显式移动(move)或销毁(destroy),禁止复制或丢弃操作。这确保了代币、NFT 等数字资产在智能合约执行过程中的唯一性和可追溯性,从根本上防止双花和资产泄漏问题。
模块化与泛型系统:Move 采用模块(Module)作为代码组织单位,每个模块可定义结构体、资源和公共函数。泛型系统允许开发者编写可重用的抽象代码,同时保持类型安全。例如,开发者可以创建一个泛型代币模块,适配不同资产类型而无需重复编写逻辑。
字节码验证与形式化验证:Move 代码编译为字节码后,虚拟机在执行前会进行严格的静态验证,包括类型检查、资源流分析和引用安全验证。此外,Move 支持集成形式化验证工具(如 Move Prover),开发者可通过数学证明确保合约逻辑的正确性,这在金融应用中尤为关键。
账户模型与全局存储:Move 采用基于账户的存储模型,每个账户地址对应一个存储空间,资源数据存储在账户内而非合约地址。这种设计使资产所有权更加清晰,用户可直接控制自己账户中的资源,而不依赖外部合约状态。
执行环境:Move 代码运行在专用虚拟机(Move VM)中,该虚拟机针对区块链环境优化,支持确定性执行和 Gas 计量。不同公链的 Move 实现略有差异:Aptos 的 Move VM 优化了并行执行能力,Sui 的 Move 变体则引入对象模型以支持更复杂的状态管理。
+++
Système de type ressource : Le mécanisme fondamental de Move est le Resource Type, qui impose les règles de propriété par des contraintes du compilateur. Les variables de type ressource doivent être explicitement déplacées ou détruites, les opérations de copie ou de suppression étant interdites. Cela garantit l’unicité et la traçabilité des actifs numériques tels que les tokens et les NFTs lors de l’exécution des smart contracts, prévenant de façon structurelle la double dépense et la fuite d’actifs.
Modularité et système générique : Move utilise les modules comme unités d’organisation du code, chaque module pouvant définir des structures, des ressources et des fonctions publiques. Le système générique offre aux développeurs la possibilité d’écrire du code abstrait réutilisable tout en maintenant la sécurité des types. Par exemple, il est possible de créer un module de token générique, adaptable à différents types d’actifs sans devoir réécrire la logique.
Vérification du bytecode et vérification formelle : Après compilation du code Move en bytecode, la machine virtuelle procède à une vérification statique rigoureuse avant exécution, incluant le contrôle de type, l’analyse du flux de ressources et la vérification de la sécurité des références. Move prend également en charge l’intégration d’outils de vérification formelle (tels que Move Prover), permettant aux développeurs de démontrer mathématiquement la validité de la logique des contrats, ce qui est particulièrement essentiel dans les applications financières.
Modèle de compte et stockage global : Move adopte un modèle de stockage basé sur les comptes, chaque adresse de compte correspondant à un espace de stockage, et les données de ressource étant stockées dans les comptes plutôt qu’aux adresses de contrat. Cette conception clarifie la propriété des actifs, permettant aux utilisateurs de contrôler directement les ressources dans leurs comptes sans dépendre de l’état des contrats externes.
Environnement d’exécution : Le code Move s’exécute dans une machine virtuelle dédiée (Move VM), optimisée pour les environnements blockchain, prenant en charge l’exécution déterministe et la mesure du Gas. Les différentes blockchains publiques proposent des variantes de Move légèrement différentes : la Move VM d’Aptos optimise l’exécution parallèle, tandis que la variante Move de Sui introduit un modèle objet pour une gestion d’état plus avancée.
Maturité insuffisante de l’écosystème : Comparé à l’écosystème Solidity d’Ethereum, les outils de développement, bibliothèques et ressources communautaires de Move sont encore à un stade précoce. Les développeurs doivent apprendre un paradigme de programmation entièrement nouveau, avec des coûts de migration élevés, et manquent de services d’audit tiers et de chaînes d’outils de sécurité matures, ce qui complique l’évaluation des risques avant le lancement des projets.
Courbe d’apprentissage abrupte : La programmation orientée ressource et le modèle de propriété de Move représentent un défi cognitif pour les développeurs de smart contracts traditionnels. Il leur faut repenser la logique de gestion des actifs, maîtriser les contraintes de type linéaire et les méthodes de vérification formelle, ce qui allonge le cycle d’adaptation technique de l’équipe et peut impacter l’efficacité du développement des projets.
Compatibilité inter-chaînes limitée : Move est actuellement principalement utilisé sur des blockchains spécifiques telles qu’Aptos et Sui, sans interopérabilité native avec les principaux écosystèmes comme Ethereum ou Solana. Bien que le transfert d’actifs puisse théoriquement s’effectuer via des ponts inter-chaînes, les différences d’architecture de machine virtuelle et de modèle de ressource augmentent considérablement la complexité des appels de contrats inter-chaînes, limitant la flexibilité du développement d’applications multi-chaînes.
Compromis en optimisation des performances : Bien que Move mette l’accent sur la sécurité, ses mécanismes stricts de vérification et de typage peuvent affecter l’efficacité d’exécution. Dans les scénarios à forte concurrence, la charge computationnelle de la vérification formelle peut constituer un goulot d’étranglement. Par ailleurs, les modifications personnalisées de Move par différentes blockchains publiques (comme le modèle objet de Sui) risquent d’entraîner une fragmentation du langage, augmentant la charge de maintenance de versions multiples pour les développeurs.
Incertaines réglementaires et de conformité : Le langage Move est issu du projet Diem, abandonné en raison de résistances réglementaires. Ce contexte historique peut exposer les nouveaux projets utilisant Move à une pression accrue en matière d’examen de conformité. Notamment dans les applications financières, les autorités réglementaires pourraient se montrer prudentes vis-à-vis des origines et des caractéristiques techniques du langage, exigeant des audits de sécurité et des obligations de transparence renforcés.
生态系统成熟度不足:相比以太坊的 Solidity 生态,Move 语言的开发工具、库和社区资源仍处于早期阶段。开发者需要学习全新的编程范式,迁移成本较高,且缺乏成熟的第三方审计服务和安全工具链,增加了项目上线前的风险评估难度。
学习曲线陡峭:Move 的资源导向编程和所有权模型对传统智能合约开发者构成认知挑战。开发者需要重新理解资产管理逻辑,掌握线性类型约束和形式化验证方法,这延长了团队的技术适应周期,可能影响项目开发效率。
跨链兼容性受限:Move 语言目前主要应用于 Aptos 和 Sui 等特定公链,与以太坊、Solana 等主流生态缺乏原生互操作性。虽然理论上可通过跨链桥实现资产转移,但不同虚拟机架构和资源模型的差异使得跨链合约调用复杂度大幅提升,限制了多链应用的开发灵活性。
性能优化与权衡:尽管 Move 强调安全性,但其严格的类型检查和验证机制可能影响执行效率。在高并发场景下,形式化验证的计算开销可能成为性能瓶颈。此外,不同公链对 Move 的定制化改动(如 Sui 的对象模型)可能导致语言碎片化,增加开发者维护多版本代码的负担。
监管与合规不确定性:Move 语言诞生于 Diem 项目,该项目因监管阻力夭折,这一历史背景可能使采用 Move 的新项目面临额外的合规审查压力。尤其在涉及金融服务的应用中,监管机构可能对该语言的起源和技术特性保持谨慎态度,要求更严格的安全审计和透明度披露。
+++
Maturité insuffisante de l’écosystème : Par rapport à l’écosystème Solidity d’Ethereum, les outils de développement, bibliothèques et ressources communautaires de Move restent peu développés. Les développeurs doivent adopter un paradigme de programmation entièrement nouveau, ce qui implique des coûts de migration élevés, et l’absence de services d’audit tiers et de chaînes d’outils de sécurité matures complique l’évaluation des risques avant le lancement des projets.
Courbe d’apprentissage élevée : La programmation orientée ressource et le modèle de propriété de Move exigent des adaptations cognitives importantes pour les développeurs de smart contracts traditionnels. Il leur faut repenser la gestion des actifs, maîtriser les contraintes de type linéaire et les méthodes de vérification formelle, ce qui prolonge le cycle d’adaptation technique et peut affecter l’efficacité du développement.
Compatibilité inter-chaînes limitée : Move est principalement utilisé sur des blockchains spécifiques telles qu’Aptos et Sui, sans interopérabilité native avec les principaux écosystèmes comme Ethereum ou Solana. Même si le transfert d’actifs est théoriquement possible via des ponts inter-chaînes, les différences d’architecture de machine virtuelle et de modèle de ressource complexifient fortement les appels de contrats inter-chaînes, limitant la flexibilité du développement d’applications multi-chaînes.
Compromis en optimisation des performances : Malgré l’accent mis sur la sécurité, les mécanismes stricts de typage et de vérification de Move peuvent affecter l’efficacité d’exécution. Dans les scénarios à forte concurrence, la charge computationnelle de la vérification formelle peut devenir un goulot d’étranglement. De plus, les modifications personnalisées de Move par différentes blockchains publiques (comme le modèle objet de Sui) risquent de fragmenter le langage et d’alourdir la maintenance des versions de code pour les développeurs.
Incertaines réglementaires et de conformité : Move est issu du projet Diem, abandonné en raison de résistances réglementaires. Ce contexte historique peut soumettre les nouveaux projets utilisant Move à une pression supplémentaire en matière de conformité. Dans les applications financières, les autorités pourraient se montrer particulièrement prudentes vis-à-vis de l’origine et des caractéristiques techniques du langage, exigeant des audits de sécurité et une transparence renforcés.
Move représente une orientation innovante majeure dans la conception des langages de programmation blockchain, offrant des garanties fondamentales de sécurité des actifs numériques grâce à son système de type ressource et à ses capacités de vérification formelle. Son application sur des blockchains émergentes telles qu’Aptos et Sui a démontré la valeur pratique de ce langage dans des scénarios exigeant à la fois performance et sécurité. Toutefois, le retard du développement de l’écosystème, la difficulté d’apprentissage et le manque d’interopérabilité inter-chaînes freinent encore l’adoption massive de Move. Pour les développeurs blockchain, comprendre la philosophie et les caractéristiques techniques de Move aide à arbitrer entre sécurité et maturité de l’écosystème lors du choix des technologies de projet ; pour les observateurs du secteur, l’évolution de Move traduit le passage du paradigme « itération rapide » à celui de « sécurité prioritaire » dans la technologie blockchain. À mesure que les chaînes d’outils se perfectionnent et que les communautés de développeurs s’élargissent, Move devrait jouer un rôle clé dans les domaines où la sécurité des actifs est cruciale, tels que la finance et le jeu, et favoriser le développement d’applications blockchain plus fiables et auditables.
Move 语言代表了区块链编程语言设计的重要创新方向,通过资源类型系统和形式化验证能力,为数字资产安全提供了语言层面的根本性保障。其在 Aptos 和 Sui 等新兴公链中的应用,验证了该语言在高性能、高安全场景下的实用价值。然而,生态建设滞后、学习门槛较高以及跨链互操作性不足等问题,仍制约着 Move 的大规模普及。对于区块链开发者而言,理解 Move 的设计哲学和技术特性,有助于在项目选型时权衡安全性与生态成熟度;对于行业观察者,Move 语言的演进路径反映了区块链技术从"快速迭代"向"安全优先"的范式转变。随着更多工具链的完善和开发者社区的壮大,Move 有望在金融、游戏等对资产安全要求极高的领域发挥关键作用,推动区块链应用向更可靠、可审计的方向发展。
+++
Move incarne une avancée majeure dans la conception des langages de programmation blockchain, offrant des garanties fondamentales de sécurité des actifs numériques via son système de type ressource et ses capacités de vérification formelle. Son adoption par des blockchains émergentes telles qu’Aptos et Sui a confirmé la valeur pratique de Move dans des environnements exigeant performance et sécurité. Cependant, le développement insuffisant de l’écosystème, la complexité d’apprentissage et le manque d’interopérabilité inter-chaînes limitent encore sa diffusion à grande échelle. Pour les développeurs blockchain, comprendre la philosophie et les spécificités techniques de Move permet de mieux équilibrer sécurité et maturité de l’écosystème lors du choix technologique ; pour les analystes sectoriels, l’évolution de Move illustre la transition du secteur blockchain d’un modèle « itération rapide » vers un modèle « sécurité prioritaire ». Avec le perfectionnement des chaînes d’outils et la croissance des communautés de développeurs, Move devrait jouer un rôle déterminant dans les secteurs où la sécurité des actifs est critique, comme la finance et le gaming, et contribuer à une évolution des applications blockchain vers plus de fiabilité et d’auditabilité.
Partager


