A linguagem Move, como uma nova geração de linguagens de contratos inteligentes, considerou desde o início a questão da segurança em blockchain e contratos inteligentes. Este artigo analisará a segurança da linguagem Move em três aspectos: características da linguagem, mecanismos de execução e ferramentas de verificação.
1. Características de segurança da linguagem Move
A linguagem Move abandonou muitas características flexíveis mas inseguras, como a despachagem dinâmica, chamadas externas recursivas, entre outras, e adotou conceitos como tipos de recursos e armazenamento global para implementar um modo de programação seguro.
As principais características de segurança do Move incluem:
Modular: encapsular e gerenciar código e recursos através de módulos
Tipo de recurso: utilizado para representar e gerir ativos digitais
Armazenamento global: fornece capacidade de armazenamento persistente
Sistema de tipos estáticos: verificação de tipos em tempo de compilação
Lógica linear: garantir a singularidade e a irreplicabilidade dos recursos
A Move também oferece dois mecanismos de verificação estática importantes:
Invariantes de redução: usado para declarar e verificar a invariância do estado do sistema
Verificador de bytecode: impõe segurança de tipo e lógica linear a nível de bytecode
Estas características e mecanismos podem descobrir e prevenir muitos problemas de segurança comuns já em tempo de compilação.
2. Mecanismo de funcionamento do Move
O programa Move é executado em uma máquina virtual, não podendo acessar diretamente a memória do sistema, garantindo assim a segurança em tempo de execução. O MoveVM adota uma estrutura em pilha, gerenciando separadamente o armazenamento de dados e a pilha de chamadas:
O armazenamento global é dividido em memória ( heap ) e variáveis globais ( stack )
Usar a pilha de chamadas para gerenciar chamadas de função
Instruções executadas em um interpretador em pilha
O valor dos recursos só pode ser movido, não pode ser copiado
Chamada de função estática, evitando a dispatch dinâmico
Este design melhora a eficiência de execução e a segurança, prevenindo eficazmente ataques como o reentrância.
3. Mover Prover
Move Prover é uma ferramenta de verificação formal fornecida pela linguagem Move, que pode realizar análises de segurança automatizadas. Utiliza um algoritmo de verificação dedutiva, baseado em especificações escritas na Move Specification Language para validar a correção do programa.
Fluxo de trabalho do Move Prover:
Análise do código-fonte e normas do Move
Gerar modelo de objeto do validador
Converter para a linguagem intermediária Boogie
Gerar condições de verificação
Verificação com o solucionador Z3 SMT
Gerar relatório de resultados da verificação
Move Prover é uma poderosa ferramenta auxiliar que pode ajudar os desenvolvedores a aumentar a segurança dos contratos inteligentes.
Resumo
A linguagem Move considerou a segurança de forma abrangente em vários níveis, como design de linguagem, execução de máquina virtual e ferramentas de verificação. Ela consegue evitar efetivamente muitas vulnerabilidades comuns em contratos inteligentes, mas ainda é necessário que os desenvolvedores permaneçam vigilantes e recomenda-se o uso de serviços de auditoria de segurança de terceiros para garantir ainda mais a segurança dos contratos.
Esta página pode conter conteúdo de terceiros, que é fornecido apenas para fins informativos (não para representações/garantias) e não deve ser considerada como um endosso de suas opiniões pela Gate nem como aconselhamento financeiro ou profissional. Consulte a Isenção de responsabilidade para obter detalhes.
20 Curtidas
Recompensa
20
4
Repostar
Compartilhar
Comentário
0/400
MEV_Whisperer
· 08-12 14:46
O progresso do desenvolvimento Move é assustador.
Ver originalResponder0
AirdropHunterXiao
· 08-10 11:49
Chegou, chegou, move é a melhor linguagem para conseguir airdrop.
Ver originalResponder0
hodl_therapist
· 08-10 11:46
Move é realmente confiável, a segurança está bombear ao máximo.
A segurança múltipla da linguagem Move: uma análise abrangente do design à verificação
Análise da segurança da linguagem Move
A linguagem Move, como uma nova geração de linguagens de contratos inteligentes, considerou desde o início a questão da segurança em blockchain e contratos inteligentes. Este artigo analisará a segurança da linguagem Move em três aspectos: características da linguagem, mecanismos de execução e ferramentas de verificação.
1. Características de segurança da linguagem Move
A linguagem Move abandonou muitas características flexíveis mas inseguras, como a despachagem dinâmica, chamadas externas recursivas, entre outras, e adotou conceitos como tipos de recursos e armazenamento global para implementar um modo de programação seguro.
As principais características de segurança do Move incluem:
A Move também oferece dois mecanismos de verificação estática importantes:
Estas características e mecanismos podem descobrir e prevenir muitos problemas de segurança comuns já em tempo de compilação.
2. Mecanismo de funcionamento do Move
O programa Move é executado em uma máquina virtual, não podendo acessar diretamente a memória do sistema, garantindo assim a segurança em tempo de execução. O MoveVM adota uma estrutura em pilha, gerenciando separadamente o armazenamento de dados e a pilha de chamadas:
Este design melhora a eficiência de execução e a segurança, prevenindo eficazmente ataques como o reentrância.
3. Mover Prover
Move Prover é uma ferramenta de verificação formal fornecida pela linguagem Move, que pode realizar análises de segurança automatizadas. Utiliza um algoritmo de verificação dedutiva, baseado em especificações escritas na Move Specification Language para validar a correção do programa.
Fluxo de trabalho do Move Prover:
Move Prover é uma poderosa ferramenta auxiliar que pode ajudar os desenvolvedores a aumentar a segurança dos contratos inteligentes.
Resumo
A linguagem Move considerou a segurança de forma abrangente em vários níveis, como design de linguagem, execução de máquina virtual e ferramentas de verificação. Ela consegue evitar efetivamente muitas vulnerabilidades comuns em contratos inteligentes, mas ainda é necessário que os desenvolvedores permaneçam vigilantes e recomenda-se o uso de serviços de auditoria de segurança de terceiros para garantir ainda mais a segurança dos contratos.