Was ist ein Hardfork - Teil 1

avatar

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.



0
0
0.000
13 comments
avatar

Du hast ein Upvote von mir bekommen, diese soll die Deutsche Community unterstützen. Wenn du mich unterstützten möchtest, dann sende mir eine Delegation. Egal wie klein die Unterstützung ist, Du hilfst damit der Community. DANKE!

0
0
0.000
avatar

spannend. Gibt viel zu wenig Erläuterung was so under the hood passiert. Danke dafür

0
0
0.000
avatar

Ist leider eine Menge Arbeit das alles aufzuarbeiten und die Erklärungen gibt es oft, nur noch öfter sind diese leider veraltet.

0
0
0.000
avatar

Sehr gut und einfach beschrieben!

LG Michael

!invest_vote
!jeenger

0
0
0.000
avatar

Sehr gut - Serien die ein Thema vertiefen - so was mag ich. Bleib dran!

0
0
0.000
avatar

Werde weiter machen, weiß nur noch nicht wann der nächste Teil kommt.

0
0
0.000
avatar

Sehr interessant, ich bin gespannt auf die kommenden Teile! Ich stolpere in diesem Kontext höufig über Begriffe, die immer wieder fallen aber bei denen ich nicht genau weiß was dahinter steckt. Danke für die Erläuterungen :)

0
0
0.000
avatar

Wenn dir solche Begriffe auffallen, mach mich bitte darauf aufmerksam. Für mich sind das alles normale Begriffe und Mechanismen, da muss man teilweise von außen darauf aufmerksam gemacht werden, dass es nicht für jeden so ist.

0
0
0.000
avatar

Gerne! Ich war eine ganze Weile raus, aber ich bin sicher mir werden wieder einige Begriffe auffallen :)

0
0
0.000
avatar

Congratulations @satren! You have completed the following achievement on the Hive blockchain and have been rewarded with new badge(s) :

You are a buzzy bee and published a post every day of the week

You can view your badges on your board And compare to others on the Ranking
If you no longer want to receive notifications, reply to this comment with the word STOP

0
0
0.000