Kann ein Bitcoin-Block kleiner als 1 MB sein?

Kann ein Bitcoin-Block kleiner als 1 MB sein?

Nach meinem Verständnis empfängt ein Miner Sendungen. Wenn jedoch nicht genügend Transaktionen eingehen, würde es dann den Block vorzeitig hashen?

Was meinst du mit "vorzeitig"? Die meisten Miner hashen jede Sekunde, die sie können, sonst wird ihre Mining-Power verschwendet.

Antworten (3)

Ja. Lassen Sie uns die Mindestgröße eines Blocks berechnen:

  • Der Blockheader muss genau 80 Byte lang sein. Dies ist der einzige Teil des Blocks, den Miner tatsächlich abbauen; der Rest des Blocks sind Daten, auf die der Header sicher verweist.

  • Die Transaktionsanzahl. Dies ist nicht Teil des Blockheaders und nicht Teil der Blockdaten, aber es ist Teil der Blocknachricht des Peer-to-Peer-Protokolls , sodass es auf die Blockgröße angerechnet wird. Bei Blöcken mit 253 oder weniger Transaktionen ist dies 1 Byte.

  • Die Coinbase-Transaktion, die einzige erforderliche Transaktion in einem Block. Die Coinbase-Transaktion hat die folgenden Felder mit diesen Mindestwerten:

    • 4 Bytes – Versionsfeld
    • 1 Byte – Anzahl der Eingänge (immer 1 für Coinbase-Transaktionen)
    • 32 Byte – Endpunkt txid ; immer 32 0x00 Bytes für Coinbase-Transaktionen
    • 4 Bytes – Endpunktindex; immer 4 0xff Bytes für Coinbase-Transaktionen
    • 1 Byte – Anzahl der Bytes im Coinbase-Feld (Eingabeskript); immer 1 Byte für Coinbase-Transaktionen, da es eine 100-Byte-Grenze gibt
    • 4 Bytes – Blockhöhe als Daten-Push; von BIP34 benötigt
    • 4 Bytes - Sequenznummer
    • 1 Byte – Anzahl der Ausgänge, wir werden keine haben (wodurch die Blockbelohnung und die in diesem Block gezahlten Transaktionsgebühren dauerhaft unausgebbar sind; kein echter Miner würde dies tun)
    • 4 Bytes – Sperrzeit
    • Gesamt: 55 Byte

Gesamte minimale Blockgröße: 80 + 1 + 55 = 136 Bytes

Praktisch liegen die kleinsten vernünftigen Blöcke im 180-Byte-Bereich.

Leer voutwürde die Transaktion ungültig machen . Sie müssten eine Ausgabe von 0 BTC, 0 Länge, Nullskript für insgesamt 9 Bytes (8 Byte Wert, ein Byte VarInt) haben. Dies wäre auch eine Ausgabe, die jeder ausgeben kann, da ein Null-Skript erfüllt werden kann, indem alles auf den Stapel verschoben wird.

Sicher.

Dies ist ein solcher Block. Es ist 312 kB groß.

Blöcke müssen mindestens eine Transaktion haben: Sie müssen eine Coinbase enthalten, die die Transaktion ist, die die Blockbelohnung ausgibt.

Zum Beispiel ist dieser Block mit nur einer Transaktion nur 0.246 kB.