Wie SHA256 und Mining die Datenintelligenz des Bitcoin-Netzwerks PlatoBlockchain schützen. Vertikale Suche. Ai.

Wie SHA256 und Mining das Bitcoin-Netzwerk schützen

Wie wird Bitcoin durch Energie verteidigt? Und was ist eine Nonce? Diese Fragen und mehr werden hier beantwortet!

Wie Bergbau funktioniert, ist faszinierend. Wenn ich es Leuten erkläre, genieße ich es, ihr Gesicht zu sehen, sobald sie umgehauen sind. Ich werde es hier erklären, aber wissen Sie einfach, ich stelle mir all Ihre Gesichter vor, während Ihre Gedanken wehen!

Ich muss mit Hash-Funktionen beginnen. Ohne Hash-Funktionen wäre Bitcoin nicht möglich. Lassen Sie mich zuerst erklären, was sie sind, nicht nur, damit Sie auf Partys cool klingen, sondern auch, weil es grundlegend ist, um zu verstehen, wie Bitcoin unter der Haube funktioniert – insbesondere Mining, aber auch Transaktionen.

Sie müssen nicht verstehen, wie Bitcoin funktioniert, um davon zu profitieren, genauso wie Sie nicht verstehen müssen, wie TCP/IP funktioniert, um das Internet zu nutzen. Aber machen Sie weiter, denn es ist ziemlich interessant und ich werde es leicht verständlich machen, versprochen.

Hash-Funktionen

Beginnen wir mit einem Schaltplan, den ich im Folgenden erläutern werde…

Wie SHA256 und Mining die Datenintelligenz des Bitcoin-Netzwerks PlatoBlockchain schützen. Vertikale Suche. Ai.
(Grafik/@jirols_btc)

Links ist der Eingang, in der Mitte die Funktion und rechts der Ausgang. Die Eingabe kann aus beliebigen Daten bestehen, solange sie digital sind. Es kann jede Größe haben, vorausgesetzt, Ihr Computer kann damit umgehen. Die Daten werden an die SHA256-Funktion übergeben. Die Funktion nimmt die Daten und berechnet eine zufällig aussehende Zahl, aber mit speziellen Eigenschaften (später besprochen).

Der erste Secure Hash Algorithm (SHA) war ursprünglich von der NSA entwickelt und es gibt jetzt viele verschiedene Versionen (Bitcoin verwendet SHA256). Es ist eine Reihe von Anweisungen, wie man die Daten auf sehr komplizierte, aber spezifische Weise durcheinander bringt. Die Anleitung ist kein Geheimnis und es geht sogar von Hand, ist aber sehr mühsam.

Bei SHA256 ist die Ausgabe eine 256-Bit-Zahl (kein Zufall).

Eine 256-Bit-Zahl bedeutet eine 256-stellige Binärzahl. Binär bedeutet, dass der Wert mit zwei Symbolen dargestellt wird, entweder 0 oder 1. Binäre Zahlen können in jedes andere Format konvertiert werden, zum Beispiel Dezimalzahlen, mit denen wir vertraut sind.

Obwohl die Funktion eine 256-stellige Binärzahl zurückgibt, wird der Wert normalerweise im 64-stelligen Hexadezimalformat ausgedrückt.

Hexadezimal bedeutet, dass wir anstelle von 10 möglichen Symbolen, wie wir es von Dezimalzahlen gewohnt sind (0 bis 9), 16 Symbole haben (die Zehn, an die wir gewöhnt sind, 0-9, plus die Buchstaben a, b, c, d, e, und f; die die Werte 11 bis 15 haben). Um beispielsweise den Dezimalwert 15 hexadezimal darzustellen, schreiben wir einfach „f“ und es ist derselbe Wert. Es gibt viele Informationen online mit einer schnellen Google-Suche, wenn Sie mehr Ausarbeitung benötigen.

Um SHA256 in Aktion zu demonstrieren, kann ich die Nummer 1 nehmen und sie durch ein laufen lassen Online-Hash-Rechner, und bekam diese Ausgabe (in Hexadezimal):

Wie SHA256 und Mining die Datenintelligenz des Bitcoin-Netzwerks PlatoBlockchain schützen. Vertikale Suche. Ai.

Die obere Box ist die Eingabe, die untere Box ist die resultierende Ausgabe.

Beachten Sie, dass alle Computer auf der Welt dieselbe Ausgabe erzeugen, vorausgesetzt, die Eingabe ist dieselbe und die SHA256-Funktion wird verwendet.

Die Ausgabe der Hexadezimalzahl, wenn sie in eine Dezimalzahl umgewandelt wird, lautet (beachten Sie, dass zum Schreiben mehr Ziffern erforderlich sind):

48,635,463,943,209,834,798,109,814,161,294,753,926,839,975,257,569,795,305,637,098,542,720,658,922,315

Und konvertiert in binär ist es:

11010111000011010110010011100111111111100110100111111001110000110011101011010111000000001001110111111110101101000111111010101110100011110101101101001001110101010100010001011110001110101001001110000000001111001010010110111011011011110000111010110110100101111010111001101011100110101110011010111001101011100110101110011010111001101011100111

Nur aus Interesse, hier ist der gleiche Wert drin Basis 64.

1w1k5/5p+cM61wCd/rR+ro9bSdVEXjqTgDylu28OtpY=

Beachten Sie, dass der kleinstmögliche Wert, den SHA256 zurückgeben könnte, Null ist, aber LENGTH immer noch 256 Bit beträgt. So wird Null dargestellt:

0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

Und der größtmögliche Wert ist:

1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111

Dezimal ausgedrückt heißt das:

115,792,089,237,316,195,423,570,985,008,687,907,853,269,984,665,640,564,039,457,584,007,913,129,639,935

In hexadezimaler Form lautet es:

FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF

Beachten Sie, dass es genau 64 F gibt.

Null in Hexadezimal kann einfach als eine einzige Null geschrieben werden, aber für die Hash-Ausgabe sind es 64 davon, um die Anforderung einer Ausgabe mit fester Größe einzuhalten:

0000000000000000000000000000000000000000000000000000000000000000

Hier ist eine Zusammenfassung einiger Fakten über die Hash-Funktion, die es zu beachten gilt:

  • Die Eingabe kann nicht aus der Ausgabe bestimmt werden
  • Die Eingabe kann beliebig lang sein
  • Die Ausgabe ist immer gleich lang
  • Die Ausgabe wird immer identisch wiedergegeben, wenn Sie die gleiche Eingabe machen.
  • Jede noch so kleine Änderung an der Eingabe führt zu einer unvorhersehbaren und völlig anderen Ausgabe
  • Die Ausgabe ist scheinbar zufällig, aber tatsächlich deterministisch (d. h. sie ist berechnet und reproduzierbar).
  • Die Ausgabe kann nicht vorhergesagt werden. Es kann nur berechnet werden und dies erfordert einen messbaren Aufwand an Computerarbeit (und Stunden mit Bleistift und Papier! Tun Sie es nicht.)

Nachdem Sie nun das Grundkonzept eines Hash verstanden haben, können Sie die Erklärung verstehen, wie Bitcoin-Mining funktioniert.

Aber bevor Sie fortfahren, empfehle ich Ihnen, zu einem Online-Hash-Rechner zu gehen und ein wenig damit zu spielen und selbst zu testen, was ich über Hash-Funktionen gesagt habe. Ich mag diesen.

Bergbau

Ich werde damit beginnen, ein Arbeitskonzept zu demonstrieren, aus dem der „Proof-of-Work“ in Bitcoin stammt.

Gehen Sie zum Online-Hash-Rechner und geben Sie „Ich erstelle 50 Bitcoins und zahle mir diesen Betrag“ ein.

Geben Sie es genau ein, beachten Sie die Groß- und Kleinschreibung, einschließlich des Punktes. Sie sollten diese Ausgabe erhalten:

Wie SHA256 und Mining die Datenintelligenz des Bitcoin-Netzwerks PlatoBlockchain schützen. Vertikale Suche. Ai.

Lassen Sie uns nun eine Regel erstellen, die besagt, dass der Hash mit einer Null beginnen muss, damit diese Zahlungsnachricht gültig ist. Dazu müssen wir die Eingabe irgendwie ändern. Aber wie Sie gelernt haben, ist es nicht vorhersehbar, wie die Ausgabe für eine bestimmte Eingabe aussehen würde. Welche Modifikation können wir vornehmen, um sicherzustellen, dass ein Hash mit Null beginnt?

Wir müssen Daten mit Trial-and-Error hinzufügen. Wir wollen aber auch die Bedeutung der Eingabenachricht nicht verändern. Lassen Sie uns also ein Feld (einen zugewiesenen Abschnitt) namens „Nonce“ erstellen, das einen unsinnigen Wert enthält.

Das Wort „Nonce“ soll von „Nummer nur einmal verwendet“ abgeleitet sein, aber ich sehe es nicht.

Beachten Sie unten, wie das einfache Hinzufügen von „Nonce:“ als zusätzliche Feldüberschrift die Hash-Ausgabe ändert.

Wie SHA256 und Mining die Datenintelligenz des Bitcoin-Netzwerks PlatoBlockchain schützen. Vertikale Suche. Ai.

Die Ausgabe beginnt immer noch nicht mit einer „0“, also fügen wir etwas Unsinn hinzu (ich habe ein bedeutungsloses „x“ hinzugefügt):

Wie SHA256 und Mining die Datenintelligenz des Bitcoin-Netzwerks PlatoBlockchain schützen. Vertikale Suche. Ai.

Es beginnt immer noch nicht mit einer Null. Ich habe einige weitere Zeichen ausprobiert, bis der Hash mit einer Null begann:

Wie SHA256 und Mining die Datenintelligenz des Bitcoin-Netzwerks PlatoBlockchain schützen. Vertikale Suche. Ai.

Na, bitte. Nun, gemäß den willkürlichen Regeln, die ich für diese vorgetäuschte Version von Bitcoin festgelegt habe, ist der Text im Eingabefenster ein gültiger Block mit einer einzigen Transaktion, die mir 50 Bitcoin zahlt.

Beachten Sie, dass Bitcoin-Blöcke im Wesentlichen Seiten eines Ledgers sind. Jeder Block ist nummeriert und erstellt neue Bitcoins, zusammen mit einer Auflistung der Transaktionen zwischen Benutzern. In diesem Rekord lebt Bitcoin.

Jetzt eine neue Regel. Für den nächsten Block muss der Hash des vorherigen Blocks enthalten sein. Ich werde ein wenig Komplexität hinzufügen und ein paar weitere Felder hinzufügen, um mich dem anzunähern, was ein echter Bitcoin-Block hat.

Wie SHA256 und Mining die Datenintelligenz des Bitcoin-Netzwerks PlatoBlockchain schützen. Vertikale Suche. Ai.

Der Hash beginnt mit einem „f“ und nicht mit „0“, also muss ich einige Werte im Nonce-Feld ausprobieren:

Wie SHA256 und Mining die Datenintelligenz des Bitcoin-Netzwerks PlatoBlockchain schützen. Vertikale Suche. Ai.

Diesmal hatte ich mehr Glück und fand nach nur vier Versuchen eine passende Nonce. Denken Sie daran, dass für den ersten Block 22 Versuche benötigt wurden. Hier gibt es eine gewisse Zufälligkeit, aber im Allgemeinen ist es nicht allzu schwierig, einen gültigen Hash zu finden, wenn alles, was wir zu bekommen versuchen, eine Null ist. Es gibt 16 mögliche Werte für die erste Hash-Ziffer, also habe ich eine Chance von 1 zu 16, dass jede Änderung, die ich am Eingabefeld vornehme, dazu führt, dass die erste Hash-Ziffer „0“ ist.

Beachten Sie, dass die Felder von Bitcoin so aussehen, aber es gibt weitere Details, die ich nicht hinzugefügt habe. Dies soll nur einen Punkt veranschaulichen, nicht unbedingt genau beschreiben, wie ein Bitcoin-Block aussieht.

Ich werde dem nächsten Block ein Zeitfeld hinzufügen, da ich das benötige, um die „Schwierigkeitsanpassung“ als nächstes zu erklären:

Wie SHA256 und Mining die Datenintelligenz des Bitcoin-Netzwerks PlatoBlockchain schützen. Vertikale Suche. Ai.

Oben ist Block Nummer drei. Es enthält den Hash des vorherigen Blocks und jetzt habe ich auch begonnen, die Zeit einzubeziehen. Die Nonce, die ich gefunden habe, ließ den Hash erfolgreich mit einer Null beginnen (ich habe einfach eine „1“ eingegeben, bis das Hash-Ziel erreicht war).

Hier ist jetzt genug, damit ich anfangen kann, ein paar interessante Konzepte über die Bitcoin-Blockchain und das Mining zu erklären.

Einen Block gewinnen

Der Mining-Prozess ist wettbewerbsfähig. Wer zuerst einen gültigen Block produziert, zahlt sich selbst eine festgelegte Blockprämie aus. Ein Miner, der etwas später dieselbe Blocknummer produziert, bekommt nichts – dieser Block wird abgelehnt. Zu erklären, warum das so ist, wird jetzt zu viel Ablenkung verursachen, also erkläre ich es im Anhang.

Nachdem Block drei gefunden und an alle (alle Bitcoin-Knoten) gesendet wurde, hören alle Miner auf, an ihrer Version von Block drei zu arbeiten. Sie beginnen, auf diesem erfolgreichen Block drei aufzubauen (indem sie dessen Block-Hash in einen neuen Block ziehen) und beginnen damit, einen geeigneten Nonce für Block vier zu finden. Der Gewinner veröffentlicht das Ergebnis und dann beginnen alle mit der Arbeit an Block fünf usw.

Mit jedem Block werden neue Bitcoins erstellt, die zusammen das bisherige Gesamtangebot ausmachen. Wenn es viele Miner gibt, sollten wir statistisch erwarten, dass Blöcke schneller produziert werden und daher Bitcoin schneller erstellt wird. Probleme, oder?

Auf der Suche nach einem begrenzten Angebot an Bitcoin mit einer vorhersehbaren Ausgabe im Laufe der Zeit dachte Satoshi Nakamoto an dieses Problem und führte eine negative Rückkopplungsschleife ein, um die Blockproduktion im Durchschnitt in 10-Minuten-Intervallen zu halten. Wie? Sehen Sie, ob Ihnen ein Weg einfällt. Halten Sie einen Moment inne und überlegen Sie, ob Sie auf die gleiche geniale Lösung kommen können, und lesen Sie weiter, wenn Sie aufgeben.

NODES: Ich erwähne „gültige“ Blöcke. Na und? Wer prüft? Die Bitcoin-Knoten sind. Ein Bitcoin-Knoten behält bisher eine Kopie der Blockchain und befolgt eine Reihe von Regeln, um zu überprüfen, ob neue Blöcke innerhalb der Regeln liegen, und diejenigen abzulehnen, die dies nicht tun. Wo sind die Regeln? Im Code. Ein Computer, der den Bitcoin-Code herunterlädt, ist ein Knoten.

Die Schwierigkeitsanpassung

Die durchschnittliche Zeit zum Erstellen neuer Bitcoin-Blöcke wird von jedem Knoten alle 2016 Blöcke berechnet (aus diesem Grund wird das Zeitfeld benötigt). Dies ist Teil des Protokolls und der Regeln, denen die Knoten folgen. Eine Formel wird angewendet, um die Anzahl der Nullen anzupassen, mit der jeder Block-Hash beginnen muss, um gültig zu sein.

Genau genommen wird nicht die Anzahl der Nullen angepasst, sondern ein Zielwert, den der Hash unterschreiten muss, aber es ist einfacher zu erklären, an führende Nullen zu denken.

Wenn Blöcke zu schnell produziert werden, wird das Hash-Ziel nach vordefinierten Regeln angepasst, denen alle Knoten identisch folgen (es ist in ihrem Code).

Um es für mein Beispiel einfach zu halten, sagen wir, andere Leute konkurrieren mit mir, Blöcke passieren zu schnell, und jetzt braucht der vierte Block laut einer imaginären Rechnung zwei Nullen statt einer.

Ich werde ein bisschen länger brauchen, um zwei Nullen zu bekommen, aber wir stellen uns vor, dass es viele andere Leute gibt, die mit mir konkurrieren, sodass die Gesamtzeit, die jemand braucht, um einen Block zu finden, auf einem Ziel gehalten wird.

Hier ist der nächste Block:

Wie SHA256 und Mining die Datenintelligenz des Bitcoin-Netzwerks PlatoBlockchain schützen. Vertikale Suche. Ai.

Beachte die Zeit. Seit dem vorherigen Block sind mehr als 10 Minuten vergangen (ich habe mir gerade die Zeit genommen, um zu demonstrieren). Das 10-Minuten-Ziel ist probabilistisch; es ist nie genau bekannt, wann der nächste Block gefunden wird.

Ich habe eine Minute lang auf der Tastatur herumgespielt, bis zwei Nullen auftauchten. Das war exponentiell schwieriger, als eine einzelne Null zu finden. Die Chance, zwei Nullen hintereinander zu finden, liegt bei 1 zu 162, oder eine Chance von 1 zu 256.

Wenn sich mehr Menschen dem Schürfen und dem Wettbewerb um neue Bitcoins anschließen würden, wären schließlich drei Nullen erforderlich.

Ich habe gerade den letzten echten Bitcoin-Block nachgeschlagen, der den Hash des vorherigen Blocks enthält. Der Hash war:

000000000000000000084d31772619ee08e21b232f755a506bc5d09f3f1a43a1

Das sind 19 Nullen! Da ist 1 von 1619 Chance, bei jedem Versuch einen solchen Block zu finden. Bitcoin-Miner machen viele, viele Versuche pro Sekunde, gemeinsam auf der ganzen Welt.

Die Anzahl der Versuche pro Sekunde wird als „Hash-Rate“ bezeichnet. Derzeit liegt die geschätzte weltweite Hash-Rate bei knapp 200 Millionen Terahashes pro Sekunde (ein Terahash ist eine Billion Hashes). Bei so vielen Versuchen pro Sekunde wird etwa alle 19 Minuten ein Block mit einem Hash beginnend mit 10 Nullen gefunden.

In Zukunft, wenn mehr Bergleute hinzukommen, wird die Hash-Rate steigen, Blöcke werden schneller gefunden und die Schwierigkeit von Bitcoin wird sich anpassen, um 20 Nullen zu erfordern, was die Blockproduktion wieder auf etwa 10 Minuten drücken wird.

Die Halbierung

Als Bitcoin anfing, wurden mit jedem Block 50 Bitcoin produziert. Die Regeln der Bitcoin-Blockchain sehen vor, dass nach jeweils 210,000 Blöcken die Belohnung halbiert wird. Dieser Moment ist als „Halbierung“ bekannt und tritt etwa alle vier Jahre auf. Die Halbierung in Kombination mit der Schwierigkeitsanpassung, bei der Blöcke in 10-Minuten-Intervallen gehalten werden, bedeutet, dass die Blockbelohnung um das Jahr 2140 herum 0.00000001 oder 1 Satoshi, die kleinste Einheit eines Bitcoin, beträgt und nicht mehr halbiert werden kann. Das Mining wird nicht aufhören, aber die Blockbelohnung wird null sein. Ab diesem Moment werden keine neuen Bitcoins mehr geschaffen und die Anzahl der Bitcoins ist mathematisch berechenbar und liegt nahe genug bei 21 Millionen Coins. So ist das Gesamtangebot bekannt – es wird programmgesteuert festgelegt.

Selbst wenn die Blockbelohnung bei null liegt, werden die Miner immer noch einen Anreiz haben, weiter zu arbeiten, um Transaktionsgebühren zu verdienen.

Wie genau wird die Blockbelohnung halbiert? Es ist im Code enthalten, der von den Knoten gehalten wird. Sie wissen, dass sie jeden neuen Block nach 210,000 ablehnen müssen, wenn ein Miner sich selbst über 25 Bitcoin zahlt. Und dann alle Blöcke nach 420,000 abzulehnen, wo ein Miner sich selbst über 12.5 Bitcoin zahlt, und so weiter.

Transaktions Gebühren

Bisher habe ich nur imaginäre Blöcke mit einer einzigen Transaktion gezeigt – der Transaktion, bei der der Miner eine Belohnung erhält. Dies wird als „Coinbase-Transaktion“ bezeichnet.

Es ist nicht nach der Firma Conbase benannt, ich meine Coinbase. Das Unternehmen hat sich nach der Coinbase-Transaktion benannt, nicht umgekehrt. Lassen Sie sich nicht verwirren.

Neben der Coinbase-Transaktion gibt es Transaktionen, bei denen Menschen sich gegenseitig bezahlen. Hier ist ein imaginäres Beispiel:

Wie SHA256 und Mining die Datenintelligenz des Bitcoin-Netzwerks PlatoBlockchain schützen. Vertikale Suche. Ai.

Ich habe mich diesmal nicht darum gekümmert, einen echten Hash zu finden (es ist tatsächlich der echte Hash, der in Block 200,001 gemeldet wird). Die Nonce habe ich nur aus Spaß nachgeholt, aber beachte, dass dort eine Nachricht eingebettet werden kann.

Satoshis fügte bekanntlich die Worte „Chancellor on Brink of Second Bailout for Banks“ in den ersten Bitcoin-Block (The Genesis Block) ein, nach der Zeitungsschlagzeile des Tages.

Wie SHA256 und Mining die Datenintelligenz des Bitcoin-Netzwerks PlatoBlockchain schützen. Vertikale Suche. Ai.

Der Punkt hier ist, dass 132 Transaktionen enthalten sind (nicht alle gezeigt). Schauen Sie sich Transaktion Nr. 132 an – 2.3 Bitcoin von einer Adresse zahlen 2.1 Bitcoin an eine andere Adresse und auch an eine zweite Adresse den Betrag von 0.1 Bitcoin (ich habe Punkte verwendet, um die Länge der Adresse zu verkürzen).

Eine Quelle von 2.3 Bitcoin zahlt also insgesamt 2.2 Bitcoin (2.2 + 0.1 = 2.2). Fehlen 0.1 Bitcoin? Nein, die Differenz wird vom Bergmann beansprucht, wie ich erklären werde.

Der Miner darf sich 25 Bitcoin als Blockbelohnung auszahlen (weil 210,000 Blöcke vergangen sind, hat sich die Belohnung von 50 auf 25 halbiert). Aber wenn Sie schauen, ist die Coinbase-Transaktion 27.33880022. Die zusätzlichen 2.33880022 Bitcoin stammen von den anderen 132 Transaktionen im Block – die Eingaben werden alle etwas größer sein als die Summe der Ausgaben. Der Miner kann also diesen „aufgegebenen“ Bitcoin als Zahlung für sich selbst einfordern. Diese gelten als Transaktionsgebühren, die an den Miner gezahlt werden.

Der Blockplatz ist begrenzt. Als Bitcoin neu war, konnten Benutzer Transaktionen ohne Gebühr senden und die Miner nahmen die Transaktion in den Block auf. Aber jetzt gibt es mehr Benutzer und da es wettbewerbsfähig ist, in den nächsten Block zu gelangen, nehmen die Benutzer eine Gebühr in die Transaktion auf, um den Miner dazu zu verleiten, ihre Transaktion gegenüber anderen zu wählen.

Wenn also die Blockbelohnung stetig sinkt, sich alle vier Jahre halbiert und schließlich auf Null geht, werden die Bergleute immer noch auf diese Weise bezahlt.

Einige haben angedeutet, dass die Belohnung für die Miner eines Tages nicht ausreichen und zum Scheitern von Bitcoin führen wird. Diese Sorge wurde gründlich entlarvt und ich werde sie hier nicht wiederholen.

Kann ein Block umgeschrieben werden?

Dies ist äußerst unwahrscheinlich und es lohnt sich zu verstehen, warum. Sie werden dann verstehen, warum Bitcoin-Transaktionen unveränderlich (unveränderlich) sind.

Ich habe bereits erklärt, dass der Hash des vorherigen Blocks im aktuellen Block enthalten ist. Das bedeutet, dass jede Bearbeitung von Transaktionen in einem alten Block den Hash dieses bearbeiteten Blocks ändert. Aber dieser Hash wird im nächsten Block aufgezeichnet, was bedeutet, dass der nächste Block ebenfalls aktualisiert werden muss. Aber wenn Sie den in diesem nächsten Block aufgezeichneten Hash ändern, muss sich sein Hash ändern und so weiter.

Beachten Sie, dass jedes Mal, wenn ein Hash geändert wird, Sie all diese schönen Nullen verlieren und nur ein zufällig aussehender Hash übrig bleibt – und die ganze Arbeit erneut erledigen müssen, um die Nullen zurückzubekommen. Wenn Sie dies für den Block tun, den Sie zu bearbeiten versucht haben, müssen Sie die Arbeit für den nächsten Block wiederholen und den nächsten bis zum letzten Block. Sie können nicht einfach beim alten Block aufhören, denn die Regeln von Bitcoin sind so, dass die längste Kette von Blöcken der echte Bitcoin-Datensatz ist. Wenn Sie zurückgehen und einen Block vor 10 Blöcken bearbeiten, haben Sie nicht mehr die längste Kette. Sie müssen 10 weitere Blöcke hinzufügen und dann noch ein bisschen mehr, denn als Sie diese 10 Blöcke erstellten, wurde die echte Kette wahrscheinlich etwas länger. Sie müssen Rennen fahren, um die echte Kette zu überholen. Bei Erfolg wird die neue Version zur echten Version.

Die Wiederholung der kollektiven Hashing-Bemühungen der gesamten Welt vom bearbeiteten Block bis zum neuesten Block ist das Hindernis für die Bearbeitung von Bitcoin. Die Energie wurde aufgewendet, um diese Hashes mit all diesen unwahrscheinlichen Nullen zu erstellen, und dieser Energieaufwand muss wiederholt werden, um Bitcoin zu bearbeiten. Aus diesem Grund wird die zum Schürfen von Bitcoin verwendete Energie nicht „verschwendet“; Es ist dazu da, Bitcoin vor Änderungen zu schützen und das Ledger unveränderlich zu machen, ohne einer zentralen Autorität vertrauen zu müssen.

Was passiert, wenn zwei Miner gleichzeitig einen Block finden?

Das kommt tatsächlich hin und wieder vor und regelt sich immer wie folgt:

Jeder Knoten empfängt zuerst einen der neuen fast gleichzeitigen Blöcke und akzeptiert diesen und lehnt den einen Moment später eintreffenden ab. Dies führt zu einer Aufspaltung des Netzwerks, die jedoch nur vorübergehend ist.

Nennen wir zur Veranschaulichung einen der Blöcke blau und den anderen rot (sie haben keine Farbe, ertragen Sie es einfach).

Die Bergleute arbeiten dann am nächsten Block, aber es wird eine Aufteilung geben, von welchem ​​​​Block aus sie die Kette verlängern.

Nehmen wir an, der gewinnende Miner hat einen Block mit der blauen Kette gefunden. Sie senden den neuen Block an alle Knoten und die längste Kette wird sichtbar. Die Knoten, die die rote Kette akzeptiert hatten, werden sie dann fallen lassen und die blaue Kette übernehmen.

Alle Bergleute, die an der roten Kette gearbeitet haben, werden aufhören und werden nun an der längeren Kette arbeiten, die die blaue Kette ist. Die rote Kette ist tot.

Anhang

Warum die Sperre eines zweitplatzierten Bergmanns ungültig ist

Angenommen, Block 700,000 wurde gerade von MINER-A abgebaut. Dreißig Sekunden später erstellte MINER-B auch eine andere Version von Block 700,000. Wenn MINER-B diese Alternative sendet, wird jeder Knoten sie ablehnen, weil sie den Block von MINER-A bereits gesehen und akzeptiert haben. Nehmen wir außerdem an, dass MINER-C in diesen 30 Sekunden Block 700,001 gefunden hat. Da der konkurrierende 700,000ste Block von MINER-B die aktuelle Kette (bis zu 700,001) nicht verlängert, wird er auch aus diesem Grund abgelehnt.

Noch interessanter ist, dass, wenn MINER-B an Block 700,001 statt an einer konkurrierenden Version von 700,000 gearbeitet hätte, sie genauso viele Chancen gehabt hätten, einen gültigen Block 700,001 abzubauen, wie sie schließlich einen alternativen Block 700,000 finden müssten. Sobald also ein Miner einen neuen Block sieht, sollte er sich auf den nächsten Block konzentrieren.

Wenn jedoch Miner-B Block 700,000 eine Sekunde nach MINER-A gefunden hat, dann ist es möglich, dass einige Knoten zuerst den Block von MINER-A sehen, während andere zuerst den Block von MINER-B sehen, abhängig von geografischen Standorten und Internetgeschwindigkeiten. In diesem Fall gibt es einen temporären Fork, und einige Miner werden daran arbeiten, eine Version zu erweitern, während andere Miner daran arbeiten, die andere zu erweitern. Wie zuvor unter Verwendung der Deskriptoren „blaue Kette“ und „rote Kette“ erläutert, wird sich schließlich eine der Versionen vor der anderen weiter ausdehnen und einstimmig zur gültigen Version werden.

Dies ist ein Gastbeitrag von Arman The Parman. Die geäußerten Meinungen sind ausschließlich ihre eigenen und spiegeln nicht unbedingt die von BTC Inc oder wider Bitcoin Magazin.

Zeitstempel:

Mehr von Bitcoin Magazin