Block Weight bezeichnet, wie Bitcoin die belegte Kapazität eines Blocks misst. Ein Block ist eine Gruppe von Transaktionen, die zur gemeinsamen Historie hinzukommt. Die Datenbestandteile zählen unterschiedlich stark. Das Gewicht hat eine feste Obergrenze, legt aber weder die Zahl der Zahlungen noch deren Geldwert fest.
Anna sendet Bitcoin, doch der nächste Block enthält ihre Zahlung nicht. Das allein bedeutet nicht, dass das Geld verschwunden ist. Die unbestätigte Transaktion kann im Mempool warten, dem lokalen Wartebereich eines Knotens. Ein Knoten ist ein Programm, das Transaktionen und Blöcke prüft und sich mit anderen Netzwerkteilnehmern austauscht. Ein Miner wählt Transaktionen für einen Block mit begrenzter Kapazität aus und kann auch einen kleineren Block erstellen. Gebühren sind ein Anreiz, kein Auftrag, eine bestimmte Zahlung aufzunehmen. Block Weight erklärt eine Grenze dieser Auswahl, nicht jeden Grund für eine Verzögerung. [1] [7]
Die Obergrenze liegt bei 4 000 000 WU einschließlich dieses Werts. WU steht für Gewichtseinheit. Ein Full Node prüft Bitcoins Regeln selbstständig und lehnt einen schwereren Block ab. Auch hohe Gebühren oder ein gültiger Proof of Work, der zur Blockerzeugung nötige rechnerische Arbeitsnachweis, retten ihn nicht. Ein solcher Nachweis und ein regelkonform aufgebauter Block sind gleichzeitig erforderlich. Der Wunsch des Miners allein bestimmt die Kapazität also nicht. [1] [3] [4]
Ein Byte ist eine übliche Einheit für Datenmengen. SegWit trennte einen Teil der Daten ab, die die Berechtigung zum Ausgeben belegen, darunter Signaturen. Dieser Teil heißt witness. Ein Byte der Basisdaten zählt 4 WU, ein zusätzliches Byte der vollständigen witness-Darstellung dagegen 1 WU. Auch deren Hilfsfelder marker und flag gehören zur zweiten Gruppe. So bleibt die Grundstruktur der Transaktionen erhalten, während Platz für Prüfungsdaten entsteht, ohne alle Bytes gleich zu gewichten. [1] [2]
Eine Signatur belegt das Recht, bestimmte Coins auszugeben. Ein kurzes Programm, das Skript, beschreibt die dafür geltenden Bedingungen. Dass witness weniger Gewicht beiträgt, erlaubt einem prüfenden Knoten nicht, die erforderlichen Signaturen oder Skriptbedingungen zu ignorieren. Die Daten bleiben auch in der vollständigen Darstellung enthalten. Dies ist eine Regel zur Kapazitätsberechnung; Rechenaufwand, Datenverkehr und Speicherbedarf sinken deshalb nicht automatisch im selben Verhältnis. [1] [4]
Serialisierung bedeutet, einen Block in die genaue Bytefolge zu schreiben, die Rechner austauschen. B sei die Größe ohne witness und T die vollständige Größe. BIP 141 verwendet W = 3 × B + T. Die Basisdaten sind bereits in T enthalten und zählen deshalb insgesamt vierfach. Die durch witness hinzugefügten Daten zählen einfach. Die Formel gilt für den gesamten Block, nicht nur für seine gewöhnlichen Zahlungen. [1] [8]
Nehmen wir B = 500000 und T = 2500000 Bytes an. Daraus folgt W = 4000000 WU. Eine andere Zusammensetzung mit B = 750000 und T = 1750000 Bytes ergibt ebenfalls W = 4000000 WU. Das sind Rechenbeispiele, keine gemessenen Blöcke. Beide nutzen dasselbe Gewicht, doch beim zweiten werden weniger Bytes übertragen. Die Aussage „Ein voller Block hat immer 4 MB“ stimmt daher nicht. Auch die Anzahl seiner Transaktionen ist nicht festgelegt. [1]
Ein Block ist mehr als eine Sammlung von Zahlungen. Er hat einen 80 Byte langen Header, der unter anderem auf den Vorgängerblock verweist und die Transaktionen zusammenfasst. Danach folgt die Transaktionsanzahl in CompactSize, einer Ganzzahlkodierung variabler Länge. Die erste Transaktion ist die Coinbase Transaction für die Belohnung des Miners; hier ist keine Börse gemeint. Alle diese Teile zählen mit. Nur die Gewichte der übrigen Transaktionen zu addieren ergibt daher noch nicht das gesamte Blockgewicht. [5] [7] [8]
Eine Wallet ist eine Anwendung oder ein Gerät zum Empfangen und Senden von Bitcoin. Sie arbeitet gewöhnlich mit der virtuellen Transaktionsgröße in vByte. Dafür wird das Gewicht der gesamten Transaktion durch 4 geteilt und aufgerundet. So lassen sich Gebühren im Verhältnis zur beanspruchten Kapazität vergleichen. Die Summe dieser gerundeten Größen ist nicht das genaue Blockgewicht: Die Einheit ist anders, jede Transaktion wurde einzeln gerundet, und die zusätzliche Blockstruktur fehlt. Ein hoher Geldbetrag bedeutet nicht automatisch eine große Datentransaktion. [1] [8]
Das Gewicht bildet nicht die gesamte Arbeit eines Knotens ab. Zusätzlich gilt nach den entsprechenden Regeln eine Grenze von 80 000 gewichteten Kosteneinheiten für Signaturprüfungen. Das ist keine einfache Zählung aller Signaturen im Block. Tapscript, die mit Taproot eingeführte Skriptsprache, hat ein eigenes Budget pro Eingang, also den Teil einer Transaktion, der zuvor erhaltene Coins ausgibt; seine Signaturoperationen zählen nicht zu diesem älteren blockweiten Limit. BIP 342 beschreibt die andere Begrenzung. Einhaltung des Gewichtslimits erlaubt also keinen beliebig hohen Prüfaufwand. [1] [3] [9]
Ein Blockexplorer ist eine Anwendung, mit der sich Transaktionen und Blöcke eines bestimmten Netzwerks nachschlagen lassen. Bitcoin Core v29.0 liefert mit getblock unter anderem size, strippedsize und weight: vollständige Bytegröße, Größe ohne witness und Gewicht. Daneben kann chainwork erscheinen. Es beschreibt die angesammelte Rechenarbeit der Kette, nicht ihr Datengewicht. Im Alltag hilft die Unterscheidung zwischen Kapazität und Preis: Block Weight begrenzt den Platz im Block, die tatsächliche Zahlungsgebühr hängt von Transaktionsgröße und gewähltem Gebührensatz ab. Keiner dieser Werte verspricht allein einen Bestätigungszeitpunkt. [6]
Für ein möglichst vollständiges Bild lies diesen Eintrag zusammen mit vByte, Witness Data, SegWit, Blocksize War, Bitcoin, Full Node. Auf diesen Eintrag verweisen außerdem Signet, vByte, Witness Data, Ordinals Inscriptions.