Autor: BitsLab
Move, como uma linguagem que os desenvolvedores Web3 não podem ignorar, destaca-se pelo seu sistema de tipos forte e semântica de recursos, sendo extremamente “robusta” em aspectos como propriedade de ativos, transferências ilegais e concorrência de dados.
Ecossistemas como Sui e Aptos estão colocando cada vez mais ativos críticos e protocolos centrais em Move, justamente porque as características centrais da linguagem Move permitem a criação de contratos inteligentes mais seguros e com menos riscos.
No entanto, em nossa experiência de longo prazo com auditorias e práticas de defesa e ataque, observamos que muitos dos problemas mais difíceis geralmente não ocorrem em pontos óbvios como “erros de sintaxe” ou “incompatibilidade de tipos”, mas sim em níveis de sistema mais complexos e reais — como interações entre módulos, suposições de permissões, limites de máquinas de estado e sequências de chamadas que, individualmente, parecem razoáveis, mas em conjunto podem ser exploradas.
Por isso, mesmo que a linguagem Move possua paradigmas de segurança mais completos, ainda assim já ocorreram incidentes de ataques significativos em seu ecossistema. É evidente que a pesquisa em segurança de Move ainda precisa avançar mais.
Identificamos um problema central: falta uma ferramenta eficaz de fuzzing para a linguagem Move. Devido às restrições mais rígidas de Move, o fuzzing tradicional de contratos inteligentes enfrenta um desafio complicado nesse cenário: gerar sequências de transações que sejam “corretas em tipo” e “alcançáveis semanticamente” é extremamente complexo. Se as entradas não forem precisas, a chamada não pode ser concluída; sem a chamada, não é possível cobrir ramificações profundas ou alcançar estados críticos, tornando mais fácil perder caminhos que realmente podem desencadear vulnerabilidades.
Com base nesse desafio de longa data, colaboramos com equipes de pesquisa acadêmica para desenvolver e publicar o seguinte resultado:
《Belobog: Move Language Fuzzing Framework For Real-World Smart Contracts》
arXiv:2512.02918 (preprint)
Link do artigo:
Este artigo está atualmente publicado no arXiv como preprint, o que permite que a comunidade acompanhe rapidamente o progresso da pesquisa e forneça feedback. Estamos submetendo este trabalho ao PLDI’26 e aguardando o processo de peer review. Assim que o resultado da submissão for confirmado e a revisão por pares concluída, atualizaremos imediatamente sobre o progresso.
Fazendo o Fuzzing realmente “entrar” no Move: do erro aleatório à orientação por tipos
A ideia central do Belobog é direta: já que o sistema de tipos do Move é sua restrição fundamental, o fuzzing também deve usar os tipos como guia, e não como obstáculo.
Métodos tradicionais muitas vezes dependem de geração e mutação aleatória, mas em Move isso rapidamente gera uma grande quantidade de amostras inválidas: incompatibilidade de tipos, recursos inalcançáveis, parâmetros impossíveis de construir corretamente, gargalos na cadeia de chamadas — no final, o que se obtém não é cobertura de teste, mas sim uma pilha de “falhas logo na largada”.
O método do Belobog é como dar um “mapa” ao fuzzer. Ele parte do sistema de tipos do Move para construir um type graph baseado na semântica dos tipos do contrato alvo e, a partir desse gráfico, gera ou muta sequências de transações. Em outras palavras, não faz chamadas às cegas, mas constrói combinações de chamadas mais razoáveis, executáveis e capazes de explorar mais profundamente o espaço de estados, seguindo as relações de tipos.
Para a pesquisa em segurança, essa mudança não traz um “algoritmo mais sofisticado”, mas sim benefícios simples e cruciais:
Maior proporção de amostras válidas, maior eficiência de exploração e mais chances de alcançar caminhos profundos onde vulnerabilidades reais costumam aparecer.
Enfrentando restrições complexas: Belobog introduz Concolic Execution para “abrir portas”
Em contratos Move reais, a lógica crítica geralmente está cercada por múltiplas verificações, asserts e restrições. Se você depender apenas de mutação tradicional, é fácil ficar “batendo na porta”: as condições nunca são satisfeitas, os ramos nunca são acessados, o estado nunca é alcançado.
Para resolver esse problema, o Belobog foi além e implementou a concolic execution (execução concreta + dedução simbólica). Em termos simples:
De um lado, mantém a execução concreta “que roda”, de outro, utiliza dedução simbólica para se aproximar de forma mais direcionada das condições dos ramos, penetrando verificações complexas e avançando na profundidade da cobertura.
Isso é especialmente importante para o ecossistema Move, pois a “sensação de segurança” dos contratos Move geralmente se baseia em múltiplas camadas de restrições, e os verdadeiros problemas costumam estar escondidos nas brechas entre essas restrições. O objetivo do Belobog é levar os testes até essas brechas.
Alinhando-se ao mundo real: não apenas rodar um demo, mas se aproximar de caminhos reais de ataque
Não queremos que esse tipo de trabalho se limite a “rodar um demo”. A avaliação do Belobog é feita diretamente em projetos reais e vulnerabilidades reais. Segundo os resultados experimentais do artigo: Belobog foi avaliado em 109 projetos reais de contratos inteligentes Move, e os resultados mostram que ele consegue detectar 100% das vulnerabilidades críticas e 79% das vulnerabilidades maiores confirmadas por especialistas humanos em segurança.
O mais notável é que: sem depender de conhecimento prévio sobre vulnerabilidades, o Belobog consegue reproduzir exploits completos em eventos reais on-chain. O valor dessa capacidade está em se aproximar das situações reais de defesa e ataque: os atacantes não têm sucesso apenas por “erros em funções isoladas”, mas sim por caminhos completos e evolução de estados.
O objetivo deste trabalho não é apenas “criar uma ferramenta”
Este artigo vale a leitura não apenas por propor um novo framework, mas por representar uma direção mais pragmática: abstrair a experiência de segurança de ponta em métodos reutilizáveis e implementá-los de forma verificável em engenharia.
Acreditamos que o valor do Belobog não está em ser “mais um fuzzer”, mas em aproximar o fuzzing em Move da realidade — capaz de entrar, ir fundo e se alinhar aos caminhos reais de ataque. O Belobog não é uma ferramenta fechada feita para poucos especialistas em segurança, mas sim um framework developer-friendly: busca reduzir ao máximo a barreira de uso, permitindo que desenvolvedores incorporem testes de segurança continuamente em seus fluxos de desenvolvimento, e não apenas como uma tarefa pontual ou posterior.
Também vamos lançar o Belobog como open source, esperando que ele se torne uma infraestrutura que a comunidade possa usar, expandir e evoluir em conjunto, e não apenas um projeto experimental “no nível de ferramenta”.
Artigo (preprint):
(Este trabalho também está sendo submetido ao PLDI’26, aguardando revisão por pares.)
Sobre a MoveBit
MoveBit (Mobi Security), uma sub-marca da BitsLab, é uma empresa de segurança blockchain focada no ecossistema Move, pioneira ao utilizar verificação formal para tornar o ecossistema Move o mais seguro do Web3. A MoveBit já colaborou com diversos projetos renomados globalmente, fornecendo serviços completos de auditoria de segurança para seus parceiros. A equipe da MoveBit é composta por especialistas acadêmicos e líderes do setor de segurança empresarial, com 10 anos de experiência em segurança, tendo publicado pesquisas em conferências internacionais de ponta como NDSS e CCS. Além disso, eles são alguns dos primeiros contribuidores do ecossistema Move, colaborando com desenvolvedores Move para definir padrões de aplicativos Move seguros.




