Fork (Blockchain): Unterschied zwischen den Versionen

Aus VGKB
Zur Navigation springen Zur Suche springen
K (added Category:Blockchain using HotCat)
(Hard Fork)
 
Zeile 1: Zeile 1:
 +
[[File:Open Iconic fork.svg|100px|right]]
 
Ein '''Fork''' bezeichnet die Folgen innerhalb der [[Blockchain]] nach Änderung des [[Konsensalgorithmus]]. Dies geschieht in aller Regel nach Updates.
 
Ein '''Fork''' bezeichnet die Folgen innerhalb der [[Blockchain]] nach Änderung des [[Konsensalgorithmus]]. Dies geschieht in aller Regel nach Updates.
  
 
Grundsätzlich können Forks bezüglich der Abwärtskompatibilität unterschieden werden. '''Soft Forks''' sind abwärtskompatibel, während '''Hard Forks''' ''nicht'' abwärtskompatibel sind.
 
Grundsätzlich können Forks bezüglich der Abwärtskompatibilität unterschieden werden. '''Soft Forks''' sind abwärtskompatibel, während '''Hard Forks''' ''nicht'' abwärtskompatibel sind.
 +
 +
== Hard Fork ==
 +
Oft sind Hard Fork eine Folge von bestimmten Upgrades. Dies ist immer dann der Fall, wenn die Änderungen nicht abwärtskompatibel sind, also mit dem Upgrade Abläufe und Verhaltensweisen erlaubt werden, die vorher verboten waren. Wird ein Upgrade nicht von ausreichend Nutzern adaptiert, kann sich die Blockkette teilen. Dies zeigt das folgende Schema:
 +
 +
[[Datei:Blockchain Hard Fork.png|thumb|450px|Schema eines Hard Forks]]
 +
 +
Schauen wir uns das in der Grafik einmal an und fangen oberhalb der gestrichelten Linie an, wo Version 1 läuft: Blöcke werden wie üblich der Blockchain angefügt, indem sie auf einen Parent bzw. Elternteil verweisen. Somit lässt sich rekursiv der Weg zum Urblock, dem [[Genesis-Block]], zurückverfolgen. Das [[Proof of Work]]-Verfahren sagt weiterhin aus, dass Grundlage für neue Transaktionen die Kette an Blöcken ist („best block chain“), für die der meiste Aufwand in Form von Mining nötig war. So erklären sich auch die doppelten Blöcke mit der gleichen Nummer: sie gelten als [[Stale Block|„abgelaufen“ (stale)]], sofern eine andere Kette mehr Nachfolger hat. Soweit so gut – schauen wir uns nun den Bereich unterhalb der gestrichelten Linie an: hier wird Version 2 betrieben. Anfangs bei Block 99 verhält sich das System genau wie Version 1. Es ist allerdings einprogrammiert, dass ab Block 100 die Änderungen scharf gestellt werden. Das hat zur Folge, dass die dann weitergeführte Blockchain nicht mehr mit Version 1 kompatibel ist.
 +
 +
Problematisch ist dies, weil somit double spending, das mehrfache Ausgeben des gleichen Coins, möglich wird: wer bis zum Block 99 einen Coin in seiner Wallet hatte, kann ihn nun auf beiden Chains zwei Mal ausgeben, da die Ketten nicht mehr miteinander kommunizieren können. Werden Coins aus der Version 1-Blockchain (ab Block 100) von einer Exchange sogar noch zum Handel angeboten, ist das Chaos perfekt: dann haben wir einen weiteren Altcoin (alternative coin) mit eigenem Kurs, etc. Da alte Vermögen (die von Block ≤ 99) ebenfalls gültig sind, haben wir quasi neue Token geschaffen – der Rest ist Auslegungssache vom Finanzamt.
 +
 +
Um nicht durch die potentielle Fragmentierung Schaden zu erleiden, sind die Entwickler von solchen Systemen meist bemüht, eine hohe Adaption von Upgrades zu erreichen. Dazu aber später noch mehr.
  
 
[[Kategorie:Blockchain]]
 
[[Kategorie:Blockchain]]

Aktuelle Version vom 11. Dezember 2019, 20:17 Uhr

Open Iconic fork.svg

Ein Fork bezeichnet die Folgen innerhalb der Blockchain nach Änderung des Konsensalgorithmus. Dies geschieht in aller Regel nach Updates.

Grundsätzlich können Forks bezüglich der Abwärtskompatibilität unterschieden werden. Soft Forks sind abwärtskompatibel, während Hard Forks nicht abwärtskompatibel sind.

Hard Fork

Oft sind Hard Fork eine Folge von bestimmten Upgrades. Dies ist immer dann der Fall, wenn die Änderungen nicht abwärtskompatibel sind, also mit dem Upgrade Abläufe und Verhaltensweisen erlaubt werden, die vorher verboten waren. Wird ein Upgrade nicht von ausreichend Nutzern adaptiert, kann sich die Blockkette teilen. Dies zeigt das folgende Schema:

Schema eines Hard Forks

Schauen wir uns das in der Grafik einmal an und fangen oberhalb der gestrichelten Linie an, wo Version 1 läuft: Blöcke werden wie üblich der Blockchain angefügt, indem sie auf einen Parent bzw. Elternteil verweisen. Somit lässt sich rekursiv der Weg zum Urblock, dem Genesis-Block, zurückverfolgen. Das Proof of Work-Verfahren sagt weiterhin aus, dass Grundlage für neue Transaktionen die Kette an Blöcken ist („best block chain“), für die der meiste Aufwand in Form von Mining nötig war. So erklären sich auch die doppelten Blöcke mit der gleichen Nummer: sie gelten als „abgelaufen“ (stale), sofern eine andere Kette mehr Nachfolger hat. Soweit so gut – schauen wir uns nun den Bereich unterhalb der gestrichelten Linie an: hier wird Version 2 betrieben. Anfangs bei Block 99 verhält sich das System genau wie Version 1. Es ist allerdings einprogrammiert, dass ab Block 100 die Änderungen scharf gestellt werden. Das hat zur Folge, dass die dann weitergeführte Blockchain nicht mehr mit Version 1 kompatibel ist.

Problematisch ist dies, weil somit double spending, das mehrfache Ausgeben des gleichen Coins, möglich wird: wer bis zum Block 99 einen Coin in seiner Wallet hatte, kann ihn nun auf beiden Chains zwei Mal ausgeben, da die Ketten nicht mehr miteinander kommunizieren können. Werden Coins aus der Version 1-Blockchain (ab Block 100) von einer Exchange sogar noch zum Handel angeboten, ist das Chaos perfekt: dann haben wir einen weiteren Altcoin (alternative coin) mit eigenem Kurs, etc. Da alte Vermögen (die von Block ≤ 99) ebenfalls gültig sind, haben wir quasi neue Token geschaffen – der Rest ist Auslegungssache vom Finanzamt.

Um nicht durch die potentielle Fragmentierung Schaden zu erleiden, sind die Entwickler von solchen Systemen meist bemüht, eine hohe Adaption von Upgrades zu erreichen. Dazu aber später noch mehr.