Was ist die TON Virtual Machine (TVM)? Vollständiger Leitfaden (2026)

— By Tony Rabbit in Tutorials

Was ist die TON Virtual Machine (TVM)? Vollständiger Leitfaden (2026)

Die TVM ist die Engine, die jeden TON Smart Contract ausführt. Dieser Leitfaden erklärt das Stack-Modell, die asynchrone Nachrichtenübertragung, das zellbasierte Datenlayout, die Gasabrechnung und wie sich die TVM mit der EVM vergleicht.

Die TVM (TON Virtual Machine) ist die Ausführungsengine, die jeden Smart Contract im The Open Network ausführt. Sie unterscheidet sich grundlegend von der EVM, der SVM und anderen großen virtuellen Maschinen, hauptsächlich weil die Designphilosophie von TON asynchron ist: Verträge senden Nachrichten, anstatt synchrone Funktionsaufrufe zu machen. Das Verständnis der TVM ist der Unterschied zwischen der Behandlung der TON-Entwicklung als Black Box und dem Schreiben von Verträgen, die gut mit dem Parallelismus des Netzwerks funktionieren.

Schnelle Antwort: Die TVM ist eine stackbasierte virtuelle Maschine, die TON Smart Contracts ausführt. Sie verwendet ein zellbasiertes Datenlayout, bei dem alles als kleine Stücke (bis zu 1023 Bits) mit bis zu vier Referenzen auf andere Zellen gespeichert wird. Die Ausführung ist asynchron: Ein Vertrag empfängt eine Nachricht, führt sie bis zum Abschluss aus und kann neue Nachrichten senden. Es gibt keine synchronen Aufrufe zwischen Verträgen. Die Gasabrechnung erfolgt pro Vertrag und pro Nachricht, und ungenutztes Gas wird zurückerstattet.

  • Stackbasiert. Operationen schieben und holen Werte von einem Stack, anstatt Register anzusprechen.
  • Zellbasiertes Datenlayout. Der Speicher verwendet kleine Stücke, die Zellen genannt werden, mit bis zu vier Referenzen pro Zelle.
  • Asynchrone Ausführung. Verträge kommunizieren über Nachrichten, nicht über synchrone Aufrufe.
  • Gasabrechnung pro Nachricht. Jede Nachricht hat ihr eigenes Gasbudget.
  • Sprachen kompilieren zu TVM-Bytecode. FunC, Tact und andere zielen alle auf dieselbe Ausführungsebene ab.

Was die TVM ist und warum sie existiert

Die TVM ist die Laufzeitumgebung, die den Code von Smart Contracts in tatsächliche On-Chain-Operationen umwandelt. Jeder Knoten im Netzwerk stimmt der TVM-Spezifikation zu, sodass ein Vertrag, der in einem Knoten ausgeführt wird, überall identisch ausgeführt wird. Diese Determinismus ermöglicht es dem Netzwerk, einen Konsens über die Ergebnisse von Verträgen zu erreichen.

Warum eine benutzerdefinierte VM

Die Designer von TON haben eine benutzerdefinierte VM entwickelt, um zur shardbasierten, asynchronen Architektur des Netzwerks zu passen. Die Übernahme der EVM hätte bedeutet, das synchrone Aufrufmodell der EVM zu akzeptieren, was dem parallelen Shard-Ausführungsmodell von TON widerspricht. Die TVM bietet TON ein Modell, in dem jede Nachricht eine Arbeitseinheit ist, die jederzeit in jedem Shard ohne Koordination mit anderen Shards ausgeführt werden kann.

Wo sie im Stack sitzt

Unterhalb der TVM befinden sich die Konten, der Speicher und der Konsens des Netzwerks. Über der TVM befinden sich die Smart Contract-Sprachen (FunC, Tact). Die TVM ist die universelle Schnittstelle: Jede Sprache wird in TVM-Bytecode kompiliert, und jeder Knoten führt diesen Bytecode aus.

Diagramm des TVM stackbasierten Ausführungsmodells mit Stack, Vertragscode und Gaszähler
Inline-Visual 1: das grundlegende Ausführungsmodell der TVM.

Zellen und das Datenlayout

Eines der charakteristischen Designmerkmale der TVM ist die Zelle. Alles, was auf TON gespeichert ist, von Vertragszuständen über Nachrichteninhalte bis hin zu NFT-Metadaten, ist als Baum von Zellen angeordnet.

Was eine Zelle ist

Eine Zelle hält bis zu 1023 Bits Rohdaten und bis zu vier Referenzen auf andere Zellen. Größere Objekte (ein langer String, ein großes Array, ein komplexer Vertragszustand) werden als Bäume von Zellen dargestellt. Die Struktur ist im Geiste ähnlich einem Merkle-Baum.

Warum Zellen wichtig sind

Das Zelllayout unterstützt die Inhaltsadressierung (jede Zelle hat einen Hash), effizientes Differenzieren (Änderungen betreffen nur die betroffenen Zellen) und die Berechnung der Speichergebühren (Zellanzahl und Zeit sind beide wichtig). Langfristige Verträge zahlen eine kleine Miete basierend auf der Anzahl der Zellen, die sie am Leben erhalten.

Speichermiete

Im Gegensatz zu Ethereums permanentem Speicher erhebt TON eine kleine laufende Gebühr für das Halten von Zellen. Der Zweck ist es, eine unbegrenzte Aufblähung zu verhindern. Aktive Verträge zahlen fast nichts; aufgegebene Verträge, die großen Zustand halten, zahlen mehr und werden schließlich eingefroren, wenn ihr Guthaben null erreicht.

Asynchrone Ausführung

Die TVM lässt Vertrag A nicht synchron Vertrag B aufrufen. Stattdessen sendet Vertrag A eine Nachricht an Vertrag B, die in einem späteren Schritt verarbeitet wird.

Eine Nachricht, eine Ausführung

Jede On-Chain-Interaktion wird durch eine Nachricht ausgelöst. Der empfangende Vertrag liest die Nachricht, aktualisiert seinen Zustand und kann neue Nachrichten als Nebenwirkung senden. Diese neuen Nachrichten werden in nachfolgenden Netzwerk-Runden verarbeitet.

Folgen für Entwickler

Entwickler, die an synchrone EVM-ähnliche Aufrufe gewöhnt sind, müssen anders über TON nachdenken. Eine "Transaktion" auf TON ist oft eine Kette von Nachrichten. Die Fehlerbehandlung ist ebenfalls anders: Eine Nachricht, die zurückprallt, gibt Gelder an den Absender zurück, aber nur, wenn der Absender die Nachricht als rückprallfähig konfiguriert hat.

Folgen für Parallelität

Das asynchrone Modell ist es, was es TON ermöglicht, Shardchains parallel auszuführen. Zwei Shards können nicht verwandte Nachrichten verarbeiten, ohne zu koordinieren, und sogar Nachrichten zwischen Shards werden in Warteschlangen gestellt und in späteren Runden gelöst.

IDE-Mockup, das TON-Vertragscode mit TVM-Anweisungen, Stack-Snapshot und Nachrichtenwarteschlangen-Panels zeigt
Inline-Visual 2: eine typische TVM-bewusste IDE-Ansicht.

Gasabrechnung auf TON

Jede TVM-Operation hat eine Gasgebühr. Das Kostenmodell ist im Geiste ähnlich zu Ethereums Gas, mit einigen wichtigen Unterschieden.

Gas pro Nachricht

Jede eingehende Nachricht hat ihr eigenes Gasbudget. Wenn die Nachricht verarbeitet wird, wird Gas durch die ausgeführten Operationen verbraucht. Ungenutztes Gas wird dem Absender zusammen mit einem ungenutzten TON-Guthaben zurückerstattet.

Speichermiete vs. Berechnungsgas

TON erhebt getrennte Gebühren für Speichermiete (langfristige Zellenspeicherung) und Berechnungsgas (Arbeit, die von der TVM geleistet wird). Beide werden in TON bezahlt. Für die meisten benutzerorientierten Verträge ist das Berechnungsgas die größere Kostenstelle.

Warum die Gebühren niedrig bleiben

Die Gebühren bleiben niedrig, weil das Netzwerk durch Sharding skalieren kann, wenn die Nachfrage steigt. Die meisten Vertragsausführungen sind günstig, vorhersehbar und erstattbar, wenn sie überschätzt werden.

TVM-Ausführungstracemockup, das Schritte, Stackänderungen und resultierende Nachrichten zeigt
Inline-Visual 3: eine typische Ansicht der TVM-Ausführungsspuren.

TVM vs EVM

Die beiden Engines lösen dasselbe Problem mit unterschiedlichen Mechaniken.

EigenschaftTVMEVM
ArchitekturStackbasiertStackbasiert
DatenlayoutZellen (1023 Bits + 4 Referenzen)Wortadressierter Speicher
AusführungsmodellAsynchrone NachrichtenSynchrone Aufrufe
GasrückerstattungJa, ungenutztes wird zurückerstattetJa, teilweise Rückerstattung
SpeicherkostenSpeichermietePermanente Speicherkosten im Voraus
SprachenFunC, TactSolidity, Vyper, Yul
Infografik, die TVM und EVM in Bezug auf Ausführungsmodell, Datenlayout, Gasabrechnung und Sprachunterstützung vergleicht
Inline-Visual 4: wie sich die TVM mit der EVM vergleicht.

Was das für Entwickler bedeutet

Die Entwicklung auf TON erfordert ein anderes mentales Modell als die Entwicklung auf Ethereum oder Solana.

Denken Sie in Nachrichten, nicht in Funktionsaufrufen

Wenn Sie sich wünschen, "das Ergebnis von Vertrag B" innerhalb von Vertrag A zu erhalten, kämpfen Sie normalerweise gegen das Modell. Strukturieren Sie den Fluss um, sodass Vertrag A eine Nachricht an B sendet und entweder auf einen Rückruf wartet oder seine eigene Zustandsänderung ohne Warten abschließt.

Denken Sie in Zellen, wenn Sie Zustand speichern

Große flache Arrays sind auf TON unfreundlich. Baumförmige Datenstrukturen funktionieren besser mit dem Zelllayout. Zustand, der unbegrenzt wächst, sollte über mehrere Zellen oder Unterverträge partitioniert werden.

Verwenden Sie Tact für eine benutzerfreundlichere Syntax

FunC ist näher an der Assemblersprache. Tact bietet eine höherstufige Syntax, die in TVM-Bytecode kompiliert wird und leichter zu lesen ist. Die meisten neuen TON-Projekte verwenden Tact, es sei denn, sie benötigen eine feinkörnige Kontrolle.

Vier-Panel-Illustration von TVM-Konzepten: Zellendatenstruktur, asynchrone Nachrichten, Gasabrechnung, Gasrückerstattung
Inline-Visual 5: die vier grundlegenden TVM-Konzepte, die jeder Entwickler verinnerlichen sollte.

Ein praktischer Lernpfad

  1. Beginnen Sie mit Tact-Tutorials. Höherstufige Syntax hilft Ihnen, das Nachrichtenmodell zuerst zu verstehen.
  2. Lesen Sie eine Jetton-Implementierung. Master- und Wallet-Verträge veranschaulichen das asynchrone Modell klar.
  3. Bauen Sie einen kleinen Vertrag im Testnetz. Senden Sie Nachrichten, beobachten Sie, wie sie sich verbreiten.
  4. Wechseln Sie zu FunC, wenn Sie Gas optimieren oder das Zelllayout feinabstimmen müssen.
  5. Verwenden Sie ein TVM-Ausführungstracetool, um den Stack und die Nachrichten während der Entwicklung zu inspizieren.

Häufig gestellte Fragen

Ist die TVM mit der EVM kompatibel?

Nein. Die Ausführungsmodelle, Datenlayouts und Gassysteme sind unterschiedlich. Einige experimentelle EVM-Kompatibilitätsschichten existieren, sind jedoch nicht der Standardentwicklungsweg.

Kann ich TON-Verträge in Solidity schreiben?

Die native TON-Entwicklung verwendet FunC oder Tact. Einige Adapter ermöglichen eine Solidity-ähnliche Syntax, aber der Großteil des Produktionscodes verwendet die nativen Sprachen von TON.

Warum ist die TVM stackbasiert?

Stackbasierte VMs sind einfacher zu spezifizieren und zu verifizieren als registerbasierte VMs, und sie erleichtern das Design deterministischer Gasmodelle. Die EVM ist aus denselben Gründen ebenfalls stackbasiert.

Was ist eine Zelle auf TON?

Die grundlegende Dateneinheit auf TON. Eine Zelle hält bis zu 1023 Bits und bis zu vier Referenzen auf andere Zellen. Alles, was auf TON gespeichert ist, ist als Baum von Zellen angeordnet.

Bezahle ich Miete für die Speicherung von Daten auf TON?

Ja. Die Speichermiete ist eine kleine laufende Gebühr, die proportional zur Zellanzahl und zur Zeit ist. Aktive Verträge bemerken sie kaum; aufgegebene Verträge können auf null sinken und einfrieren.

Letzte Erkenntnis: Die TVM ist das markanteste Stück von TONs Design. Sobald Sie das Zelllayout, das asynchrone Nachrichtenmodell und das Gasabrechnungssystem pro Nachricht verstehen, machen die anderen Eigenheiten des Netzwerks (Sharding, niedrige Gebühren, schnelle Endgültigkeit) als natürliche Konsequenzen Sinn. Bauen Sie mit dem Modell, nicht dagegen.

Haftungsausschluss: Dieser Leitfaden dient nur zu Bildungszwecken und stellt keine Anlage-, Finanz-, Rechts- oder Handelsberatung dar.