Fork

Eine Fork ist eine Weiterentwicklung einer Software. Es gibt Soft Forks und Hard Forks.

Was ist eine Fork?

Eine Fork ist eine Weiterentwicklung einer Software. Es gibt Soft Forks und Hard Forks.

Klassisch bedeutet eine Fork die Weiterentwicklung von Open Source Software. Da quelloffene Software naturgemäß jedem Menschen frei zugänglich ist, besitzt jeder die Möglichkeit, eine eigene Kopie der Software anzufertigen und diese für eigene Zwecke zu modifizieren. Diese Abspaltung der originalen Software nennt man auch eine Fork.

Das Modifizieren der Software ist keinesfalls als böser Eingriff zu sehen, sondern sogar ein elementarer und erwünschter Bestandteil von Open-Source-Projekten. Nutzer mit Programmierkenntnissen können damit gemäß ihrem eigenen Bedarf neue Funktionalitäten hinzufügen. Außerdem können so verschiedene Distributionen einer Software existieren.

Was haben Forks mit Blockchains zu tun?

Auch der Computercode einer öffentlichen Blockchain, wie Bitcoin, ist quelloffen und kann, wie oben beschrieben, von Entwicklern lokal modifiziert werden.

Doch bestehen Blockchain-Systeme nicht nur aus Computercode, sondern auch aus einem Netzwerk an Teilnehmern, die den Code auf ihren Computern ausführen. Damit sich das Netzwerk nicht spaltet, müssen alle mit den Änderungen übereinstimmen. Daher ist es nicht möglich, dass ein unerfahrener Programmierer oder bösartiger Angreifer, unbemerkt die Spielregeln des Netzwerks ändert.

Das sieht in Praxis wie folgt aus:

  • Es existiert eine allgemein anerkannte Bitcoin-Version.
  • Die Nutzer wünschen neue Funktionalitäten, bspw. eine Erhöhung der Blocksize, um Kapazitätsprobleme zu lösen.
  • Ein Nutzer kopiert die derzeitige Bitcoin Software und modifiziert die Regeln so, dass größere Blöcke als gültig anerkannt werden.
  • Er stellt die Software anderen Nutzern zur Verfügung, die sie ebenfalls nutzen können.
  • Nun existieren zwei Versionen der Bitcoin Software im Netzwerk und Nutzer können entscheiden, welche sie verwenden möchten. Die Nutzer stimmen ab, indem sie Version 1 oder Version 2 benutzen.

Welche Arten gibt es?

Wichtig ist die Differenzierung zwischen Software Forks und Blockchain Forks. Forks sind insbesondere in der Art ihrer Auswirkung auf die bestehende Software bzw. auf das Blockchain-Netzwerk zu klassifizieren:

Soft Forks

Bei einer Soft Fork wird der existierende Code kopiert, gegebenenfalls verändert und dann neu eingespielt. Eine Software Fork hat somit ihren eigenen Anfang, einen eigenen Genesis-Block.

Ein Beispiel für eine Software Fork ist Litecoin. Litecoin nahm den Bitcoin Code, veränderte einige Parameter (höhere Geldmenge, kürzere Blockzeiten etc.), und begann mit einem neuen Genesisblock. Das heißt, wer vorher Bitcoin hatte, hatte nach wie vor nur Bitcoin. Litecoin bekamen nur diejenigen, die aktiv am Litecoin-Netzwerk teilnahmen und die Kryptowährung schürften.

Ein weiteres Beispiel für eine Soft Fork ist Monero. Das theoretische Konstrukt für Monero kam zum ersten Mal in Bytecoin zum Einsatz. Allerdings stellte sich nach einiger Zeit heraus, dass Bytecoin ein Betrugsversuch war und sich bereits mehr als 80 Prozent der Geldmengeim Umlauf befanden (Premine). Das Monero-Projekt kopierte daraufhin den Computercode und startete das Netzwerk mit einer fairen Distribution neu. Auch hier generierte Monero einen neuen, eigenen Genesis-Block.

Auch wenn Litecoin viele Ähnlichkeiten zu Bitcoin hat und Monero im Kern wie Bytecoin funktioniert, sind die Projekte voneinander unabhängig und es gibt keine Überschneidungen des Netzwerks. Ob es sich um eine Software Fork handelt, erkennt man in der Regel mit Blick auf die Blockchain und den Genesis-Block.

Blockchain Forks

Anders verhält es sich mit Blockchain Forks oder sogenannten Chain Splits. Bei einem Chain Split wird eine existierende Blockchain – und das Netzwerk – gespalten. Aus einer Blockchain werden zwei Blockchains. Beide Blockchains haben denselben Ursprung, denselben Genesis-Block.

Ein Beispiel ist die Gabelung des Bitcoin Netzwerks am 1. August 2017. Damals stritt sich die Bitcoin Community um die Skalierung des Netzwerks. Der eine Teil wollte außerhalb der Blockchain skalieren, der andere Teil wollte die Blockgröße erhöhen und so auf der Blockchain skalieren. Am 1. August 2017 gipfelte diese Auseinandersetzung, indem die Vertreter größerer Blöcke sich vom existierenden Bitcoin-Netzwerk abkapselten. Aus einer Bitcoin Blockchain wurden plötzlich zwei: die alte Bitcoin Blockchain und die neue Bitcoin Cash Blockchain. Bitcoin und Bitcoin Cash haben bis zum 1. August die komplett gleiche Geschichte, aber seit diesem Tag sind die Netzwerke nicht mehr miteinander kompatibel.

Bei solch einem Chain Split passiert etwas Bemerkenswertes: Wer vor der Fork schon beispielsweise Bitcoin gehalten hat, hält danach zwei Assets – die Assets auf der alten Chain und die Assets auf der neuen Chain. Im August 2017 war das alte Asset Bitcoin und das neue Bitcoin Cash. Wer am 31. Juli 10 Bitcoin hatte, hatte am 1. August 10 Bitcoin und 10 Bitcoin Cash.

Nicht jede Blockchain Fork muss einen Chain Split mit sich bringen. Ein Chain Split entsteht nur, wenn es zwei Lager gibt, die sich nicht auf einen aktuellen Zustand im Netzwerk (also auf einen gemeinsamen Block) einigen können.

Was ist eine Hard Fork?

Zum Verständnis ist es wichtig, die Funktion einer Node zu kennen. Kurz erklärt: Die Nodes speichern als Netzwerkknoten die Blockchain und stellen sie dem Netzwerk bereit. Die aktuellste Transaktionshistorie ist auf allen Nodes gespeichert und somit dezentral. Damit sich alle Nodes im Netzwerk auf dieselbe gültige Blockchain verständigen können, müssen sie mit einer kompatiblen Software betrieben werden.

Abstrakt gesprochen ist eine Hard Fork ein nicht-rückwärts-kompatibles Update der Konsensregeln. Klingt einfach, aber was bedeutet das? Kurz: Wer bei der Hard Fork mitmachen möchte, muss sich an die neuen Regeln halten. Alle Nutzer, die nach wie vor den alten Regeln folgen, sind nicht im neuen Netzwerk. Einstimmigkeit mit den neuen Regeln symbolisiert man im Blockchain-Kosmos mit entsprechender Software. Um “sich an die neuen Regeln zu halten”, müssen die Teilnehmer ihre Krypto-Software updaten. Das kann eine Wallet sein oder ein Mining Client. Die neue Software hält sich automatisch an die neuen Regeln. 

[Definitionsbox] Eine Hard Fork ist eine Änderung der Regeln, die keine Rückwärts-Kompatibilität zulässt. Ereignisse, die vorher ungültig waren, sind jetzt gültig. Deswegen spaltet sich die Blockchain im Falle einer Hard Fork. Die alte Blockchain existiert nach wie vor unter den alten Regeln.

Wichtig: Die Partizipation an einer Hard Fork ist “opt-in”, das heißt man muss aktiv etwas unternehmen – aktiv den neuen Konsensregeln zustimmen. Alle, die nicht updaten, werden auf einer alten Chain zurückgelassen.

Vegetarier zu Fleisch-Esser = Hard Fork

Betrachten wir eine Hard Fork weit ab von Bitcoin und Blockchain, anhand eines Beispiels aus der analogen Welt:

Man stelle sich eine Gruppe Vegetarier vor, die sich kollektiv auf die (Konsens-)Regel “Wir essen kein Fleisch” einigen. Jetzt ändert ein Teil der Gruppe ihre Meinung und möchte auch Fleisch verzehren. Die Personen schließen sich zusammen und bestimmen, eine Hard Fork durchzuführen. “Wir essen auch Fleisch” heißt die neue Regel. Natürlich gibt es für Menschen keine Software, die sie sich herunterladen. Im Beispiel wäre das Update eher der Gedanke “Fleisch ist erlaubt”. Nichtsdestotrotz, die Analogie steht: Wer seine Regeln aktualisiert, ist nicht mehr mit dem alten Protokoll (oder: dem alten Regelwerk) kompatibel. Ein Vegetarier würde eine Mahlzeit mit Fleisch immer noch ablehnen.

Eine Hard Fork impliziert einen Chain-Split

Noch ein weiteres Charakteristikum einer Hard Fork: Die Blockchain spaltet sich. Eine Hard Fork wird ab einer bestimmten Blockhöhe aktiviert. Besser gesagt: In der neuen Software steht die Bedingung “Wenn Block Nummer X kommt, halte dich an die neuen Regeln”. Das ist einer der Gründe, warum die Software auf den neusten Stand gebracht werden muss. Diese Bedingung bedeutet, dass ab Block X die neuen Regeln gelten. Wer sich zur Zeit von Block X an die alten Regeln hält, bleibt auf einer alten Chain. Die alte Software erkennt den Block X nicht als gültig an und weißt ihn deswegen zurück. Das Netzwerk ist sich dann uneinig. Alle upgedateten Nodes sehen Block X als gültig; alle alten Nodes weisen den Block X zurück. Bei einer Hard Fork gehen diese beiden Netzwerke für immer getrennte Wege.

Das ist auch der Grund für doppelte Coins. Wer Geld auf der alten Chain – vor der Hard Fork – hatte, hat dieses Geld auch auf der neuen Fork; und nach wie vor auf der alten. Die Anzahl der Token hat sich in gewisser Weise verdoppelt. Das impliziert nicht, dass sich der Preis verdoppelt – eigentlich sollte sich dieser erstmal halbieren.

Der Chain Split kommt theoretisch nicht zustande, wenn sich komplett alle Teilnehmer einig sind – also die gleiche Software ausführen. Sobald allerdings nur eine Person auf der alten Chain verweilt, existiert auch die alte Chain weiter. Dann gibt es einen Chain Split.

Bekannte Beispiele für Hard Forks

An dieser Stelle werden zwei bekannte Beispiele aus der Krypto-Industrie beleuchtet:

Ethereum: Mit dem DAO-Hack gingen gut 150 Millionen US-Dollar “verloren”. Die Ethereum Foundation entschied sich dazu, die Zeit zurück zu drehen – bevor der Hack passiert war. Das war nicht gemäß der ETH-Konsensregeln. Eine Hard Fork musste eingeführt werden. Ethereum (ETH) ist die neue Chain seit damals; Ethereum Classic (ETC) ist die alte Chain, die den DAO-Hack nicht rückgängig gemacht hat.

Bitcoin Cash: Für die Skalierung der Blockchain forderte Bitcoin Unlimited die Vergrößerung der Blockgröße. Die Konsensregeln begrenzten die Blöckgröße in Bitcoin auf 1 MB. Bitcoin Cash (BCH) ist eine Hard Fork, die unter anderem diesen Parameter angehoben hat; Bitcoin (BTC) ist die alte Chain (engl. = Legacy Chain).

Ob Vegetarier oder Karnivore, die Entscheidung muss jeder selbst treffen. Wichtig ist: die Software bestimmt, welchen Regeln man folgt. Prinzipiell muss man als Nutzer keine Entscheidung treffen. Mit der Blockchain-Technologie kann man auch auf beiden Bällen tanzen. Dafür muss man beide Versionen der Software simultan betreiben.

Was ist eine Soft Fork?

Einfach gesprochen ist eine Soft Fork eine rückwärts-kompatible Änderung in den Konsensregeln. Nicht das ganze Netzwerk muss bei einer Soft Fork partizipieren, der Konsens wird nicht gebrochen.

Eine Soft Fork verengt das Regelwerk. Etwas, das vorher erlaubt war, ist jetzt nicht mehr erlaubt. Deswegen ist eine Soft Fork rückwärtskompatibel, denn die Soft Forker können nach wie vor am „alten System“ teilnehmen.

“Vegetarier zu Veganer”

Verdeutlichen wir diese Definition mit unserem vorausgegangenen Beispiel – der Gruppe Vegetarier. Die Konsensregel ist recht simpel: „Wir essen kein Fleisch“. Jetzt ändert ein Teil der Gruppe seine Meinung und möchte vegan leben, das heißt er verzichtet auf bestimmte vegetarische Produkte. Das Regelwerk wird strikter. Aus Perspektive der Vegetarier halten sich die Veganer nach wie vor an die Regel, kein Fleisch zu essen.

Mit anderen Worten: Die Veganer können immer noch im Konsenssystem der Vegetarier existieren – alle veganen Nahrungsmittel sind auch für Vegetarier erlaubt. Das bedeutet: der Wandel von Vegetarier zu Veganer ist rückwärts-kompatibel. Im Gegensatz dazu können Fleischesser nicht im Konsenssystem der Vegetarier existieren.

Während eine Hard Fork die Blockchain spaltet, benutzt eine Soft Fork die gleiche Blockchain wie das „alte System“. Das heißt auch, dass die Nutzer nicht ihre Software upgraden müssen. In den meisten Fällen bieten die Änderungen einer Soft Fork zwar Erweiterungen für das Netzwerk, allerdings wird es den Teilnehmern überlassen, ob sie diese Änderungen tatsächlich nutzen wollen. Wer die Neuerung nutzen möchte, gibt seine Zustimmung in Form einer aktualisierten Software.

Weil sich die Blockchain bei einer Soft Fork nicht “gabelt” (sondern lediglich eine Ebene dazu bekommt), gibt es hier auch keine duplizierten Coins.

Bekanntes Beispiel für Soft Fork

Im Jahr 2017 erlebte das Bitcoin-Netzwerk eine Soft Fork – Segregated Witness (kurz: SegWit). SegWit schloss eine Lücke in Bitcoin – die Transaction Malleability. Damit wurde unter anderem die Implementierung sogenannter Second-Layer-Technologie (das Lightning Netzwerk) ermöglicht.

SegWit speichert die Signaturen (Witnesses) der Transaktionen – also der Teil einer Transaktion, der verifiziert, dass der Sender über das Geld verfügt – nicht mehr im Block-Body, sondern separat (Segregated). Eine Transaktion in SegWit ist deswegen kleiner – und daher günstiger.

Alle Bitcoin-Netzwerk-Teilnehmer, die nicht auf SegWit upgedated haben, können immer noch am Konsens teilhaben und Blöcke verifizieren. Damit ist SegWit rückwärts-kompatibel; ein Paradebeispiel für eine Soft Fork.

Vegetarier können auch vegane Kost speisen – für Fleisch bedarf es allerdings einer Hard Fork der Konsensregeln.

Merken wir uns also:

“In einer Hard Fork wird etwas vorher Unerlaubtes erlaubt.” 

“In einer Soft Fork wird etwas vorher Erlaubtes verboten.”

Diskussion: Sind Hard Forks besser oder Soft Forks?

Die Gretchen Frage der Krypto-Welt ist: „Nun sag, wie hast du’s mit den Hard Forks?“, denn Hard Forks spalten im wahrsten Sinne des Wortes die Communities.

Das eine Extrem ist die Position, dass Bitcoin in seiner ursprünglichen Form die einzig legitime Blockchain repräsentiert. Jeder Versuch einer Hard Fork würde diese unveränderliche Form zerstören und eine fundamentale Eigenschaft von Bitcoin nehmen.

Das andere Extrem ist die Position, dass Chainsplits „kostenloses Geld“ repräsentieren und beliebig oft eingesetzt werden können. Gerade im Jahr 2017 war es ein beliebtes Vorgehen, um zum schnellen Geld ein erfolgreiches Projekt mit einer minimalen Änderung zu Hard Forken.

Wird das neue Asset auf einer Börse gelistet, erhofft man sich einen Wertanstieg in der Summe der beiden Kryptowährungen. Theoretisch sollte der Wert einer Kryptowährung nach einem Chainsplit nicht steigen. Allerdings entpuppen sich in der Realität die Märkte oft träger oder irrationaler als man vermuten würde und die Kurse pendeln sich erst über einige Zeit ein.

Ein prominentes Argument gegen Hard Forks und das „kostenlose“ Geld hat mit der Privatsphäre der Nutzer zu tun. Wer auf beide Versionen einer gespaltenen Blockchain zugreift, könnte seine Privatsphäre einschränken.

Auf der anderen Seite sind Hard Forks auch für Fehler anfällig. Wir erinnern uns, dass eine Hard Fork Dinge, die vorher nicht erlaubt waren, jetzt erlaubt. So könnten sich auch Bugs im Software-Protokoll einschleichen, die vorher nicht existierten.

Hard Forks können für weitreichende Upgrades genutzt werden. So kommen neue Funktionen in das Protokoll. Dafür ist es allerdings erforderlich, die breite Zustimmung der Community zu haben. Bei solch einer Hard Fork muss die breite Masse des Netzwerks mitmachen, damit das ganze Netzwerk auf den neuen Stand kommt. Handelt es sich um eine umstrittene Hard Fork, das heißt eine Änderung der Konsensregeln, die nicht von der Allgemeinheit akzeptiert wird, kann das Netzwerk Probleme bekommen.

Gerade in großen Netzwerken, wie beispielsweise Bitcoin, sind solche koordinierten Hard Forks schwierig. Die Skalierungsdebatte 2017 und den vorhergegangenen Jahren demonstrierte diese Schwierigkeit. Anstatt einer allgemein akzeptierten Hard Fork, führte das Bitcoin-Netzwerk eine Soft Fork durch. Gleichzeigt ereignete sich auch eine Hard Fork, bei der sich Bitcoin Cash vom Bitcoin-Netzwerk abspaltete.

Hard Forks benötigen explizite Zustimmung der Netzwerk-Teilnehmer, wohingegen eine Soft Fork auch ohne diese explizite Zustimmung eingeführt werden kann. Dieser Umstand ist Grund für Kritik an Soft Forks. Dabei wirft man Soft Forks vor das Netzwerk heimlich zu ändern, denn eine Zustimmung benötigt man für eine Soft Fork nicht. So unterwandere eine Soft Fork das Netzwerk und könne langfristig die anderen Miner dazu nötigen, ihre Software zu aktualisieren.

Häufige Fragen (FAQ)

Ähnliche Begriffe