GHOSTDAG
GHOSTDAG – wie erreichen alle Nodes dieselbe Reihenfolge in einem BlockDAG?
Ein BlockDAG kann Blöcke, die parallel erzeugt wurden, in derselben Struktur behalten.
Das reicht aber noch nicht.
Wenn zwei Blöcke parallel erzeugt wurden, kann der Graph uns sagen:
„Beide existieren, und beide verbinden sich mit derselben Vergangenheit.“
Für sich sagt er nicht:
Welcher sollte zuerst kommen, wenn die Transaktionen darin geprüft werden?
Kaspa nutzt dafür GHOSTDAG.
Warum brauchen wir überhaupt eine Reihenfolge?
Stell dir vor, ein Block enthält:
Emma → Liam: 30 KAS
Ein paralleler Block enthält:
Emma → Olivia: dieselben 30 KAS
Beide Blöcke können im BlockDAG bleiben.
Beide Zahlungen können aber nicht angenommen werden.
Damit jeder Computer dieselbe Antwort erreicht, müssen sie dieselbe Reihenfolge erreichen.
Wenn die Zahlung an Liam zuerst kommt, ist dasselbe Geld für die Zahlung an Olivia nicht mehr verfügbar.
Also:
Die Blöcke zu behalten ist ein Problem.
Blöcke zu ordnen ist ein anderes.
GHOSTDAG gibt jedem Node dieselben Regeln, um die Blöcke zu ordnen
Jeder Node schaut auf den BlockDAG und wendet dieselben GHOSTDAG-Regeln an.
Diese Regeln schauen auf:
wie die Blöcke verbunden sind, und das Proof of Work dahinter.
Weil die Nodes dieselben Regeln nutzen, können sie dieselbe Antwort darüber erreichen, wie die Historie geordnet werden soll.
Es hängt nicht davon ab:
„Welcher Block hat meinen Computer zuerst erreicht?“
Ein Node kann zuerst von einem Block hören, während ein anderer Node zuerst vom anderen Block hört.
Die Reihenfolge muss aus den Protokollregeln kommen, nicht aus der lokalen Ankunftsreihenfolge an einem Computer.
GHOSTDAG erkennt einen bevorzugten Weg durch den Graphen
Du kannst dir den BlockDAG als ein Netz verbundener Wege vorstellen.
GHOSTDAG erkennt einen zentralen bevorzugten Weg nach den Protokollregeln und dem Proof of Work hinter dem Graphen.
Es wirft aber nicht einfach alles weg, was nicht genau auf diesem Weg liegt.
Parallel erzeugte Blöcke können weiterhin in die Gesamtordnung aufgenommen werden.
Das ist ein wichtiger Unterschied zu einem Entwurf mit einer Kette, bei dem am Ende eine Hauptlinie bleibt.
Was sind „blaue“ und „rote“ Blöcke?
GHOSTDAG ordnet Blöcke ein, als Teil der Art, den Graphen zu analysieren.
Manche werden blau eingeordnet und manche rot.
Die Namen können in die Irre führen, wenn man sie zu wörtlich nimmt:
Blau heißt nicht „guter Block“.
Rot heißt nicht „gefälschter Block“ oder „schlechter Block“.
Die Farbe beschreibt den Platz des Blocks in der GHOSTDAG-Berechnung und seine Beziehung zu anderen Blöcken.
Ein roter Block kann weiterhin ein gültiger Block sein, den ein ehrlicher Miner erzeugt hat.
Für den Anfang ist die wichtige Idee:
Die Farben helfen GHOSTDAG, Arbeit zu organisieren, die parallel passiert ist.
Du brauchst die genaue Mathematik nicht, um die Hauptidee zu verstehen.
GHOSTDAG ist um eine im Voraus gewählte Grenze für parallele Arbeit entworfen
Wenn zwei ehrliche Miner fast gleichzeitig arbeiten, weil die Information noch nicht beide erreicht hat, ist das ein normales Netzwerkereignis.
GHOSTDAG ist dafür entworfen, ein gewisses Maß dieser parallelen Arbeit zu verkraften.
Die Protokollregeln enthalten eine im Voraus gewählte Grenze für die Netzwerkbedingungen, um die GHOSTDAG entworfen ist.
Du musst keine Zahl merken, um den Punkt zu verstehen:
Kaspa nimmt nicht an, dass jeder Block alle erreichen muss, bevor der nächste Block erzeugt werden kann.
Das Protokoll ist dafür gebaut, mit mehreren Blöcken umzugehen, die erzeugt werden, bevor Information Zeit hatte, alle zu erreichen.
Nachdem die Reihenfolge bekannt ist, müssen die Transaktionen weiterhin geprüft werden
GHOSTDAG heißt nicht:
„Alles in jedem Block wird angenommen.“
Es hilft, eine vereinbarte Reihenfolge für die Historie zu bestimmen.
Sobald es eine Reihenfolge gibt, wenden die Nodes weiterhin die Transaktionsregeln an.
Zurück zum Beispiel:
- Ein Block enthält Emma → Liam: 30 KAS.
- Ein paralleler Block enthält Emma → Olivia: dieselben 30 KAS.
- GHOSTDAG hilft, eine vereinbarte Reihenfolge zwischen den Blöcken zu bestimmen.
- Die erste Transaktion in dieser Reihenfolge kann das Geld ausgeben.
- Wenn die zweite geprüft wird, ist das Geld nicht mehr verfügbar, also kann sie nicht angenommen werden.
Es ist also nützlich, diese Aufgaben getrennt zu halten:
GHOSTDAG bestimmt die Reihenfolge.
Transaktionsregeln bestimmen, was in dieser Reihenfolge gültig ist.
Das macht den BlockDAG als gemeinsame Historie nützlich
Ohne GHOSTDAG hätten wir einen Graphen verbundener Blöcke, bräuchten aber weiterhin einen Weg, damit alle Nodes ihn als dieselbe Historie nutzen.
Kurz:
BlockDAG sagt uns, was womit verbunden ist.
GHOSTDAG bestimmt, wie diese verbundene Historie geordnet werden soll.
Transaktionsregeln bestimmen, welche Aktionen in dieser Reihenfolge angenommen werden.
Warum zählt das bei einer hohen Blockrate?
Je häufiger Blöcke erzeugt werden, desto natürlicher ist es, dass mehrere Blöcke erzeugt werden, bevor Information über die anderen jeden Miner erreicht hat.
Statt jedes solche Ereignis als Problem zu behandeln, bei dem nur ein Zweig bleiben kann, kann Kaspa:
die parallelen Blöcke verbunden halten, dann sie mit GHOSTDAG ordnen.
Das ist ein wichtiger Teil davon, wie Kaspa mit einer hohen Blockrate arbeiten kann.
Das führt zur nächsten Frage:
Wenn jede Sekunde mehr Blöcke erzeugt werden, was heißt das wirklich für die Transaktionskapazität und für die Geschwindigkeit, die eine nutzende Person erlebt?