¿Qué es la Máquina Virtual TON (TVM)? Guía Completa (2026)
— By Tony Rabbit in Tutorials

La TVM es el motor que ejecuta cada contrato inteligente de TON. Esta guía explica el modelo de pila, el paso de mensajes asíncrono, el diseño de datos basado en celdas, la medición de gas y cómo se compara la TVM con la EVM.
La TVM (Máquina Virtual TON) es el motor de ejecución que ejecuta cada contrato inteligente en The Open Network. Es genuinamente diferente de la EVM, la SVM y otras máquinas virtuales importantes, principalmente porque la filosofía de diseño de TON es asíncrona: los contratos envían mensajes en lugar de hacer llamadas de función sincrónicas. Entender la TVM es la diferencia entre tratar el desarrollo de TON como una caja negra y escribir contratos que se integren bien con el paralelismo de la red.
Respuesta rápida: La TVM es una máquina virtual basada en pila que ejecuta contratos inteligentes de TON. Utiliza un diseño de datos basado en celdas donde todo se almacena como pequeños fragmentos (hasta 1023 bits) con hasta cuatro referencias a otras celdas. La ejecución es asíncrona: un contrato recibe un mensaje, se ejecuta hasta completarse y puede emitir nuevos mensajes. No hay llamadas sincrónicas entre contratos. La medición de gas es por contrato por mensaje, y el gas no utilizado se reembolsa.
- Basada en pila. Las operaciones empujan y sacan valores de una pila en lugar de dirigirse a registros.
- Datos basados en celdas. El almacenamiento utiliza pequeños fragmentos llamados celdas con hasta cuatro referencias cada una.
- Ejecución asíncrona. Los contratos se comunican a través de mensajes, no llamadas sincrónicas.
- Medición de gas por mensaje. Cada mensaje lleva su propio presupuesto de gas.
- Los lenguajes se compilan a bytecode de TVM. FunC, Tact y otros apuntan a la misma capa de ejecución.
Qué es la TVM y por qué existe
La TVM es el entorno de ejecución que convierte el código de contrato inteligente en operaciones reales en la cadena. Cada nodo en la red está de acuerdo con la especificación de la TVM, por lo que un contrato que se ejecuta en un nodo se ejecuta de manera idéntica en todas partes. Este determinismo es lo que permite a la red alcanzar consenso sobre los resultados de los contratos.
Por qué una VM personalizada
Los diseñadores de TON construyeron una VM personalizada para adaptarse a la arquitectura fragmentada y asíncrona de la red. Tomar prestada la EVM habría significado aceptar el modelo de llamadas sincrónicas de la EVM, que lucha contra la ejecución paralela de fragmentos de TON. La TVM le da a TON un modelo donde cada mensaje es una unidad de trabajo que puede ejecutarse en cualquier fragmento en cualquier momento sin coordinarse con otros fragmentos.
Dónde se sitúa en la pila
Debajo de la TVM están las cuentas de la red, el almacenamiento y el consenso. Por encima de la TVM están los lenguajes de contratos inteligentes (FunC, Tact). La TVM es la interfaz universal: cada lenguaje se compila a bytecode de TVM, y cada nodo ejecuta ese bytecode.
Celdas y el diseño de datos
Una de las elecciones de diseño distintivas de la TVM es la celda. Todo lo almacenado en TON, desde el estado del contrato hasta los cuerpos de los mensajes y los metadatos de NFT, se organiza como un árbol de celdas.
Qué es una celda
Una celda contiene hasta 1023 bits de datos en bruto y hasta cuatro referencias a otras celdas. Los objetos más grandes (una cadena larga, un gran array, un estado de contrato complejo) se representan como árboles de celdas. La estructura es similar en espíritu a un árbol de Merkle.
Por qué importan las celdas
El diseño de celdas admite la dirección de contenido (cada celda tiene un hash), la diferenciación eficiente (los cambios solo modifican las celdas afectadas) y el cálculo de alquiler de almacenamiento (el número de celdas y el tiempo son importantes). Los contratos de larga duración pagan un pequeño alquiler basado en el número de celdas que mantienen activas.
Alquiler de almacenamiento
A diferencia del almacenamiento permanente de Ethereum, TON cobra una pequeña tarifa continua por mantener celdas activas. La intención es desalentar la expansión indefinida. Los contratos activos apenas pagan nada; los contratos abandonados que mantienen un gran estado pagan más, y eventualmente se congelan si su saldo llega a cero.
Ejecución asíncrona
La TVM no permite que el contrato A llame al contrato B de manera sincrónica. En su lugar, el contrato A envía un mensaje al contrato B, que se procesa en un paso posterior.
Un mensaje, una ejecución
Cada interacción en la cadena es desencadenada por un mensaje. El contrato receptor lee el mensaje, actualiza su estado y puede emitir nuevos mensajes como efecto secundario. Esos nuevos mensajes se procesarán en rondas posteriores de la red.
Implicaciones para los desarrolladores
Los desarrolladores acostumbrados a las llamadas sincrónicas al estilo de la EVM tienen que pensar de manera diferente en TON. Una "transacción" en TON es a menudo una cadena de mensajes. El manejo de errores también es diferente: un mensaje que rebota devuelve fondos al remitente, pero solo si el remitente configuró el mensaje como rebotable.
Implicaciones para el paralelismo
El modelo asíncrono es lo que permite a TON ejecutar cadenas de fragmentos en paralelo. Dos fragmentos pueden procesar mensajes no relacionados sin coordinarse, e incluso los mensajes entre fragmentos se ponen en cola y se resuelven en rondas posteriores.
Medición de gas en TON
Cada operación de la TVM tiene un costo de gas. El sistema de costos es similar en espíritu al gas de Ethereum, con algunas diferencias importantes.
Gas por mensaje
Cada mensaje entrante lleva su propia asignación de gas. Cuando se procesa el mensaje, se consume gas por las operaciones ejecutadas. El gas no utilizado se reembolsa al remitente junto con cualquier saldo de TON no utilizado.
Alquiler de almacenamiento vs gas de computación
TON cobra por separado el alquiler de almacenamiento (almacenamiento de celdas a largo plazo) y el gas de computación (trabajo realizado por la TVM). Ambos se pagan en TON. Para la mayoría de los contratos orientados al usuario, el gas de computación es el costo mayor.
Por qué las tarifas se mantienen bajas
Las tarifas se mantienen bajas porque la red puede escalar a través de fragmentación cuando la demanda aumenta. La mayoría de las ejecuciones de contratos son baratas, predecibles y reembolsables cuando se sobreestiman.
TVM vs EVM
Los dos motores resuelven el mismo problema con diferentes mecánicas.
| Propiedad | TVM | EVM |
|---|---|---|
| Arquitectura | Basada en pila | Basada en pila |
| Diseño de datos | Celdas (1023 bits + 4 refs) | Almacenamiento dirigido por palabras |
| Modelo de ejecución | Mensajes asíncronos | Llamadas sincrónicas |
| Reembolso de gas | Sí, reembolso de lo no utilizado | Sí, reembolso parcial |
| Costo de almacenamiento | Alquiler de almacenamiento | Costo de almacenamiento permanente por adelantado |
| Lenguajes | FunC, Tact | Solidity, Vyper, Yul |
Qué significa esto para los desarrolladores
Construir en TON requiere un modelo mental diferente al de construir en Ethereum o Solana.
Pensar en mensajes, no en llamadas de función
Si te encuentras queriendo "el resultado del contrato B" dentro del contrato A, generalmente estás luchando contra el modelo. Reestructura el flujo para que el contrato A envíe un mensaje a B y espere un callback o complete su propio cambio de estado sin esperar.
Pensar en celdas al almacenar estado
Los grandes arrays planos son poco amigables en TON. Las estructuras de datos en forma de árbol se integran mejor con el diseño de celdas. El estado que crece sin límites debe ser particionado entre múltiples celdas o subcontratos.
Usar Tact para una sintaxis más amigable
FunC está más cerca del ensamblador. Tact proporciona una sintaxis de nivel superior que se compila a bytecode de TVM y es más fácil de leer. La mayoría de los nuevos proyectos de TON utilizan Tact a menos que necesiten un control más detallado.
Un camino de aprendizaje práctico
- Comienza con tutoriales de Tact. La sintaxis de nivel superior te ayuda a comprender primero el modelo de mensajes.
- Lee una implementación de Jetton. Los contratos de maestro y billetera ilustran claramente el modelo asíncrono.
- Construye un pequeño contrato en testnet. Envía mensajes, observa cómo se propagan.
- Desciende a FunC cuando necesites optimizar el gas o ajustar el diseño de celdas.
- Usa una herramienta de traza de ejecución de TVM para inspeccionar la pila y los mensajes durante el desarrollo.
Preguntas frecuentes
¿Es la TVM compatible con la EVM?
No. Los modelos de ejecución, los diseños de datos y los sistemas de gas son diferentes. Existen algunas capas de compatibilidad experimental con la EVM, pero no son la ruta de desarrollo predeterminada.
¿Puedo escribir contratos TON en Solidity?
El desarrollo nativo de TON utiliza FunC o Tact. Algunos adaptadores permiten una sintaxis similar a Solidity, pero la mayoría del código de producción utiliza los lenguajes nativos de TON.
¿Por qué la TVM es basada en pila?
Las VMs basadas en pila son más simples de especificar y verificar que las VMs basadas en registros, y facilitan el diseño de modelos de gas deterministas. La EVM también es basada en pila por las mismas razones.
¿Qué es una celda en TON?
La unidad básica de datos en TON. Una celda contiene hasta 1023 bits y hasta cuatro referencias a otras celdas. Todo lo almacenado en TON se organiza como un árbol de celdas.
¿Pago alquiler por almacenar datos en TON?
Sí. El alquiler de almacenamiento es una pequeña tarifa continua proporcional al número de celdas y al tiempo. Los contratos activos apenas lo notan; los contratos abandonados pueden agotarse hasta cero y congelarse.
Conclusión final: La TVM es la pieza más distintiva del diseño de TON. Una vez que entiendas el diseño de celdas, el modelo de mensajes asíncronos y el sistema de gas por mensaje, el resto de las peculiaridades de la red (fragmentación, tarifas bajas, finalización rápida) tendrán sentido como consecuencias naturales. Construye con el modelo, no en contra de él.
Descargo de responsabilidad: Esta guía es solo para fines educativos y no constituye asesoramiento de inversión, financiero, legal o comercial.