Posts

Was ist ein Hardfork - Teil 1

avatar of @satren
25
@satren
·
0 views
·
3 min read

Ich habe euch gefragt, was ihr schon immer über die Blockchain wissen wolltet. Dies ist der erste Beitrag aus dieser Reihe, um diese Fragen zu beantworten.

Die Blockchain

Eine Blockchain ist eine Reihe von Blöcken mit Informationen, die aufeinander aufbauen und in festgelegten Abständen unter bestimmten Bedingungen erstellt werden. Bei Bitcoin ist dies alle 10 Minuten, wenn eine bestimmte mathematische Aufgabe gelöst wurde. Bei Hive geschieht dies alle drei Sekunden, auf Grundlage der Witness Votes.

Die Software

Die erzeuger solcher Blöcke nennt man je nach Blockchain Witnesse oder Miner. Ab hier reden wir nur noch über Hive, weshalb ich nur noch von Witnessen reden werde.

Jeder dieser Witnesse betreibt einen Server mit einer Software, welche die Spielregeln der Blockchain und die in ihr enthaltenen Informationen bewahrt und verarbeitet. Diese Software kann verändert werden, wobei man zwischen einem Softfork und einem Hardfork unterscheidet. Der Softfork kann installiert und ohne Probleme wieder entfernt werden. Der Hardfork muss installiert werden und kann nur durch einen neuen Hardfork entfernt werden.

Softfork

Ein Softfork ist eine Erweiterung der Software, die zukünftige Transaktionen ablehnt. Dies geschieht meistens als Bugfix.

Hierbei wird eine zweite Schicht an Code über den Code des letzten Hardforks gelegt. Diese überprüft neue Transaktionen nach bestimmten Inhalten und filtert diese, bevor sie an die Blockchain übergeben werden.

Dies geschieht z.b. wenn ein Vote mit einer bestimmten Anzahl an RShares erzeugt wird, da diese durch die neue Rewardkurve einen Integeroverflow erzeugen. Hierdurch entsteht eine so kleine negative Zahl, das sie den Darstellungsbereich verlässt und einen hohen positiven Betrag erzeugt.

Ein anderes Beispiel ist das einfrieren von Stakes. Hierbei wird eine Transaktion getätigt, die Node überprüft mit dem Softfork ob der Stake des Nutzers gesperrt ist und verarbeitet die Transaktion erst, wenn dieser nicht darauf steht.

Eine wichtige Sache ist, ein Softfork muss nicht von jedem installiert werden. Es reicht wenn die Mehrheit der Witnesse den Softfork betreiben. Witnesse die den Softfork nicht unterstützen, erleiden hierdurch keinen Nachteil, seitens des Protokolls.

Hardfork

Ein Hardfork ist eine Anpassung des Codes der Blockchain, der die Regeln verändert. Dies kann z.b. eine neue Rewardverteilung, eine Zwangstransaktion oder ähnliches sein.

Bei einem Hardfork müssen alle Node Betreiber den Hardfork ausführen, um weiterhin im System zu bleiben. Dadurch entstehen zwei unterschiedliche Blockchains. Die eine läuft auf Version x.1, die andere auf Version x.2. Da bei der neueren Version andere Regeln bestehen, werden Nodes auf der alten Version diese neuen Blöcke ablehnen, was andersherum ebenfalls möglich ist.

Es gibt bei Hardforks zwei Optionen, die eine Option ist ein Update der Blockchain, getragen von der Mehrheit der Nutzer. Die andere ist eine Abspaltung eines Teils der Nutzer auf eine neue Blockchain. Bei der letzten Option sind die Blockchains bis zum Block vor dem Hardfork identisch. Alle danach folgenden Blöcke nicht. So fand man nach dem Hive-Fork in einem Block der Steem Blockchain 10-50 Transaktionen, auf Hive 0-10. Die Blöcke hatten jedoch die gleiche Blocknummer.

Da anders als ein Softfork, ein Hardfork essentiell in die Funktionsweise einer Blockchain eingreift, kann dieser nicht jederzeit durchgeführt werden. Für einen Hardfork wird ein bestimmter Termin festgelegt. Wenn zu diesem Zeitpunkt eine festgelegte Mehrheit der Nodes die neue Version des Hardforks unterstützen, wird dieser angenommen. In diesem Fall wird der Hardfork zur neuen Version der Blockchain und der alte Hardfork wird zu einer neuen Blockchain. Wird dieser nicht unterstützt, bleibt der alte Hardfork die Chain.

Bei diesem Punkt spielen die Börsen auch mit, nur wenn diese einen Hardfork unterstützen, kann dieser Erfolg haben, ansonsten fehlt die Möglichkeit Coins dieses Hardforks zu handeln. Zum einen müssen die Betreiber der Nodes ihre Kosten decken, zum anderen wollen Investoren Geld verdienen.


Zusammengefasst lässt sich sagen, während bei einem Softfork nur die Node Betreiber einen direkten Einfluss darauf haben was passiert und im Fall einer Uneinigkeit, mehrere Softfork Versionen existieren, gibt es bei einem Hardfork diese Frage nicht.