Fork

Aus Crypto Wiki

Ein Fork (engl.: Gabelung, Verzweigung) einer Blockchain tritt dann auf, wenn sich die kryptographische Kette, welche auf Dauer bis zur Vollendung der Blockchain nur exakt eine Block-Richtung aufweisen kann, nämlich vom "Genesis-Block" (engl.: Ursprungs- oder Ausgangsblock der jeweiligen Blockchain) zum Folgeblock und vom Folgeblock zum darauf folgenden Block, bis zur Vollendung der Blockchain, in zwei oder mehrere "Pfade" aufspaltet.

Zufälliger bzw. vorübergehender Fork[Bearbeiten]

Eine Aufspaltung der Blockchain kann absichtlich oder zufällig passieren. Beim zufälligen bzw. ungewollten Fork einer dezentralen Blockchain, welcher nur vorübergehend ist, handelt es sich meist um eine Unstimmigkeit des Konsensalgorithmus, sodass beispielsweise während des Mining oder Staking zwei separate Blöcke mit identischer Blocknummer validiert und zur bestehenden Blockchain hinzugefügt werden. Da zwei Pfade ein und derselben Blockchain nur solange aufrechterhalten werden können, bis das validierende (den Konsens bestätigende) Netzwerk den "korrekten" Pfad verifiziert (meist durch die Mehrheit der Validierungen / Bestätigungen neuer Blöcke), ist eine solche Art von Fork nur vorübergehend.

Hard Fork[Bearbeiten]

Beim Hard Fork wird der Konsensalgorithmus, mit anderen Worten, das kryptographische Regelwerk, welches bei der Erstellung der Blockchain zugrunde liegt, verändert. Die Veränderung ist dabei irreversibel (unumkehrbar), d.h. es entsteht ab einer bestimmten Blockhöhe bzw. Blocknummer eine separate Blockchain - der Konsensalgorithmus der neuen Blockchain wird nicht vom Algorithmus der alten Blockchain (und umgekehrt) anerkannt bzw. validiert.

Es ist dazu ein neuer Konsens, also eine Übereinstimmung der validierenden Regeln zur Erstellung neuer Blöcke, notwendig, wordurch die Historie der neuen Blockchain bis zur Blockhöhe des Hard-Forks identisch mit dem alten Konsens ist, ab der auf Basis des neuen Konsens entstehenden Blöcke aber einem eigenen Algorithmus folgt. Somit gehen, bildlich gesprochen, die ursprüngliche und die neue Blockchain von da an "getrennte Wege".

Ein Beispiel sei der Bitcoin-Fork, aus dem Bitcoin Cash entstand. Beide Blockchains existieren separat weiter, die Historie ist aber seit dem ersten Block nach dem Fork verschieden. Es ist aufgrund der beiden verschiedenen Konsense jedoch unmöglich, beide wieder miteinander zu vereinen (irreversibel). Als weiteres Beispiel dient Ethereum nach dem sog. "DAO-Hack": Damals entstand aus ETC (Ethereum Classic) durch einen Hard-Fork ETH (Ethereum). ETH war die Bezeichnung der ursprünglichen Blockchain, welche für die Version nach dem Hack in ETC umbenannt wurde; somit erhielt die abgespaltene, neue Blockchain den alten Namen, ETH.

Außerdem entsteht bei einem Hard-Fork der sog. "Chain-Split" (die Zweiteilung der Blockchain), das heißt, eine Verdopplung der Coins oder Token für alle Teilnehmer*innen des neuen Blockchain-Konsenses. Da die Historie bis zum Fork identisch ist, erhalten alle Besitzer*innen, die sich auf die neuen "Regeln" zur Erstellung von Blöcken einigen sowohl die Menge der bis dato gehaltenen Coins oder Token der alten Blockchain und dieselbe Menge der neuen Coins / Token. Ein Beispiel: Wer 1 BTC (Bitcoin) zur Zeit des Forks zu BTH (Bitcoin Cash) besaß und seine Nodes (Netzwerkknoten, welche den Konsensalgrorithmus speichern) einem Software-Update unterzogen hat, sodass sie/er sich dem neuen Konsens anschloss, die-/derjenige behielt 1 BTC und erhielt zusätzlich ab dem neu generierten Block zusätzlich 1 BTH.

Soft Fork[Bearbeiten]

Der Soft Fork ist eine reversible (umkehrbare) Version eines Forks. Das heißt, der ursprüngliche Konsens bleibt erhalten, wird aber bildlich gesprochen "verengt". Somit erkennen die Nutzer*innen des alten Konsens-Algorithmus weiterhin den Neuen als "wahr" an und es entsteht keine separate Blockchain. Es handelt sich dabei um Veränderungen wie z.B. die Verringerung der Blockgröße: Einen Block zu vergrößern würde einen Hard-Fork verursachen, da das "alte" Netzwerk eine Maximalgröße für Blöcke vorgibt. Einen Block jedoch zu halbieren oder zu vierteilen wäre kein Konsens-Bruch und würde so auch keine neue Blockchain entstehen lassen; es wäre lediglich eine Umskalierung. In der Praxis werden solche "Updates" eingeführt, ohne von Netzwerkteilnehmer*innen bestätigt werden zu müssen. Es müssen lediglich genügend neue Nutzer*innen dem neuen "Regelwerk" folgen, damit das neue Netzwerk die nun veränderten Blöcke validieren kann.

Dennoch stellen Soft-Forks eine Abgrenzung vom alten Konsens dar, da dieser striktere Regeln befolgt oder neue Regeln hinzufügt. Somit wird er vom ursprünglichen Netzwerk anerkannt, andersherum erkennen die Nodes des neuen Konsenses den Alten jedoch nicht mehr an, sodass ab dem Punkt des Soft-Fork ebenfalls eine Aufspaltung der jeweiligen Blockchain stattfindet; jedoch nur aus Sicht der neuen Konsens-Nutzer*innen.

Ein Beispiel für einen Soft-Fork ist die Einführung des "SegWit" ("segregated witness") in das Bitcoin-Netzwerk, was die Implementierung des sog. "Lightning Netzwerks" ermöglichte. Dadurch können Empfänger einer Transaktion nicht mehr während des "pending" (der Zeit bis zur Bestätigung und Dokumentierung der Transaktion durch das Netzwerk) die Transaktions-Signatur ändern, um so die gesendeten Coins / Token zu erhalten, aber durch die veränderte Signatur die Transaktion quasi "verschwinden" zu lassen, da sie nicht in der Historie auftaucht. Die/der Sender*in hatte ursprünglich eine andere Signatur der Transaktion; diese Transaktion wird zwar durchgeführt, aber nicht bestätigt, sodass es den Anschein hat, als wäre sie nie durchgeführt worden, obwohl sie bei der/dem Empfänger*in angekommen ist. Dies bot Möglichkeiten des Betruges, wurde jedoch durch das SegWit behoben.