Author: Arman The Parman | Original Date: 24/02/22| Translated by: Leon A. Wankum | How SHA256 and mining protect the Bitcoin network
Wie Mining funktioniert, ist faszinierend. Wenn ich es Leuten erkläre, genieße ich es, ihr Gesicht zu sehen, sobald sie es begriffen haben. Ich werde es hier erklären, aber wissen Sie einfach, ich stelle mir all Ihre Gesichter vor, während Sie es Gedanken verstehen!
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 eine Grundlage ist, um zu verstehen, wie Bitcoin 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 lesen Sie weiter, denn es ist ziemlich interessant, und ich werde es leicht verständlich machen, versprochen.
HASH-FUNKTIONEN
Beginnen wir mit einem Diagramm, dass ich im Folgenden erläutern werde ...
(Bild von @jirols_btc)
Links ist der INPUT, in der Mitte die FUNCTION und rechts der OUTPUT. Die Eingabe kann aus beliebigen Daten bestehen, solange sie digital sind. Die Eingabe kann jede Größe haben, vorausgesetzt, Ihr Computer kann damit umgehen. Die Daten werden an das SHA256-Programm übergeben. Das Programm nimmt die Daten und berechnet daraus eine zufällig aussehende Zahl, aber mit speziellen Eigenschaften (später gehe ich näger darauf ein).
Der erste SHA (Secure Hash Algorithm) wurde von der NSA (Nationale Sicherheitsbehörde der USA) entwickelt. Heute gibt es 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, 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 Info benötigen.
Um SHA256 in Aktion zu demonstrieren, kann ich die Zahl 1 nehmen und sie durch einen Online-Hash-Rechner laufen lassen und diese Ausgabe (in Hexadezimal) erhalten:
Das Eingabefenster ist das obere, das Ausgabefenster das untere.
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 in Basis 64 (ich lasse Sie googlen, was Basis 64 bedeutet):
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 im Hexadezimalformat kann einfach als eine einzelne Null geschrieben werden, aber für die Hash-Ausgabe sind es 64 davon, um die Anforderung einer Ausgabe mit fester Größe einzuhalten:
000000000000000000000000000000000000000000000000000000000000
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 wird berechnet)
- Die Ausgabe kann nicht vorhergesagt werden. Es kann nur berechnet werden, und dies erfordert einen messbaren Aufwand an Computerarbeit (und Stunden mit Stift und Papier! Nicht zu empfehlen.)
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.
Mining
Ich werde damit beginnen, ein Arbeitskonzept zu demonstrieren, aus dem der Arbeitsnachweis („Proof-of-Work“) in Bitcoin stammt.
Gehen Sie zum Online-Hash-Rechner und geben Sie „Ich erstelle 50 bitcoin 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:
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, dass einen unsinnigen Wert enthält.
Das Wort „Nonce“ soll angeblich von „Nummer nur einmal verwendet“ abgeleitet sein - da bin ich mir aber nicht so sicher.
Beachten Sie unten, wie das Hinzufügen dieser zusätzlichen Feldüberschrift „Nonce:“ die Hash-Ausgabe ändert.
Die Ausgabe beginnt immer noch nicht mit einer '0', also fügen wir etwas Unsinn hinzu (ich habe ein bedeutungsloses 'x' hinzugefügt):
Es beginnt immer noch nicht mit einer Null. Ich habe einige weitere Zeichen ausprobiert, bis der Hash mit einer Null begann:
Na, bitte. Nun, gemäß den willkürlichen Regeln, die ich festgelegt habe, ist der Text im Eingabefenster ein gültiger imaginärer Bitcoin-Block mit einer einzigen Transaktion, die mir 50 bitcoin zahlt.
Beachten Sie, dass Bitcoin-Blöcke wesentliche „Seiten“ eines Ledgers sind. Jeder Block ist nummeriert und erstellt neue bitcoin, zusammen mit Transaktionen zwischen Benutzern. Dies ist die Datenbank, in der bitcoin existieren.
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 der echte Bitcoin-Block hat …
Der Hash beginnt mit einem 'f', nicht '0', also muss ich einige Werte im Nonce-Feld ausprobieren:
Diesmal hatte ich mehr Glück und fand nach nur 4 verschiedenen Versuchen eine Nonce. Für den ersten Block habe ich nach 22 Versuchen einen gefunden – 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 versuchen zu 'bekommen', 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. Ich möchte nur 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“ (difficulty adjustment) als nächstes zu erklären:
Oben ist Block Nummer 3. Er 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 so lange eine '1' eingegeben, bis das Hash-Ziel erreicht wurde).
Sie haben jetzt genug Informationen, 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 ein Wettbewerb. Wer einen gültigen Block produziert, darf sich mit diesem Blocks selbst bezahlen, da der Block jetzt gültig ist. Ein Miner, der die gleiche Blocknummer etwas später produziert (Runner Up), bekommt nichts – dieser Block wird abgelehnt. Zu erklären warum, würde jetzt zu viel Ablenkung verursacht, dass erkläre ich im Anhang.
Nachdem Block 3 gefunden und an alle (alle Bitcoin-Nodes) gesendet wurde, hören alle Miner auf, an Block 3 zu arbeiten, und beginnen mit der Arbeit an Block 4. Der Gewinner veröffentlicht das Ergebnis, und dann beginnen alle mit der Arbeit an Block 5 usw.
Mit jedem Block entstehen neue bitcoin, die zusammen mit den vorherigen den Gesamtvorrat ausmachen. Wenn es viele Miner gibt, werden Blöcke statistisch gesehen schneller produziert und bitcoin werden schneller erstellt. Das wäre ein Problem, 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?Denken Sie einen Moment nach, 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.
NOTIZ: Ich erwähne „gültige“ Blöcke. Na und? Wer überprüft das? Die Bitcoin-Nodes! Eine Bitcoin-Node speichert eine Kopie der Blockchain ab 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 eine Node.
Die Schwierigkeitsanpassung (difficulty adjustment):
Die durchschnittliche Zeit neuer Bitcoin-Blöcke wird von jeder Node alle 2016 Blöcke berechnet (deshalb wird das Zeitfeld benötigt). Dies ist Teil des Protokolls und der Regeln, denen die Nodes folgen. Eine Formel wird angewendet, um die Anzahl der für jeden Block-Hash erforderlichen Nullen anzupassen.
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 Nodes 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 4. Block laut einer imaginären Berechnung 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. Die Gesamtzeit, die jemand benötigt, um einen Block zu finden, bleibt also im Durchschnitt gleich (10 Minuten).
Hier ist der nächste Block:
Beachten Sie die Zeit. Seit dem vorherigen Block sind mehr als 10 Minuten vergangen (ich habe die Zeit erfunden, um etwas zu demonstrieren). Das 10-Minuten-Ziel ist statistisch, 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 Wahrscheinlichkeit, zwei Nullen hintereinander zu finden, ist 1 zu 16×16 oder 1 zu 256.
Wenn sich mehr Leute dem Mining anschließen und um neue bitcoin konkurrieren, werden schließlich 3 Nullen erforderlich sein.
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! Es besteht eine Chance von 1 zu 16 19 , bei jedem Versuch einen solchen Block zu finden. Bitcoin-Miner machen viele, viele Versuche pro Sekunde - 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 Tera-Hashes pro Sekunde (200 Billionen pro Sekunde). Bei so vielen Versuchen pro Sekunde wird etwa alle 10 Minuten ein Block mit einem Hash beginnend mit 19 Nullen gefunden.
In Zukunft, wenn mehr Miner hinzukommen, wird die Hash-Rate steigen, Blöcke werden schneller gefunden und die Schwierigkeit von Bitcoin wird sich anpassen, um 20 Nullen usw. zu erfordern, was die Blockproduktion bei etwa 10 Minuten hält.
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“ (Halving) bekannt und tritt ungefähr alle 4 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 bitcoin mehr erstellt, und die Anzahl der bitcoin ist mathematisch berechenbar und liegt nah genug bei 21 Millionen bitcoin. So ist der Gesamtvorrat bekannt – er wird vorbestimmt und programmgesteuert eingestellt.
Dannach werden die Miner aber trotzdem belohnt, nicht von der „Block-Belohnung“, sondern von Transaktionsgebühren – erkläre Ich als nächstes.
Wie genau wird die Blockbelohnung halbiert? Es ist im Code enthalten, der von den Nodes gehalten wird. Sie wissen, dass sie jeden neuen Block nach 210.000 ablehnen müssen, wenn ein Miner sich selbst über 25 (12,6.5, 3.25 ... ) bitcoin zahlt.
Transaktions-Gebühren:
Bisher habe ich nur imaginäre Blöcke mit einer einzigen Transaktion gezeigt, der Transaktion, bei der der/die 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:
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 mir nur zum Spaß ausgedacht, aber beachten Sie, 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.
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 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 Miner beansprucht, wie ich erklären werde.
Der Miner darf sich 25 bitcoin als Blockbelohnung auszahlen (weil seit dem ersten Block 210.000 Blöcke vergangen sind, hat sich die Belohnung von 50 auf 25 bitcoin halbiert). Aber wenn Sie schauen, ist die Coinbase-Transaktion 27,33880022 bitcoin. Die zusätzlichen 2.33880022 bitcoin stammen aus anderen 132 Transaktionen im Block – die Eingaben werden alle etwas größer sein als die Summe der Ausgaben. Der Miner kann also diese „aufgegebenen“ bitcoin als Bezahlung für sich selbst erstellen.
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 ein Wettbewerb ist, in den nächsten Block zu gelangen, inkludieren die Benutzer eine Gebühr in die Transaktion, um den Miner dazu zu verleiten, ihre Transaktion gegenüber anderen zu wählen (bevorzugen).
Wenn also die Blockbelohnung stetig sinkt, sich alle 4 Jahre halbiert und schließlich auf Null geht, werden die Miner immer noch auf diese Weise bezahlt.
Einige vermuten, dass die Belohnung für die Miner eines Tages nicht ausreicht und zum Scheitern von Bitcoin führen wird. Diese Sorge wurde gründlich entlarvt. Ich werde sie hier nicht wiederholen.
Kann ein Block neu geschrieben werden?
Dies ist äußerst unwahrscheinlich und es lohnt sich zu verstehen, warum. Sie werden dann verstehen, warum Bitcoin-Transaktionen 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 des Blocks ändert. Aber dieser Hash wird im nächsten Block aufgezeichnet, sodass der nächste Block aktualisiert werden muss. Aber wenn Sie den im nächsten Block aufgezeichneten Hash ändern, muss sich auch sein Hash ändern.
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 einen 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-Transaktionen. 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“; sie ist da, um Bitcoin vor Änderungen zu schützen; um das Register unveränderlich zu machen, ohne einer zentralen Autorität vertrauen zu müssen.
Was passiert, wenn 2 Miner gleichzeitig einen Block finden?
Das kommt tatsächlich hin und wieder vor und regelt sich immer wie folgt:
Jede Node empfängt zuerst einen der neuen nahezu gleichzeitigen Blöcke und akzeptiert diesen und weist den später ankommenden zurück. 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, dies dient nur zur Veranschaulichung)
Die Miner 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 Nodes und die längste Kette wird sichtbar. Die Nodes, die die rote Kette akzeptiert hatten, werden sie dann fallen lassen und die blaue Kette übernehmen.
Alle Miner, 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 stirbt.
Anhang
Warum der Block eines zweitplatzierten Bergmanns ungültig ist
Angenommen, Block 700.000 wurde gerade von MINER-A geschürft. 30 Sekunden später erstellt MINER-B eine andere Version von Block 700.000. Wenn MINER-B diese Alternative sendet, wird jede Node 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 große Chancen gehabt hätten, einen gültigen Block zu schürfen als den ungültigen. Sobald also ein Miner einen neuen Block sieht, sollte er sich auf den nächsten Block konzentrieren.
Wenn jedoch Miner-B Block 700.000 1 Sekunde nach MINER-A gefunden hat, dann ist es möglich, dass einige Nodes den Block von MINER-A zuerst sehen und einige den Block von MINER-B, abhängig von geografischen Standorten und Internet-Geschwindigkeit. In diesem Fall gibt es einen temporären Fork, und einige Miner werden daran arbeiten, die eine Version zu erweitern, und einige Miner werden 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.
Value 4 Value | Tips:
Wenn Ihnen diese Übersetzung gefallen hat, würde ich mich über eine Wertschätzung in Form von Satoshi an law@getalby.com freuen.
Sie können mir ausserdem auf Twitter folgen oder meine Homepage besuchen.
Nostr: npub1v5k43t905yz6lpr4crlgq2d99e7ahsehk27eex9mz7s3rhzvmesqum8rd9
Leon A. Wankum
Bitcoin. Real Estate. Philosophy & Ethics. ⚡law@getalby.com npub1v5k43t905yz6lpr4crlgq2d99e7ahsehk27eex9mz7s3rhzvmesqum8rd9
follow me :
Related Posts
Rabbit fragt #17
Aug 28, 2024
Der Bitcoiner in der Midlife-Crisis
Jun 14, 2024
Rabbit fragt...#16...Was ist eine Hardware Wallet?
May 26, 2024