BlockDAG
BlockDAG – wie kann parallel geleistete Arbeit verbunden bleiben?
Ein neuer Block erreicht nicht jeden Computer im Netzwerk im selben Moment.
Ein Miner kann einen Block finden, und bevor ein anderer Miner davon hört, kann dieser zweite Miner auch einen Block finden, der auf derselben früheren Historie aufbaut.
Jetzt gibt es zwei gültige Blöcke, und keiner der Miner wusste vom anderen Block, als er erzeugt wurde.
Die Frage ist:
Was soll mit beiden passieren?
Zwei Blöcke können erzeugt werden, bevor einer der Miner vom anderen weiß
Stell dir vor, zwei Miner kennen dieselbe frühere Historie.
Ein Miner findet einen neuen Block und veröffentlicht ihn.
Die Information beginnt, durch das Netzwerk zu reisen.
Bevor sie einen anderen Miner erreicht, findet dieser zweite Miner auch einen neuen Block.
Die zwei Blöcke müssen nicht in genau derselben Sekunde erzeugt werden.
Der zweite Block muss nur gefunden werden, bevor die Nachricht vom ersten Block den Miner erreicht, der ihn erzeugt hat.
Auf einer einzelnen Kette erzeugen die zwei Blöcke zwei Zweige
In einer traditionellen Blockchain macht jeder Block von einem vorherigen Block weiter.
Wenn also zwei Blöcke von derselben Vergangenheit weitergehen, erscheinen zwei Zweige.
Miner können auf dem einen oder dem anderen Zweig aufbauen.
Am Ende muss eine Hauptkette die Historie werden, von der das Netzwerk weitermacht.
Bei Bitcoin hilft angesammelte Arbeit zu bestimmen, welcher Zweig die Hauptkette bleibt.
Der Block auf dem anderen Zweig kann völlig gültig sein und trotzdem außerhalb der Hauptkette bleiben.
Kaspa kann beide Blöcke verbunden halten
Kaspa nutzt eine andere Struktur.
Ein neuer Block kann auf mehr als einen vorherigen Block verweisen.
Das heißt, ein späterer Block kann praktisch sagen:
„Ich kenne beide Blöcke und baue von beiden auf.“
Die Arbeit an den zwei parallelen Blöcken muss nicht verschwinden, nur weil sie aus Sicht des Netzwerks zur selben Zeit erzeugt wurden.
Diese Arbeit kann mit der Historie verbunden bleiben.
Diese Struktur nennt man einen BlockDAG.
Warum ist das keine traditionelle Blockchain mehr?
Eine traditionelle Blockchain kann meist als Linie gezeichnet werden:
Block → Block → Block → Block
Ein BlockDAG kann mehrere parallel erzeugte Blöcke enthalten, und spätere Blöcke können sich mit mehreren davon verbinden.
Die Historie sieht also eher wie ein Netz von Beziehungen zwischen Blöcken aus als wie eine gerade Linie.
Was heißt DAG?
Der Name klingt schwerer als die Idee.
D – Directed
Jede Verbindung zeigt in eine Richtung – von einem neueren Block auf die Vergangenheit, die er kennt.
A – Acyclic
Du kannst den Verbindungen nicht rückwärts folgen und am Ende zu demselben Block zurückkommen, bei dem du gestartet bist.
G – Graph
Eine Sammlung von Dingen, die miteinander verbunden sind. Hier sind diese Dinge Blöcke.
Also:
DAG = Directed Acyclic Graph.
Du musst die Definition nicht auswendig lernen, um die Kernidee zu verstehen:
Blöcke können parallel erzeugt werden und verbunden bleiben.
Warum ist das nützlich?
Je häufiger Blöcke erzeugt werden, desto wahrscheinlicher ist es, dass ein Miner einen Block findet, bevor er von einem anderen Block hört, der schon woanders gefunden wurde.
Wenn jedes Mal nur ein Zweig Teil der Hauptstruktur bleiben kann, macht manche parallel geleistete Arbeit nicht mit der Haupthistorie weiter.
Ein BlockDAG lässt Kaspa mehr von dieser parallelen Arbeit verbunden halten.
Das ist ein wichtiger Teil davon, mit einer hohen Blockrate zu arbeiten.
Beide Blöcke zu behalten löst aber noch nicht alles
Stell dir vor, ein Block enthält eine Transaktion, in der Emma Liam zahlt.
Ein paralleler Block enthält eine Transaktion, in der Emma versucht, dasselbe Geld zu nutzen, um Olivia zu zahlen.
Beide Blöcke können in der Struktur bleiben.
Beide Zahlungen können aber nicht angenommen werden.
Also bleibt eine weitere Frage:
In welcher Reihenfolge sollen die Blöcke und ihre Transaktionen geprüft werden?
BlockDAG sagt uns, wie die Blöcke verbunden sind.
Für sich sagt er noch nicht ihre vereinbarte Reihenfolge.
Was tut BlockDAG also wirklich?
Er bewahrt Beziehungen zwischen parallel erzeugten Blöcken, statt sofort alles in eine gerade Linie zu zwingen.
Einfach gesagt:
Blockchain: meist eine Kette von Blöcken.
BlockDAG: kann parallele Blöcke mit derselben Historie verbunden halten.
Sobald wir den Graphen haben, brauchen alle Computer weiterhin einen Weg, dieselbe Reihenfolge zu erreichen.
Kaspa nutzt dafür GHOSTDAG.