Por que Move?
A linguagem de programação Move foi originalmente criada por uma equipe de engenheiros no Facebook para a Rede de Pagamentos Diem. Move é projetada para ser uma linguagem agnóstica de plataforma para permitir bibliotecas comuns, ferramentas e comunidades de desenvolvedores em blockchains diversos com modelos de dados e execução vastamente diferentes. Na Aptos, acreditamos em construir uma forte comunidade de desenvolvedores em Move e os convidamos a construir sobre a pilha Move on Aptos e contribuir para o software de código aberto.
Move é construída sobre os seguintes princípios:
Princípio | Explicação |
---|---|
Seguro por padrão | Sistemas financeiros são construídos para garantir que os usuários não percam fundos. Move foi projetada para prevenir classes inteiras de ataques e bugs como ataques de reentrância, gastos duplos e overflow aritmético. Segurança de tipos e verificações em tempo de compilação estão na vanguarda da segurança. |
Verificação de Tempo de Execução | O bytecode pode ser verificado em tempo de execução para verificar que nada deu errado, fornecendo segurança extra e prevenindo atores maliciosos. |
Verificação Formal | Move on Aptos fornece uma linguagem de especificação para fornecer verificação formal de contratos. Isso permite provar invariantes e auxilia na auditoria de código. |
Simplicidade | Os comandos e bytecode são propositalmente simples. Isso permite descompilação fácil, verificação de tempo de execução e inspeção de código. Usar linguagens de programação regulares para blockchains frequentemente requer ignorar grande parte da linguagem para torná-las adequadas para contratos inteligentes (ex: Rust). |
Por que Move on Aptos?
Seção intitulada “Por que Move on Aptos?”Move on Aptos suporta a linguagem completa construída pela equipe no Facebook, com extensões adicionais construídas para melhorar a segurança e a experiência do desenvolvedor.
Segurança
Seção intitulada “Segurança”Vantagens | Explicação |
---|---|
Verificação Formal | O framework Aptos é totalmente especificado e formalmente verificado com o Move Prover. Isso inclui os contratos centrais envolvendo governança, NFTs e Tokens. |
Cobertura de Gas | Move VM tem 100% de cobertura de gas. Gas é cobrado baseado no uso real no sistema (CPU, memória, armazenamento, I/O). Em outras palavras, sem exploits de gas. |
Redundância de Segurança | Redundância de segurança fornecida por verificações de segurança de tempo de execução. |
Controles de Permissão | Controles de permissão podem ser flexivelmente construídos em vários níveis. Por exemplo, controles de permissão de nível de token existem por padrão para permitir tokenização RWA. |
Experiência do Desenvolvedor
Seção intitulada “Experiência do Desenvolvedor”Vantagens | Explicação |
---|---|
Ferramentas de Desenvolvimento Move | - Testes unitários: Move tem testes unitários integrados para todos os contratos. Aptos adicionalmente fornece funcionalidade de teste no framework para testar diferentes cenários. - Cobertura: Ferramentas de cobertura permitem relatórios de cobertura tanto em nível de código fonte quanto de bytecode. - Descompilador: Para melhor segurança, bytecode on-chain pode ser desmontado ou descompilado para fornecer visibilidade nos contratos reais. - Plugins IDE: Aptos tem suporte para todas as principais IDEs: VSCode, Cursor etc. e IntelliJ. |
Modelo de Dados | Aptos tem um modelo de dados acessível com a definição de dados armazenada on-chain. Objetos e contas podem ter múltiplas estruturas distintas em um formato fácil de analisar. |
Capacidade de Upgrade | A capacidade de upgrade garante que interfaces de aplicação não possam ser quebradas e não requer adoção explícita de aplicações downstream. Contratos podem simplesmente ser atualizados no local para corrigir bugs. |
Interação Cruzada | Move permite interação entre contratos usando structs type-safe. |
Armazenamento de Código | Aptos armazena código fonte on-chain melhorando a capacidade de auditar e garantir correção de contrato para bytecode. |
Transações Patrocinadas | Suporte nativo a transações patrocinadas permite que transações sejam pagas por outros usuários sem necessidade de serviços especiais ou código específico de contrato. |
Padrões Robustos de Token | Os padrões de Ativo Digital e Ativo Fungível fornecem flexibilidade e um padrão unificado para diversos tipos de tokens e ativos digitais on-chain. Estes foram influenciados por padrões existentes como ERC-20, ERC-721, ERC-1155 e Token-2022. |
Aleatoriedade On-chain | Aleatoriedade nativa on-chain sem viés fornece uma maneira segura e consistente de obter números aleatórios, com verificações de segurança extras em tempo de compilação. |