Was ist das Feld "Bestätigung" in einem Block?

Welche Bedeutung hat das Feld "Bestätigung" in einem Block?

Wie viele Bestätigungen sind erforderlich, um einen Block in einer Blockchain zu akzeptieren?

Antworten (3)

Blöcke in Bitcoin, wie sie in der Blockchain existieren, enthalten eigentlich kein Bestätigungsfeld. Wenn Sie in bitcoin-rpc oder ähnlichem nach einem Block fragen, werden dem Block basierend auf dem Wissen Ihres Clients über den aktuellen Zustand der Blockchain zusätzliche Informationen hinzugefügt.

Ein reiner Block enthält nur fünf Felder (von denen einige Unterfelder haben):

  1. Magische Zahl (um zu erkennen, dass die folgenden Informationen ein Block sind)

  2. Blockgröße (wie viele Bytes bis zum Ende des Blocks gelesen werden sollen)

  3. Blockheader (wichtig für Blockbestellung/Verifizierung)

    • Version (die "Regeln", an die sich dieser Block hält)
    • Vorheriger Block-Hash (ein Fingerabdruck des Blocks, auf dem dieser Block aufbaut)
    • Transaction Merkle Root (ein Fingerabdruck aller Blocktransaktionen)
    • Zeitstempel (UNIX-Epoche)
    • „nBits“ oder ein kompakter Ausdruck des PoW-Ziels des Blocks
    • Nonce (eine Nummer, die der Blockminer verwendet hat, um eine gültige PoW-Lösung zu finden)
  4. Transaktionsanzahl (Anzahl der Transaktionen im Block)

  5. Transaktionsliste

Zurück zu Ihrer Frage, die Anzahl der "Blockbestätigungen" eines Blocks ist einfach, wie viele andere Blöcke auf diesem Block aufbauen. Nehmen Sie zum Beispiel die folgende drei Blöcke lange Blockchain:

Drei Blöcke lange Blockchain

Der blaue Block (der die Blockchain startet, daher wird er auch als Genesis-Block bezeichnet) hat drei Bestätigungen (er bestätigt sich selbst, plus die beiden Blöcke, die darauf aufbauen, verstärken ihn weiter als legitim). Der grüne Block hat zwei Bestätigungen (er bestätigt sich selbst, plus der eine Block, der darauf aufbaut, verstärkt ihn weiter als legitim). Der orangefarbene Block bestätigt sich nur selbst und gibt ihm eine Bestätigung.

Wenn ein weiterer Block zur Blockchain hinzugefügt wurde:

Vier Blöcke lange Blockchain

Alle Blöcke aus dem vorherigen Bild (blau, grün, orange) würden eine zusätzliche Bestätigung erhalten, da sie weiter in der Blockchain „vergraben“ wurden.

Sobald ein Block existiert (er bestätigt sich also automatisch und gibt ihm eine Bestätigung), kann er in die Blockchain aufgenommen werden. Im Falle eines Netzwerk-Forks ist dies jedoch nicht immer der Fall. Die Anzahl der Bestätigungen eines Blocks gibt an, wie schwierig es wäre, diesen Block zu überschreiben.

In der direkt oben gezeigten Blockchain der Länge 4 würde der Versuch, den roten Block zu überschreiben, nur die Einführung eines Blocks erfordern, der mit Rot als Kind von Orange konkurriert:

Geben Sie hier die Bildbeschreibung ein

Beachten Sie, dass die Einführung des schwarzen Blocks in die Blockchain den roten Block nicht unbedingt überschreiben würde. Wenn Miner sich dafür entscheiden, auf dem schwarzen Block statt auf dem roten Block abzubauen, wodurch die Blockchain [blau-grün-orange-schwarz-...] zur "längsten" (wirklich "schwersten", siehe unten im Beitrag) Kette wird, dann ersetzt der schwarze Block den roten Block. Wenn die Bergleute sich stattdessen dafür entscheiden, auf dem roten Block abzubauen und die Blockchain [blau-grün-orange-rot-...] zur längsten Kette zu machen, dann wird der rote Block nicht ersetzt. Um sicherzustellen (vorausgesetzt, dass Netzwerk-Miner den roten Block aus irgendeinem Grund nicht ausdrücklich bevorzugen und ihn oben drauf bauen, auch wenn es nicht der neueste Block in der Blockchain ist), dass der rote Block gegabelt wird, müsste ein Angreifer einführen zwei Blöcke, die von Orange abzweigen:

Fast garantierte Gabelung des roten Blocks

Um den grünen Block aus dem Netzwerk abzuzweigen, müsste ein Angreifer jedoch mindestens drei Blöcke einführen, die eine alternative Blockchain aus dem blauen Block aufbauen:

Möglicher Fork von grünen, orangen und roten Blöcken

Und für eine viel höhere Chance auf einen erfolgreichen Angriff müssten vier Blöcke eingeführt werden, die eine alternative Blockchain aus dem blauen Block aufbauen:

Sehr wahrscheinliche Gabelung des grünen Blocks, des orangefarbenen Blocks und des roten Blocks

Beachten Sie, dass dieser Angriff den (möglicherweise beabsichtigten) Nebeneffekt haben würde, auch die orangefarbenen und roten Blöcke aus der Blockchain zu entfernen.

Zuvor habe ich den Begriff „länger“ verwendet, wenn ich mich auf konkurrierende Blockchain-Forks bezog. Während in Wirklichkeit die Kette mit der längsten Länge, gemessen in Blöcken, fast immer die beste Blockchain ist, ist sie es nicht unbedingt .Anstatt die Anzahl der Blöcke in der Blockchain zu zählen, wählen Bitcoin-Knoten die Blockchain aus, die die „schwerste“ ist oder die höchste kumulative Schwierigkeit aufweist. Beim Bitcoin-Mining geht es darum, eine Lösung für ein Problem „brute-forced“ zu erzwingen, indem wiederholt doppelte SHA256-Berechnungen an einem potenziellen Block-Header (oben kurz beschrieben) durchgeführt werden, um nach einem resultierenden Hash mit bestimmten Eigenschaften zu suchen (was fälschlicherweise, aber im Wesentlichen als „viel von führenden Nullen"). Eine höhere Schwierigkeit bedeutet, dass Miner im Durchschnitt mehr Arbeit für jede gültige PoW-Lösung leisten müssen. Die "beste" oder "schwerste" Kette ist die Kette mit der höchsten Gesamtschwierigkeit (die durch Addieren der Schwierigkeit jedes Blocks berechnet wird).

Zusammenfassend lässt sich sagen, dass ein Block in die Blockchain aufgenommen werden kann, sobald er existiert, und er hat eine Bestätigung, indem er einfach existiert. Blöcke beliebiger Tiefe können jedoch durch einen Blockchain-Fork aus der Blockchain entfernt werden.

Das Konzept der Bestätigung in Bitcoin ist ein Maß dafür, wie tief ein Block oder eine Transaktion in der Blockchain vergraben ist. Es misst, wie viele Blöcke oben liegen. Mehr bedeutet, dass der Block oder die Transaktion schwieriger rückgängig gemacht werden kann, da ein Angreifer mindestens so viel Arbeit leisten müsste, wie zum Erstellen dieser bestätigenden Blöcke erforderlich ist.

Per Definition entspricht 1 Bestätigung der Aufnahme in die Blockchain.

Wenn es bei dieser Frage zufällig um die Ausgabe von getblockRPC oder ähnlichen APIs geht: Es wird einfach gezählt, wie viele Blöcke oben liegen. Wenn die Spitze der Kette die Höhe 426396 und der abgefragte Block die Höhe 426391 hat, gibt das Ergebnis an, dass es 6 Bestätigungen gibt (426396 - 426391 + 1 = 6).

Welche Bedeutung hat das Feld "Bestätigung" in einem Block?

Eine Bestätigung ist die Handlung einer Transaktion, die in einen einzelnen Block innerhalb der Bitcoin-Blockchain aufgenommen wird.

Eine Bestätigung stellt eine gewisse Dauerhaftigkeit innerhalb der Bitcoin-Blockchain dar.

Die „Miner“ sind die Einheiten, die Blöcke erstellen und entscheiden, welche Transaktionen in die Blöcke aufgenommen werden sollen.

Während eine in einem einzelnen Block enthaltene Transaktion von einem Miner rückgängig gemacht werden könnte , müsste dieser Miner sowohl einen Ersatzblock für den Block, in dem sich die Transaktion befand, als auch einen völlig neuen Block generieren, bevor der Rest der Miner einen neuen finden kann Blöcke.

Dies ist normalerweise nicht machbar, kommt aber gelegentlich vor und der Block, der ersetzt wird, wird als verwaister Block bezeichnet. Dies wird auch exponentiell weniger durchführbar, wenn versucht wird, eine größere Anzahl von Blöcken zu ersetzen.

Sobald eine Transaktion in einen Block aufgenommen wurde, ist sie automatisch Teil aller zukünftigen Blöcke (über einseitiges kryptografisches Hashing des vorherigen Blocks in jedem neuen Block), sodass die Gesamtzahl der Bestätigungen die Anzahl der Blöcke darstellt, die seitdem generiert wurden Die Transaktion wurde zunächst bestätigt.

Bitte beachten Sie, dass wenn ein Endbenutzer zum ersten Mal eine Transaktion durchführt, die Transaktion fast sofort an das Netzwerk gesendet wird, aber es kann oft 10 Minuten oder länger dauern, bis die Transaktion tatsächlich in einem Block bestätigt wird.

Wie viele Bestätigungen sind erforderlich, um einen Block in einer Blockchain zu akzeptieren?

Eine Bestätigung ist die Handlung des Netzwerks/der Bergleute, die eine Transaktion in der Blockchain akzeptieren.

Aus praktischer Sicht des Endbenutzers ist es jedoch nützlich zu überlegen, wie viele Bestätigungen dem Endbenutzer das Gefühl geben würden, dass eine Transaktion nicht rückgängig gemacht wird.

Bei kleinen Beträgen könnten 0- oder 1-Bestätigungen als sicher angesehen werden.

Bei größeren Beträgen können 2 oder 3 oder sogar mehr Bestätigungen erwünscht sein, bevor eine Transaktion als dauerhaft/sicher betrachtet wird.

6-Bestätigungen waren im Allgemeinen der Standard für „das wird auf keinen Fall rückgängig gemacht“, aber es gab ein paar Fälle, in denen mehrere Dutzend Blöcke aufgrund von Softwarefehlern verwaist waren.