O que é a Máquina Virtual TON (TVM)? Guia Completo (2026)
— By Tony Rabbit in Tutorials

A TVM é o motor que executa cada contrato inteligente TON. Este guia explica o modelo de pilha, a passagem assíncrona de mensagens, o layout de dados baseado em células, a medição de gás e como a TVM se compara à EVM.
A TVM (Máquina Virtual TON) é o motor de execução que roda cada contrato inteligente na The Open Network. Ela é genuinamente diferente da EVM, da SVM e de outras máquinas virtuais principais, principalmente porque a filosofia de design da TON é assíncrona: os contratos passam mensagens em vez de fazer chamadas de função síncronas. Entender a TVM é a diferença entre tratar o desenvolvimento da TON como uma caixa preta e escrever contratos que funcionem bem com o paralelismo da rede.
Resposta rápida: A TVM é uma máquina virtual baseada em pilha que executa contratos inteligentes TON. Ela usa um layout de dados baseado em células onde tudo é armazenado como pequenos pedaços (até 1023 bits) com até quatro referências a outras células. A execução é assíncrona: um contrato recebe uma mensagem, executa até a conclusão e pode emitir novas mensagens. Não há chamadas síncronas entre contratos. A medição de gás é por contrato por mensagem, e o gás não utilizado é reembolsado.
- Baseada em pilha. Operações empurram e retiram valores de uma pilha em vez de endereçar registradores.
- Dados baseados em células. O armazenamento usa pequenos pedaços chamados células com até quatro referências cada.
- Execução assíncrona. Os contratos se comunicam por meio de mensagens, não chamadas síncronas.
- Medição de gás por mensagem. Cada mensagem carrega seu próprio orçamento de gás.
- As linguagens se compilam para bytecode da TVM. FunC, Tact e outras todas visam a mesma camada de execução.
O que é a TVM e por que ela existe
A TVM é o tempo de execução que transforma o código do contrato inteligente em operações reais na blockchain. Cada nó na rede concorda com a especificação da TVM, então um contrato que roda em um nó roda de forma idêntica em todos os lugares. Esse determinismo é o que permite que a rede alcance consenso sobre os resultados dos contratos.
Por que uma VM personalizada
Os designers da TON construíram uma VM personalizada para se adequar à arquitetura shardada e assíncrona da rede. Tomar emprestado a EVM significaria aceitar o modelo de chamadas síncronas da EVM, que combate a execução paralela de shards da TON. A TVM dá à TON um modelo onde cada mensagem é uma unidade de trabalho que pode ser executada em qualquer shard a qualquer momento sem coordenar com outros shards.
Onde ela se encaixa na pilha
Abaixo da TVM estão as contas da rede, armazenamento e consenso. Acima da TVM estão as linguagens de contrato inteligente (FunC, Tact). A TVM é a interface universal: cada linguagem se compila para bytecode da TVM, e cada nó executa esse bytecode.
Células e o layout de dados
Uma das escolhas de design características da TVM é a célula. Tudo armazenado na TON, desde o estado do contrato até os corpos das mensagens e os metadados de NFT, é organizado como uma árvore de células.
O que é uma célula
Uma célula contém até 1023 bits de dados brutos e até quatro referências a outras células. Objetos maiores (uma string longa, um grande array, um estado de contrato complexo) são representados como árvores de células. A estrutura é semelhante em espírito a uma árvore Merkle.
Por que as células são importantes
O layout de células suporta endereçamento de conteúdo (cada célula tem um hash), diffs eficientes (mudanças apenas modificam células afetadas) e cálculo de aluguel de armazenamento (a contagem de células e o tempo importam). Contratos de longa duração pagam um pequeno aluguel com base no número de células que mantêm ativas.
Aluguel de armazenamento
Diferente do armazenamento permanente do Ethereum, a TON cobra uma pequena taxa contínua para manter as células ativas. A intenção é desencorajar o inchaço indefinido. Contratos ativos pagam quase nada; contratos abandonados que mantêm um grande estado pagam mais, eventualmente sendo congelados se seu saldo atingir zero.
Execução assíncrona
A TVM não permite que o contrato A chame o contrato B de forma síncrona. Em vez disso, o contrato A envia uma mensagem ao contrato B, que é processada em um passo posterior.
Uma mensagem, uma execução
Cada interação na blockchain é acionada por uma mensagem. O contrato destinatário lê a mensagem, atualiza seu estado e pode emitir novas mensagens como um efeito colateral. Essas novas mensagens serão processadas em rodadas subsequentes da rede.
Implicações para desenvolvedores
Desenvolvedores acostumados a chamadas síncronas no estilo EVM têm que pensar de forma diferente na TON. Uma "transação" na TON é frequentemente uma cadeia de mensagens. O tratamento de falhas também é diferente: uma mensagem que retorna devolve fundos ao remetente, mas apenas se o remetente configurou a mensagem como retornável.
Implicações para paralelismo
O modelo assíncrono é o que permite que a TON execute shardchains em paralelo. Dois shards podem processar mensagens não relacionadas sem coordenar, e até mesmo mensagens entre shards são enfileiradas e resolvidas em rodadas posteriores.
Medição de gás na TON
Cada operação da TVM tem um custo de gás. O sistema de custos é semelhante em espírito ao gás do Ethereum, com algumas diferenças importantes.
Gás por mensagem
Cada mensagem recebida carrega sua própria alocação de gás. Quando a mensagem é processada, o gás é consumido pelas operações executadas. O gás não utilizado é reembolsado ao remetente juntamente com qualquer saldo TON não utilizado.
Aluguel de armazenamento vs gás de computação
A TON cobra separadamente pelo aluguel de armazenamento (armazenamento de células a longo prazo) e gás de computação (trabalho realizado pela TVM). Ambos são pagos em TON. Para a maioria dos contratos voltados para o usuário, o gás de computação é o maior custo.
Por que as taxas permanecem baixas
As taxas permanecem baixas porque a rede pode escalar por meio de sharding quando a demanda aumenta. A maioria das execuções de contratos é barata, previsível e reembolsável quando superestimada.
TVM vs EVM
Os dois motores resolvem o mesmo problema com mecânicas diferentes.
| Propriedade | TVM | EVM |
|---|---|---|
| Arquitetura | Baseada em pilha | Baseada em pilha |
| Layout de dados | Células (1023 bits + 4 refs) | Armazenamento endereçado por palavra |
| Modelo de execução | Mensagens assíncronas | Chamadas síncronas |
| Reembolso de gás | Sim, não utilizado reembolsado | Sim, reembolso parcial |
| Custo de armazenamento | Aluguel de armazenamento | Custo de armazenamento permanente pago antecipadamente |
| Linguagens | FunC, Tact | Solidity, Vyper, Yul |
O que isso significa para os desenvolvedores
Construir na TON requer um modelo mental diferente do que construir na Ethereum ou Solana.
Pense em mensagens, não em chamadas de função
Se você se pegar querendo "o resultado do contrato B" dentro do contrato A, geralmente está lutando contra o modelo. Reestruture o fluxo para que o contrato A envie uma mensagem para B e espere um retorno ou complete sua própria mudança de estado sem esperar.
Pense em células ao armazenar estado
Grandes arrays planos são desfavoráveis na TON. Estruturas de dados em forma de árvore funcionam melhor com o layout de células. Estados que crescem de forma ilimitada devem ser particionados entre várias células ou subcontratos.
Use Tact para uma sintaxe mais amigável
FunC é mais próximo da linguagem de montagem. Tact fornece uma sintaxe de nível mais alto que se compila para bytecode da TVM e é mais fácil de ler. A maioria dos novos projetos TON usa Tact, a menos que precisem de controle mais detalhado.
Um caminho de aprendizado prático
- Comece com tutoriais de Tact. A sintaxe de nível mais alto ajuda você a entender o modelo de mensagens primeiro.
- Leia uma implementação de Jetton. Contratos de mestre e carteira ilustram claramente o modelo assíncrono.
- Construa um pequeno contrato na testnet. Envie mensagens, observe como elas se propagam.
- Desça para FunC quando precisar otimizar gás ou ajustar o layout de células.
- Use uma ferramenta de rastreamento de execução da TVM para inspecionar a pilha e as mensagens durante o desenvolvimento.
Perguntas frequentes
A TVM é compatível com a EVM?
Não. Os modelos de execução, layouts de dados e sistemas de gás são diferentes. Algumas camadas experimentais de compatibilidade com a EVM existem, mas não são o caminho de desenvolvimento padrão.
Posso escrever contratos TON em Solidity?
O desenvolvimento nativo da TON usa FunC ou Tact. Alguns adaptadores permitem sintaxe semelhante à Solidity, mas a maioria do código de produção usa as linguagens nativas da TON.
Por que a TVM é baseada em pilha?
VMs baseadas em pilha são mais simples de especificar e verificar do que VMs baseadas em registradores, e facilitam o design de modelos de gás determinísticos. A EVM também é baseada em pilha pelos mesmos motivos.
O que é uma célula na TON?
A unidade básica de dados na TON. Uma célula contém até 1023 bits e até quatro referências a outras células. Tudo armazenado na TON é organizado como uma árvore de células.
Eu pago aluguel para armazenar dados na TON?
Sim. O aluguel de armazenamento é uma pequena taxa contínua proporcional à contagem de células e ao tempo. Contratos ativos mal notam isso; contratos abandonados podem drenar até zero e congelar.
Conclusão final: A TVM é a peça mais distintiva do design da TON. Uma vez que você entenda o layout de células, o modelo de mensagens assíncronas e o sistema de gás por mensagem, as outras peculiaridades da rede (sharding, taxas baixas, finalização rápida) fazem sentido como consequências naturais. Construa com o modelo, não contra ele.
Isenção de responsabilidade: Este guia é apenas para fins educacionais e não constitui aconselhamento de investimento, financeiro, legal ou de negociação.