In der Blockchain-Technologie sind Hard Forks und Soft Forks zwei unterschiedliche Methoden, um Netzwerkprotokolle zu aktualisieren und zu verbessern. Sie unterscheiden sich erheblich in der Umsetzung und beeinflussen die Struktur und den Betrieb des Blockchain-Netzwerks.
Hard Fork - Ein "Hard Fork" bezieht sich auf eine Änderung der Regeln, bei der die neue Version des Netzwerks nicht mehr mit der alten Version kompatibel ist, was zu zwei Zweigen der Blockchain führt (parallel und unbeeinflusst voneinander).
Soft Fork - Ein "Soft Fork" bezieht sich auf eine Änderung der Regeln, bei der Knoten, die die neuen Regeln implementieren, weiterhin mit Knoten interagieren können, die die Änderungen nicht übernommen haben. Die neue Version des Netzwerks bleibt mit der alten Version kompatibel.
Hard Fork |
Soft Fork |
z.B. 2016 DAO |
z.B. 2017 Segwit |
Die alte Version ist nicht mit dem neuen Netzwerk kompatibel. |
Das neue Netzwerk ist mit dem alten kompatibel. |
Unterschiedliche Protokolle |
Gleich |
Situationsanalyse
Wenn zum Beispiel die Hälfte der Netzwerknoten die Blockgröße von 2MB auf 3MB erweitern möchte, führt das Senden eines 3MB Blocks an Knoten der alten Version zu einer Ablehnung, da die Knoten der alten Version eine Regel haben, die 2MB als maximale Blockgröße festlegt. In diesem Szenario splittet sich das Netzwerkprotokoll in zwei, wobei jede mit unterschiedlichen Währungen arbeitet. Alle Kontostände werden von den ursprünglichen Aufzeichnungen in die neue Kette dupliziert. Benutzer mit 20BTC vor dem Fork werden ein Konto mit 20BTC und ein weiteres mit 20 neuen BTC in beiden Ketten haben.
Wenn beispielsweise die ursprüngliche Blockgröße 2MB beträgt und nun die Hälfte der Netzwerknoten eine neue Einschränkung von 1MB Blockgröße implementiert und größere Blöcke als ungültig betrachtet, können Knoten der alten Version weiterhin Blöcke empfangen oder senden. In diesem Fall kann das neue Netzwerk alle Knoten abdecken, ohne von Regelversionen eingeschränkt zu werden. Das Segregated Witness (SegWit) von Bitcoin ist ein Beispiel für einen Soft Fork. Dieser Fork führte clever ein neues Format für Blöcke und Transaktionen ein. Knoten, die nicht aktualisiert wurden, können weiterhin Blockinformationen empfangen, nehmen aber nicht an der Validierung neuer Transaktionen teil.