Lektion 3

Technische Architektur von Monad

Dieses Modul bietet eine ausführliche technische Aufschlüsselung der Architektur von Monad, die zeigt, wie das Protokoll hohe Durchsatzraten und geringe Latenzzeiten erreicht. Zu den Themen gehören der parallele Ausführungsmechanismus, das asynchrone Ausführungsmodell, der MonadBFT-Konsens und die benutzerdefinierte MonadDB-Speicherschicht - alles entworfen, um komplexe, skalierbare On-Chain-Anwendungen zu unterstützen.

Optimistische parallele Ausführung

Eine der prägendsten Innovationen des Monad-Blockchains ist sein optimistisches paralleles Ausführungsmodell. Dieser Ansatz überdenkt, wie Transaktionen auf Protokollebene verarbeitet werden und behebt eine wichtige Einschränkung herkömmlicher Blockchains: die sequenzielle Ausführung. Auf Plattformen wie Ethereum werden Transaktionen nacheinander ausgeführt, was die Zustandskonsistenz sicherstellt, aber die Durchsatzrate und die Gesamtleistung erheblich einschränkt.

Monads Virtual Machine führt Parallelität ein, indem davon ausgegangen wird, dass die meisten Transaktionen innerhalb eines Blocks unabhängig voneinander sind und nicht mit den gleichen Teilen des Blockchain-Zustands interagieren. Basierend auf dieser Annahme werden Transaktionen gruppiert und geplant, um gleichzeitig auf mehreren Verarbeitungsthreads ausgeführt zu werden. Dies erhöht die Ausführungsdurchsatz erheblich, insbesondere bei hoher Netzwerklast, indem moderne Mehrkernprozessoren effektiver genutzt werden als sequentielle Modelle.

Allerdings birgt Nebenläufigkeit potenzielle Risiken für Datenkonflikte, wie z. B. wenn zwei Transaktionen versuchen, dasselbe Konto oder denselben Vertrag zu ändern. Monad löst dieses Problem, indem es ein Konflikterkennungs- und -lösungssystem integriert. Nachdem Transaktionen parallel ausgeführt wurden, überprüft das System auf Inkonsistenzen. Werden Konflikte festgestellt, werden nur die betroffenen Transaktionen sicher neu ausgeführt oder neu angeordnet. Dies gewährleistet, dass die Blockchain die Korrektheit und deterministischen Zustandsübergänge beibehält und dennoch von der Effizienz der nebenläufigen Verarbeitung profitiert.

Dieses Modell ähnelt der optimistischen Nebenläufigkeitssteuerung in modernen Datenbanksystemen, bei der davon ausgegangen wird, dass die meisten Operationen nicht konfliktfrei sind und gleichzeitig behandelt werden. Nur in Ausnahmefällen greift das System ein. Das Ergebnis ist eine skalierbare und anpassungsfähige Ausführungsschicht, die sich für Anwendungen mit hohem Transaktionsvolumen und vielfältigen Arbeitslasten eignet.

Die optimistische parallele Ausführung ist besonders vorteilhaft für Anwendungsfälle wie DeFi, Gaming und NFT-Märkte, wo viele Benutzer gleichzeitig interagieren, aber selten mit denselben Daten. Monad kann diese Operationen parallel verarbeiten, um Staus zu verringern und die Reaktionsfähigkeit dezentralisierter Anwendungen ohne die Notwendigkeit von Off-Chain-Skalierungsschichten zu verbessern.

Ein weiterer wichtiger Vorteil ist die Entwicklervereinfachung. Die EVM-kompatible Umgebung von Monad ermöglicht es Smart Contracts, die in Solidity geschrieben sind, normal auszuführen, ohne dass Entwickler die Nebenläufigkeit manuell verwalten müssen. Das Protokoll handhabt die Ausführungslogik im Hintergrund und verbessert die Netzwerkperformance, während es die Entwicklererfahrung bewahrt.

Asynchrone Ausführung

Ergänzend zu seinem parallelen Ausführungsmodell implementiert Monad die asynchrone Ausführung, eine architektonische Funktion, die die Ausführung von Transaktionen vom Konsensprozess trennt. In traditionellen Blockchains sind Konsens und Ausführung eng miteinander verbunden – Validatoren müssen alle Transaktionen ausführen, bevor sie sich auf einen Block einigen und ihn abschließend bestätigen. Diese Kopplung führt zu Latenzzeiten und begrenzt, wie schnell neue Blöcke produziert werden können.

Monad entkoppelt diese Funktionen, indem es die Reihenfolge der Transaktionen zuerst durch Konsens finalisiert und sie dann ausführt. Dieses Design ermöglicht es der Konsensschicht, unabhängig und kontinuierlich zu arbeiten, während die Ausführung parallel im Hintergrund läuft. Es erhöht die Effizienz der Validatoren und reduziert die Blockzeit, da die Validatoren nicht mehr durch die Zeit eingeschränkt sind, die für die Berechnung der Ergebnisse jeder Transaktion benötigt wird.

Das System gewährleistet Determinismus und Sicherheit, indem sichergestellt wird, dass alle Knoten die genau gleichen Transaktionen in der vereinbarten Reihenfolge ausführen, auch wenn die Ausführung selbst zu verschiedenen Zeiten erfolgt. Dies garantiert Konsistenz im gesamten Netzwerk und verhindert Abweichungen im Zustand der Blockchain.

Asynchrone Ausführung ergänzt auch die optimistische Parallelität von Monad. Während der Konsens fortschreitet und neue Blöcke schnell abgeschlossen werden, findet die Ausführung gleichzeitig in mehreren Threads statt, Konflikte werden nur bei Bedarf gelöst. Diese Kombination aus Parallelität und Asynchronie maximiert die Systemkonkurrenz und Ressourcennutzung, ohne die Korrektheit zu beeinträchtigen.

Aus Benutzer- und Entwicklersicht führt diese Architektur zu einer schnelleren Transaktionseinbindung, reaktionsfähigeren Anwendungen und verbesserter Skalierbarkeit. Validatoren profitieren auch von reduzierten Engpässen, was zu einem effizienteren und dezentralisierten Netzwerk führt.

MonadBFT Konsensmechanismus

In Monad wird Konsens durch MonadBFT erreicht, eine maßgeschneiderte Anpassung des HotStuff-Byzantinischen Fehler-Toleranten (BFT)-Protokolls. Dieser Konsensmechanismus ist für Leistung und Sicherheit optimiert und unterstützt die Ziele von Monad hinsichtlich geringer Latenzzeit und hoher Durchsatzrate, bleibt aber für dezentrale Validatoren zugänglich.

HotStuff wurde ursprünglich entwickelt, um die Anzahl der für die Finalisierung eines Blocks erforderlichen Kommunikationsrunden zu reduzieren. MonadBFT baut darauf auf, indem es eine abschließende Ein-Slot-Finalität ermöglicht, bei der Blöcke in einer einzigen Runde des Konsenses finalisiert werden, ohne auf mehrere Bestätigungen warten zu müssen. Dies bietet sofortige Transaktionsfinalität, verbessert die Vorhersagbarkeit für Anwendungen und reduziert das Risiko einer Kettenreorganisation.

MonadBFT verwendet ein Leader-basiertes Modell. In jeder Runde schlägt ein Validator einen Block vor, während die anderen ihn validieren und darüber abstimmen. Wenn zwei Drittel des gesamten Validator-Einsatzes den Block bestätigen, wird er finalisiert. Dieser optimierte Prozess minimiert den Overhead und beschleunigt die Blockproduktion, insbesondere unter normalen Betriebsbedingungen.

Um die Lebendigkeit sicherzustellen, enthält MonadBFT Leader-Rotation und Timeout-Strategien. Wenn ein Leader es versäumt, einen Block vorzuschlagen, übernimmt automatisch der nächste Validator in der Reihe. Diese Widerstandsfähigkeit gewährleistet, dass die Kette auch dann weiter voranschreitet, wenn einige Validatoren offline oder unempfindlich sind.

Aus Sicherheitssicht hält sich MonadBFT an den typischen BFT-Schwellenwert und toleriert, dass bis zu einem Drittel der Validatoren sich bösartig verhalten, ohne die Sicherheit zu gefährden. Sobald ein Block finalisiert ist, ist er kryptografisch versiegelt und kann nicht ohne die Kollusion von unehrlichen Akteuren, die die Mehrheit der Validatorenleistung kontrollieren, rückgängig gemacht werden.

Das Protokoll ist eng mit dem asynchronen Ausführungsmodell von Monad integriert. Da Blöcke vor der Ausführung abgeschlossen sind, kann das System ohne Verzögerung fortschreiten, während die Ausführungsschicht Transaktionen unabhängig verarbeitet. Diese Architektur reduziert die Arbeitslast der Validatoren und ermöglicht es dem System, eine hohe Leistung beizubehalten, ohne auf zentralisierte Sequenzierungsdienste oder vertrauenswürdige Vermittler angewiesen zu sein.

MonadDB

Effiziente Ausführung und Konsens beruhen auf einem leistungsstarken Zustandsverwaltungssystem. In Monad wird diese Rolle von MonadDB wahrgenommen, der benutzerdefinierten Zustandsspeicherschicht der Blockchain. MonadDB ist verantwortlich für die Speicherung aller On-Chain-Daten, einschließlich Kontostände, Vertragsspeicher und anderer persistenter Zustandsvariablen. Es ist darauf ausgelegt, schnell, nebenläufig und vollständig kompatibel mit dem parallelen Ausführungsmotor von Monad zu sein.

MonadDB verwendet einen versionierten, persistenten Key-Value-Speicher, der es ermöglicht, mehrere Schnappschüsse des Zustands gleichzeitig beizubehalten. Dies ist entscheidend für die Unterstützung spekulativer Ausführung, bei der mehrere Transaktionen parallel verarbeitet und je nach Konflikten zurückgesetzt oder angepasst werden können. Durch Speicherung verschiedener Versionen des Zustands ermöglicht MonadDB dem Ausführungsmotor, Datenkonflikte effizient zu isolieren und zu lösen.

Im Kern verwendet MonadDB eine Merkle-Patricia-Trie-Datenstruktur - einen kryptographisch sicheren Baum, der eine schnelle Überprüfung des Blockchain-Zustands ermöglicht. Diese Trie-Struktur stellt sicher, dass jede Änderung im Zustand zu einem neuen Wurzel-Hash führt, der von allen Knoten validiert werden kann. Es unterstützt vertrauenslose Synchronisierung, leichte Clients und auf Beweisen basierende Zustandsüberprüfung, die grundlegend für eine sichere und skalierbare Blockchain-Entwicklung sind.

Um das erwartete Transaktionsvolumen zu bewältigen, ist MonadDB für latenzarme Lese- und Schreibvorgänge konzipiert. Es integriert Caching, nebenläufige Zugriffskontrollen und schnellen Festplattenspeicher, um eine schnelle Abruf- und Änderung von Zustandseinträgen sicherzustellen. Diese Optimierungen ermöglichen es der Ausführungsschicht, mit hoher Durchsatzrate zu arbeiten, ohne durch Datenzugriffsverzögerungen ausgebremst zu werden.

Aus der Sicht eines Entwicklers ist MonadDB vollständig abstrahiert. Smart Contract-Entwickler interagieren mit der Blockchain durch vertraute Solidity-Konstrukte, ohne die zugrunde liegende Zustandsmechanik verwalten zu müssen. MonadDB stellt sicher, dass der Zustand auch bei hoher Last oder während der Ausführung komplexer Verträge korrekt aktualisiert und gespeichert wird.

Haftungsausschluss
* Kryptoinvestitionen sind mit erheblichen Risiken verbunden. Bitte lassen Sie Vorsicht walten. Der Kurs ist nicht als Anlageberatung gedacht.
* Der Kurs wird von dem Autor erstellt, der Gate Learn beigetreten ist. Vom Autor geteilte Meinungen spiegeln nicht zwangsläufig die Meinung von Gate Learn wider.
Katalog
Lektion 3

Technische Architektur von Monad

Dieses Modul bietet eine ausführliche technische Aufschlüsselung der Architektur von Monad, die zeigt, wie das Protokoll hohe Durchsatzraten und geringe Latenzzeiten erreicht. Zu den Themen gehören der parallele Ausführungsmechanismus, das asynchrone Ausführungsmodell, der MonadBFT-Konsens und die benutzerdefinierte MonadDB-Speicherschicht - alles entworfen, um komplexe, skalierbare On-Chain-Anwendungen zu unterstützen.

Optimistische parallele Ausführung

Eine der prägendsten Innovationen des Monad-Blockchains ist sein optimistisches paralleles Ausführungsmodell. Dieser Ansatz überdenkt, wie Transaktionen auf Protokollebene verarbeitet werden und behebt eine wichtige Einschränkung herkömmlicher Blockchains: die sequenzielle Ausführung. Auf Plattformen wie Ethereum werden Transaktionen nacheinander ausgeführt, was die Zustandskonsistenz sicherstellt, aber die Durchsatzrate und die Gesamtleistung erheblich einschränkt.

Monads Virtual Machine führt Parallelität ein, indem davon ausgegangen wird, dass die meisten Transaktionen innerhalb eines Blocks unabhängig voneinander sind und nicht mit den gleichen Teilen des Blockchain-Zustands interagieren. Basierend auf dieser Annahme werden Transaktionen gruppiert und geplant, um gleichzeitig auf mehreren Verarbeitungsthreads ausgeführt zu werden. Dies erhöht die Ausführungsdurchsatz erheblich, insbesondere bei hoher Netzwerklast, indem moderne Mehrkernprozessoren effektiver genutzt werden als sequentielle Modelle.

Allerdings birgt Nebenläufigkeit potenzielle Risiken für Datenkonflikte, wie z. B. wenn zwei Transaktionen versuchen, dasselbe Konto oder denselben Vertrag zu ändern. Monad löst dieses Problem, indem es ein Konflikterkennungs- und -lösungssystem integriert. Nachdem Transaktionen parallel ausgeführt wurden, überprüft das System auf Inkonsistenzen. Werden Konflikte festgestellt, werden nur die betroffenen Transaktionen sicher neu ausgeführt oder neu angeordnet. Dies gewährleistet, dass die Blockchain die Korrektheit und deterministischen Zustandsübergänge beibehält und dennoch von der Effizienz der nebenläufigen Verarbeitung profitiert.

Dieses Modell ähnelt der optimistischen Nebenläufigkeitssteuerung in modernen Datenbanksystemen, bei der davon ausgegangen wird, dass die meisten Operationen nicht konfliktfrei sind und gleichzeitig behandelt werden. Nur in Ausnahmefällen greift das System ein. Das Ergebnis ist eine skalierbare und anpassungsfähige Ausführungsschicht, die sich für Anwendungen mit hohem Transaktionsvolumen und vielfältigen Arbeitslasten eignet.

Die optimistische parallele Ausführung ist besonders vorteilhaft für Anwendungsfälle wie DeFi, Gaming und NFT-Märkte, wo viele Benutzer gleichzeitig interagieren, aber selten mit denselben Daten. Monad kann diese Operationen parallel verarbeiten, um Staus zu verringern und die Reaktionsfähigkeit dezentralisierter Anwendungen ohne die Notwendigkeit von Off-Chain-Skalierungsschichten zu verbessern.

Ein weiterer wichtiger Vorteil ist die Entwicklervereinfachung. Die EVM-kompatible Umgebung von Monad ermöglicht es Smart Contracts, die in Solidity geschrieben sind, normal auszuführen, ohne dass Entwickler die Nebenläufigkeit manuell verwalten müssen. Das Protokoll handhabt die Ausführungslogik im Hintergrund und verbessert die Netzwerkperformance, während es die Entwicklererfahrung bewahrt.

Asynchrone Ausführung

Ergänzend zu seinem parallelen Ausführungsmodell implementiert Monad die asynchrone Ausführung, eine architektonische Funktion, die die Ausführung von Transaktionen vom Konsensprozess trennt. In traditionellen Blockchains sind Konsens und Ausführung eng miteinander verbunden – Validatoren müssen alle Transaktionen ausführen, bevor sie sich auf einen Block einigen und ihn abschließend bestätigen. Diese Kopplung führt zu Latenzzeiten und begrenzt, wie schnell neue Blöcke produziert werden können.

Monad entkoppelt diese Funktionen, indem es die Reihenfolge der Transaktionen zuerst durch Konsens finalisiert und sie dann ausführt. Dieses Design ermöglicht es der Konsensschicht, unabhängig und kontinuierlich zu arbeiten, während die Ausführung parallel im Hintergrund läuft. Es erhöht die Effizienz der Validatoren und reduziert die Blockzeit, da die Validatoren nicht mehr durch die Zeit eingeschränkt sind, die für die Berechnung der Ergebnisse jeder Transaktion benötigt wird.

Das System gewährleistet Determinismus und Sicherheit, indem sichergestellt wird, dass alle Knoten die genau gleichen Transaktionen in der vereinbarten Reihenfolge ausführen, auch wenn die Ausführung selbst zu verschiedenen Zeiten erfolgt. Dies garantiert Konsistenz im gesamten Netzwerk und verhindert Abweichungen im Zustand der Blockchain.

Asynchrone Ausführung ergänzt auch die optimistische Parallelität von Monad. Während der Konsens fortschreitet und neue Blöcke schnell abgeschlossen werden, findet die Ausführung gleichzeitig in mehreren Threads statt, Konflikte werden nur bei Bedarf gelöst. Diese Kombination aus Parallelität und Asynchronie maximiert die Systemkonkurrenz und Ressourcennutzung, ohne die Korrektheit zu beeinträchtigen.

Aus Benutzer- und Entwicklersicht führt diese Architektur zu einer schnelleren Transaktionseinbindung, reaktionsfähigeren Anwendungen und verbesserter Skalierbarkeit. Validatoren profitieren auch von reduzierten Engpässen, was zu einem effizienteren und dezentralisierten Netzwerk führt.

MonadBFT Konsensmechanismus

In Monad wird Konsens durch MonadBFT erreicht, eine maßgeschneiderte Anpassung des HotStuff-Byzantinischen Fehler-Toleranten (BFT)-Protokolls. Dieser Konsensmechanismus ist für Leistung und Sicherheit optimiert und unterstützt die Ziele von Monad hinsichtlich geringer Latenzzeit und hoher Durchsatzrate, bleibt aber für dezentrale Validatoren zugänglich.

HotStuff wurde ursprünglich entwickelt, um die Anzahl der für die Finalisierung eines Blocks erforderlichen Kommunikationsrunden zu reduzieren. MonadBFT baut darauf auf, indem es eine abschließende Ein-Slot-Finalität ermöglicht, bei der Blöcke in einer einzigen Runde des Konsenses finalisiert werden, ohne auf mehrere Bestätigungen warten zu müssen. Dies bietet sofortige Transaktionsfinalität, verbessert die Vorhersagbarkeit für Anwendungen und reduziert das Risiko einer Kettenreorganisation.

MonadBFT verwendet ein Leader-basiertes Modell. In jeder Runde schlägt ein Validator einen Block vor, während die anderen ihn validieren und darüber abstimmen. Wenn zwei Drittel des gesamten Validator-Einsatzes den Block bestätigen, wird er finalisiert. Dieser optimierte Prozess minimiert den Overhead und beschleunigt die Blockproduktion, insbesondere unter normalen Betriebsbedingungen.

Um die Lebendigkeit sicherzustellen, enthält MonadBFT Leader-Rotation und Timeout-Strategien. Wenn ein Leader es versäumt, einen Block vorzuschlagen, übernimmt automatisch der nächste Validator in der Reihe. Diese Widerstandsfähigkeit gewährleistet, dass die Kette auch dann weiter voranschreitet, wenn einige Validatoren offline oder unempfindlich sind.

Aus Sicherheitssicht hält sich MonadBFT an den typischen BFT-Schwellenwert und toleriert, dass bis zu einem Drittel der Validatoren sich bösartig verhalten, ohne die Sicherheit zu gefährden. Sobald ein Block finalisiert ist, ist er kryptografisch versiegelt und kann nicht ohne die Kollusion von unehrlichen Akteuren, die die Mehrheit der Validatorenleistung kontrollieren, rückgängig gemacht werden.

Das Protokoll ist eng mit dem asynchronen Ausführungsmodell von Monad integriert. Da Blöcke vor der Ausführung abgeschlossen sind, kann das System ohne Verzögerung fortschreiten, während die Ausführungsschicht Transaktionen unabhängig verarbeitet. Diese Architektur reduziert die Arbeitslast der Validatoren und ermöglicht es dem System, eine hohe Leistung beizubehalten, ohne auf zentralisierte Sequenzierungsdienste oder vertrauenswürdige Vermittler angewiesen zu sein.

MonadDB

Effiziente Ausführung und Konsens beruhen auf einem leistungsstarken Zustandsverwaltungssystem. In Monad wird diese Rolle von MonadDB wahrgenommen, der benutzerdefinierten Zustandsspeicherschicht der Blockchain. MonadDB ist verantwortlich für die Speicherung aller On-Chain-Daten, einschließlich Kontostände, Vertragsspeicher und anderer persistenter Zustandsvariablen. Es ist darauf ausgelegt, schnell, nebenläufig und vollständig kompatibel mit dem parallelen Ausführungsmotor von Monad zu sein.

MonadDB verwendet einen versionierten, persistenten Key-Value-Speicher, der es ermöglicht, mehrere Schnappschüsse des Zustands gleichzeitig beizubehalten. Dies ist entscheidend für die Unterstützung spekulativer Ausführung, bei der mehrere Transaktionen parallel verarbeitet und je nach Konflikten zurückgesetzt oder angepasst werden können. Durch Speicherung verschiedener Versionen des Zustands ermöglicht MonadDB dem Ausführungsmotor, Datenkonflikte effizient zu isolieren und zu lösen.

Im Kern verwendet MonadDB eine Merkle-Patricia-Trie-Datenstruktur - einen kryptographisch sicheren Baum, der eine schnelle Überprüfung des Blockchain-Zustands ermöglicht. Diese Trie-Struktur stellt sicher, dass jede Änderung im Zustand zu einem neuen Wurzel-Hash führt, der von allen Knoten validiert werden kann. Es unterstützt vertrauenslose Synchronisierung, leichte Clients und auf Beweisen basierende Zustandsüberprüfung, die grundlegend für eine sichere und skalierbare Blockchain-Entwicklung sind.

Um das erwartete Transaktionsvolumen zu bewältigen, ist MonadDB für latenzarme Lese- und Schreibvorgänge konzipiert. Es integriert Caching, nebenläufige Zugriffskontrollen und schnellen Festplattenspeicher, um eine schnelle Abruf- und Änderung von Zustandseinträgen sicherzustellen. Diese Optimierungen ermöglichen es der Ausführungsschicht, mit hoher Durchsatzrate zu arbeiten, ohne durch Datenzugriffsverzögerungen ausgebremst zu werden.

Aus der Sicht eines Entwicklers ist MonadDB vollständig abstrahiert. Smart Contract-Entwickler interagieren mit der Blockchain durch vertraute Solidity-Konstrukte, ohne die zugrunde liegende Zustandsmechanik verwalten zu müssen. MonadDB stellt sicher, dass der Zustand auch bei hoher Last oder während der Ausführung komplexer Verträge korrekt aktualisiert und gespeichert wird.

Haftungsausschluss
* Kryptoinvestitionen sind mit erheblichen Risiken verbunden. Bitte lassen Sie Vorsicht walten. Der Kurs ist nicht als Anlageberatung gedacht.
* Der Kurs wird von dem Autor erstellt, der Gate Learn beigetreten ist. Vom Autor geteilte Meinungen spiegeln nicht zwangsläufig die Meinung von Gate Learn wider.