
Move é uma linguagem de programação desenhada de raiz para blockchain, criada inicialmente pela equipa da Meta (ex-Facebook) para o projeto Diem. A sua filosofia de conceção centra-se em garantir a segurança e verificabilidade dos ativos digitais desde o nível mais fundamental, recorrendo a um paradigma de programação orientado a recursos e a um sistema de tipos robusto. Move introduz o conceito inovador de “Resources”, tratando os ativos digitais como entidades de primeira ordem, impossíveis de copiar ou descartar implicitamente, prevenindo à partida vulnerabilidades frequentes em smart contracts, como ataques de double-spending e problemas de reentrância. Após o fim do projeto Diem, Move foi adotada e desenvolvida por novas blockchains públicas como Aptos e Sui, tornando-se uma referência tecnológica para a infraestrutura blockchain da próxima geração. Graças à verificação estática de tipos, à capacidade de verificação formal e à arquitetura modular, Move permite aos programadores criar aplicações descentralizadas mais seguras e auditáveis, oferecendo ao setor blockchain uma solução de programação que conjuga desempenho e segurança.
A linguagem Move teve origem em 2018, liderada pela equipa de investigação em blockchain da Meta (então Facebook), servindo inicialmente o ambicioso projeto de moeda digital global Diem (anteriormente Libra). Os promotores do projeto consideravam que as linguagens de programação blockchain existentes, como Solidity, apresentavam falhas na gestão de recursos e vulnerabilidades de segurança frequentes, não satisfazendo os rigorosos requisitos de segurança e fiabilidade das aplicações de nível financeiro. Assim, a equipa decidiu criar uma nova linguagem do zero, incorporando as propriedades de segurança dos ativos digitais diretamente na camada da linguagem.
O design de Move absorveu a teoria dos tipos lineares e o modelo de ownership da linguagem Rust, definindo de forma criativa os recursos como tipos com “semântica de movimento” em vez de “semântica de cópia”. Isto significa que as variáveis de recurso apenas podem ser movidas ou destruídas no código, não podendo ser copiadas nem perdidas acidentalmente, eliminando a possibilidade de ativos surgirem ou desaparecerem do nada ao nível da linguagem. Em 2020, devido à pressão regulatória e a ajustamentos estratégicos, o projeto Diem foi progressivamente reduzido, mas o valor técnico de Move foi reconhecido pelo setor. Após 2021, membros da equipa original do Diem fundaram separadamente dois grandes projetos de blockchain pública, Aptos e Sui, ambos adotando Move como linguagem de desenvolvimento central e introduzindo melhorias personalizadas de acordo com as necessidades das respetivas arquiteturas.
Move 语言诞生于 2018 年,由 Meta 公司(当时称为 Facebook)的区块链研究团队主导开发,最初服务于其雄心勃勃的全球数字货币项目 Diem(前身为 Libra)。项目发起人认为,现有区块链编程语言如 Solidity 存在资源管理缺陷和安全漏洞频发问题,无法满足金融级应用对安全性和可靠性的严苛要求。因此,团队决定从零开始设计一种新语言,将数字资产的安全属性直接嵌入语言层面。
Move 的设计吸收了线性类型理论(Linear Type Theory)和 Rust 语言的所有权模型,创造性地将资源定义为具备"移动语义"而非"复制语义"的类型。这意味着资源变量在代码中只能被移动或销毁,不能被复制或意外丢失,从语言层面杜绝了资产凭空产生或消失的可能性。2020 年,Diem 项目因监管压力和战略调整逐步收缩,但 Move 语言的技术价值得到行业认可。2021 年后,原 Diem 团队成员分别创建 Aptos 和 Sui 两大公链项目,均将 Move 作为核心开发语言,并根据各自架构需求进行定制化改进。
+++
A linguagem Move nasceu em 2018, sob a liderança da equipa de investigação blockchain da Meta (à época Facebook), destinada inicialmente ao projeto global de moeda digital Diem (antigo Libra). Os responsáveis pelo projeto identificaram limitações na gestão de recursos e vulnerabilidades de segurança recorrentes em linguagens blockchain existentes, como Solidity, considerando-as incapazes de responder às exigências de segurança e fiabilidade das aplicações financeiras. Por isso, decidiram conceber uma linguagem totalmente nova, incorporando as propriedades de segurança dos ativos digitais diretamente na camada da linguagem.
A arquitetura de Move inspirou-se na teoria dos tipos lineares e no modelo de ownership da Rust, definindo recursos como tipos com “semântica de movimento”, em contraste com a “semântica de cópia”. Assim, as variáveis de recurso apenas podem ser movidas ou destruídas no código, nunca copiadas ou perdidas inadvertidamente, impedindo que ativos surjam ou desapareçam do nada ao nível da linguagem. Em 2020, o projeto Diem foi gradualmente descontinuado devido à pressão regulatória e a reajustes estratégicos, mas o valor técnico da Move foi reconhecido pelo setor. Após 2021, elementos da equipa original do Diem lançaram os projetos Aptos e Sui, ambos com Move como linguagem de desenvolvimento central, adaptada e melhorada segundo as necessidades arquitetónicas de cada blockchain.
Sistema de Tipos de Recursos: O mecanismo central do Move é o Resource Type, que impõe regras de ownership através de restrições do compilador. Variáveis de tipo recurso têm de ser explicitamente movidas ou destruídas, sendo proibidas operações de cópia ou descarte. Isto garante a unicidade e rastreabilidade de ativos digitais como tokens e NFT durante a execução de smart contracts, prevenindo de forma fundamental problemas como double-spending e fugas de ativos.
Modularidade e Sistema Genérico: Move utiliza módulos como unidades de organização de código, sendo cada módulo responsável pela definição de structs, recursos e funções públicas. O sistema genérico permite aos programadores escrever código abstrato reutilizável, mantendo a segurança de tipos. Por exemplo, é possível criar um módulo genérico de tokens que se adapta a diferentes tipos de ativos sem reescrever a lógica.
Verificação de Bytecode e Verificação Formal: Após a compilação do código Move em bytecode, a máquina virtual executa uma verificação estática rigorosa antes da execução, incluindo verificação de tipos, análise de fluxo de recursos e validação de segurança de referências. Além disso, Move suporta integração com ferramentas de verificação formal (como Move Prover), permitindo aos programadores provar matematicamente a correção da lógica dos contratos, o que é especialmente crítico em aplicações financeiras.
Modelo de Conta e Armazenamento Global: Move adota um modelo de armazenamento baseado em contas, onde cada endereço de conta corresponde a um espaço de armazenamento e os dados de recursos são guardados nas contas, não nos endereços dos contratos. Esta arquitetura clarifica a titularidade dos ativos, permitindo aos utilizadores o controlo direto dos recursos nas suas contas, sem dependência de estados externos de contratos.
Ambiente de Execução: O código Move é executado numa máquina virtual dedicada (Move VM), otimizada para ambientes blockchain, suportando execução determinística e medição de Gas. Diferentes blockchains públicas implementam Move com pequenas variações: a Move VM da Aptos otimiza a execução paralela, enquanto a variante Move da Sui introduz um modelo de objetos para suportar uma gestão de estados mais complexa.
资源类型系统:Move 的核心机制是资源类型(Resource Type),通过编译器强制执行所有权规则。资源类型变量必须显式移动(move)或销毁(destroy),禁止复制或丢弃操作。这确保了代币、NFT 等数字资产在智能合约执行过程中的唯一性和可追溯性,从根本上防止双花和资产泄漏问题。
模块化与泛型系统:Move 采用模块(Module)作为代码组织单位,每个模块可定义结构体、资源和公共函数。泛型系统允许开发者编写可重用的抽象代码,同时保持类型安全。例如,开发者可以创建一个泛型代币模块,适配不同资产类型而无需重复编写逻辑。
字节码验证与形式化验证:Move 代码编译为字节码后,虚拟机在执行前会进行严格的静态验证,包括类型检查、资源流分析和引用安全验证。此外,Move 支持集成形式化验证工具(如 Move Prover),开发者可通过数学证明确保合约逻辑的正确性,这在金融应用中尤为关键。
账户模型与全局存储:Move 采用基于账户的存储模型,每个账户地址对应一个存储空间,资源数据存储在账户内而非合约地址。这种设计使资产所有权更加清晰,用户可直接控制自己账户中的资源,而不依赖外部合约状态。
执行环境:Move 代码运行在专用虚拟机(Move VM)中,该虚拟机针对区块链环境优化,支持确定性执行和 Gas 计量。不同公链的 Move 实现略有差异:Aptos 的 Move VM 优化了并行执行能力,Sui 的 Move 变体则引入对象模型以支持更复杂的状态管理。
+++
Sistema de Tipos de Recursos: O mecanismo central do Move é o Resource Type, impondo regras de ownership através de restrições do compilador. As variáveis de tipo recurso devem ser explicitamente movidas ou destruídas, sendo proibidas operações de cópia ou descarte. Isto assegura a unicidade e rastreabilidade de ativos digitais como tokens e NFT durante a execução de smart contracts, prevenindo de raiz problemas como double-spending e fuga de ativos.
Modularidade e Sistema Genérico: Move utiliza módulos como unidades de organização de código, permitindo definir structs, recursos e funções públicas em cada módulo. O sistema genérico possibilita a escrita de código abstrato reutilizável, mantendo a segurança de tipos. Por exemplo, é possível criar um módulo de tokens genérico adaptável a diferentes tipos de ativos sem reescrever a lógica.
Verificação de Bytecode e Verificação Formal: Após a compilação do código Move em bytecode, a máquina virtual executa uma verificação estática rigorosa antes da execução, incluindo validação de tipos, análise de fluxo de recursos e verificação de segurança de referências. Move suporta ainda a integração com ferramentas de verificação formal (como o Move Prover), permitindo aos programadores provar matematicamente a correção da lógica dos contratos, fator crítico em aplicações financeiras.
Modelo de Conta e Armazenamento Global: Move adota um modelo de armazenamento baseado em contas, onde cada endereço corresponde a um espaço de armazenamento e os recursos são guardados nas contas, não nos endereços dos contratos. Este modelo clarifica a titularidade dos ativos e permite ao utilizador controlar diretamente os recursos da sua conta, sem depender do estado de contratos externos.
Ambiente de Execução: O código Move é executado numa máquina virtual dedicada (Move VM), otimizada para ambientes blockchain, suportando execução determinística e medição de Gas. As diferentes blockchains públicas implementam Move com variações: a Move VM da Aptos otimiza a execução paralela, enquanto a variante Move da Sui introduz um modelo de objetos para gestão de estados mais complexos.
Maturidade Insuficiente do Ecossistema: Em comparação com o ecossistema de Solidity da Ethereum, as ferramentas de desenvolvimento, bibliotecas e recursos comunitários de Move ainda se encontram numa fase inicial. Os programadores têm de aprender um novo paradigma de programação, com custos de migração elevados, e enfrentam a ausência de serviços de auditoria de terceiros e cadeias de ferramentas de segurança maduras, dificultando a avaliação de riscos antes do lançamento dos projetos.
Curva de Aprendizagem Acentuada: A programação orientada a recursos e o modelo de ownership de Move representam desafios cognitivos para programadores de smart contracts tradicionais. É necessário repensar a lógica de gestão de ativos, dominar restrições de tipos lineares e métodos de verificação formal, o que prolonga o ciclo de adaptação técnica das equipas e pode afetar a eficiência do desenvolvimento.
Compatibilidade Cross-Chain Limitada: Atualmente, a linguagem Move é aplicada sobretudo em blockchains públicas específicas como Aptos e Sui, não existindo interoperabilidade nativa com ecossistemas mainstream como Ethereum ou Solana. Apesar de teoricamente ser possível transferir ativos através de pontes cross-chain, as diferenças nas arquiteturas das máquinas virtuais e modelos de recursos aumentam significativamente a complexidade das chamadas de contratos cross-chain, limitando a flexibilidade no desenvolvimento de aplicações multi-chain.
Compromissos na Otimização de Desempenho: Embora Move privilegie a segurança, os seus mecanismos rigorosos de verificação e validação podem impactar a eficiência de execução. Em cenários de alta concorrência, o custo computacional da verificação formal pode tornar-se um gargalo de desempenho. Além disso, as modificações personalizadas de Move em diferentes blockchains públicas (como o modelo de objetos da Sui) podem fragmentar a linguagem, aumentando o esforço de manutenção de múltiplas versões de código por parte dos programadores.
Incerteza Regulamentar e de Conformidade: Move teve origem no projeto Diem, que foi encerrado devido à resistência regulatória. Este histórico pode sujeitar novos projetos baseados em Move a escrutínio adicional em matéria de conformidade. Em particular, nas aplicações financeiras, as autoridades reguladoras poderão manter uma postura cautelosa face à origem e características técnicas da linguagem, exigindo auditorias de segurança e níveis de transparência mais rigorosos.
生态系统成熟度不足:相比以太坊的 Solidity 生态,Move 语言的开发工具、库和社区资源仍处于早期阶段。开发者需要学习全新的编程范式,迁移成本较高,且缺乏成熟的第三方审计服务和安全工具链,增加了项目上线前的风险评估难度。
学习曲线陡峭:Move 的资源导向编程和所有权模型对传统智能合约开发者构成认知挑战。开发者需要重新理解资产管理逻辑,掌握线性类型约束和形式化验证方法,这延长了团队的技术适应周期,可能影响项目开发效率。
跨链兼容性受限:Move 语言目前主要应用于 Aptos 和 Sui 等特定公链,与以太坊、Solana 等主流生态缺乏原生互操作性。虽然理论上可通过跨链桥实现资产转移,但不同虚拟机架构和资源模型的差异使得跨链合约调用复杂度大幅提升,限制了多链应用的开发灵活性。
性能优化与权衡:尽管 Move 强调安全性,但其严格的类型检查和验证机制可能影响执行效率。在高并发场景下,形式化验证的计算开销可能成为性能瓶颈。此外,不同公链对 Move 的定制化改动(如 Sui 的对象模型)可能导致语言碎片化,增加开发者维护多版本代码的负担。
监管与合规不确定性:Move 语言诞生于 Diem 项目,该项目因监管阻力夭折,这一历史背景可能使采用 Move 的新项目面临额外的合规审查压力。尤其在涉及金融服务的应用中,监管机构可能对该语言的起源和技术特性保持谨慎态度,要求更严格的安全审计和透明度披露。
+++
Maturidade limitada do ecossistema: Em comparação com o ecossistema Solidity da Ethereum, as ferramentas de desenvolvimento, bibliotecas e recursos comunitários de Move ainda estão numa fase inicial. Os programadores enfrentam custos elevados de aprendizagem e migração, além da falta de serviços de auditoria independentes e de cadeias de ferramentas de segurança maduras, o que dificulta a avaliação de risco antes do lançamento dos projetos.
Curva de aprendizagem acentuada: O paradigma de programação orientado a recursos e o modelo de ownership de Move representam desafios para programadores habituados a smart contracts tradicionais. É necessário repensar a lógica de gestão de ativos, dominar restrições de tipos lineares e métodos de verificação formal, o que prolonga o ciclo de adaptação técnica das equipas e pode impactar a eficiência no desenvolvimento dos projetos.
Compatibilidade cross-chain limitada: Atualmente, Move é utilizada sobretudo em blockchains públicas específicas como Aptos e Sui, sem interoperabilidade nativa com ecossistemas mainstream como Ethereum ou Solana. Embora a transferência de ativos seja teoricamente possível através de pontes cross-chain, as diferenças entre arquiteturas de máquinas virtuais e modelos de recursos aumentam significativamente a complexidade das chamadas de contrato cross-chain, limitando a flexibilidade no desenvolvimento de aplicações multi-chain.
Compromissos na otimização de desempenho: Apesar de privilegiar a segurança, os mecanismos rigorosos de verificação de tipos e validação de Move podem impactar a eficiência de execução. Em cenários de elevada concorrência, o custo computacional da verificação formal pode tornar-se um gargalo de desempenho. Além disso, as adaptações personalizadas de Move em diferentes blockchains públicas (como o modelo de objetos da Sui) podem fragmentar a linguagem, aumentando o esforço de manutenção de múltiplas versões de código.
Incerteza regulatória e de conformidade: Move nasceu no âmbito do projeto Diem, encerrado devido a resistência regulatória. Este contexto histórico pode sujeitar novos projetos baseados em Move a escrutínio adicional em matéria de conformidade. Em particular, nas aplicações financeiras, as autoridades reguladoras poderão manter uma postura cautelosa face à origem e características técnicas da linguagem, exigindo auditorias de segurança e transparência reforçadas.
Move language representa uma direção inovadora na conceção de linguagens de programação para blockchain, oferecendo garantias fundamentais ao nível da linguagem para a segurança dos ativos digitais através do seu sistema de tipos de recursos e capacidades de verificação formal. A sua aplicação em blockchains públicas emergentes como Aptos e Sui comprovou o valor prático desta linguagem em cenários de alto desempenho e elevada segurança. Contudo, o desenvolvimento do ecossistema, as barreiras de aprendizagem e a insuficiente interoperabilidade cross-chain continuam a limitar a adoção em larga escala de Move. Para os programadores blockchain, compreender a filosofia de design e as características técnicas de Move é essencial para equilibrar segurança e maturidade do ecossistema na escolha tecnológica dos projetos; para os observadores do setor, o percurso evolutivo da linguagem Move reflete a transição paradigmática do setor blockchain de uma lógica de “iteração rápida” para uma abordagem “security-first”. Com o amadurecimento das toolchains e o crescimento das comunidades de programadores, Move deverá assumir um papel central em áreas como finanças e gaming, onde os requisitos de segurança de ativos são máximos, impulsionando a evolução das aplicações blockchain para uma maior fiabilidade e auditabilidade.
Move 语言代表了区块链编程语言设计的重要创新方向,通过资源类型系统和形式化验证能力,为数字资产安全提供了语言层面的根本性保障。其在 Aptos 和 Sui 等新兴公链中的应用,验证了该语言在高性能、高安全场景下的实用价值。然而,生态建设滞后、学习门槛较高以及跨链互操作性不足等问题,仍制约着 Move 的大规模普及。对于区块链开发者而言,理解 Move 的设计哲学和技术特性,有助于在项目选型时权衡安全性与生态成熟度;对于行业观察者,Move 语言的演进路径反映了区块链技术从"快速迭代"向"安全优先"的范式转变。随着更多工具链的完善和开发者社区的壮大,Move 有望在金融、游戏等对资产安全要求极高的领域发挥关键作用,推动区块链应用向更可靠、可审计的方向发展。
+++
A linguagem Move constitui uma inovação fundamental no design de linguagens de programação para blockchain, oferecendo garantias intrínsecas de segurança para ativos digitais, graças ao seu sistema de tipos de recursos e às capacidades de verificação formal. A adoção de Move em blockchains emergentes como Aptos e Sui comprova o seu valor prático em contextos de alto desempenho e segurança reforçada. Contudo, a evolução lenta do ecossistema, a elevada exigência técnica e a falta de interoperabilidade cross-chain limitam, por agora, a sua adoção em larga escala. Para os programadores blockchain, conhecer a filosofia e as especificidades técnicas de Move é vital para ponderar segurança versus maturidade do ecossistema ao selecionar tecnologias para novos projetos; para os analistas do setor, a trajetória evolutiva da linguagem Move ilustra a transição do paradigma de “iteração rápida” para “segurança em primeiro lugar” na indústria blockchain. À medida que as toolchains se tornam mais robustas e as comunidades de programadores crescem, Move deverá assumir um papel determinante em setores como finanças e gaming, onde a segurança dos ativos é crítica, conduzindo o desenvolvimento de aplicações blockchain para padrões mais fiáveis e auditáveis.
Partilhar


