Blockgewicht

Fehler beim Erstellen des Vorschaubildes: Die Miniaturansicht konnte nicht am vorgesehenen Ort gespeichert werden
Der Fall für die Erhöhung des Blockgewichts von Bitcoin

Blockgewicht vor SegWit, es gab eine maximale Blockgröße von 1MB. Nach SegWit wurde das Konzept der maximalen Blockgröße entfernt und durch das maximale Blockgewicht ersetzt. Das maximale Blockgewicht der Kryptowährung beträgt 4 MB.

Zusammenfassung: “Wie bekomme ich günstigere Transaktionen?»

Um günstigere Transaktionen zu erhalten, müssen Sie:

Es gibt keine Kompatibilitätsprobleme: Nicht-SegWit-Wallets können BTC an SegWit-Adressen senden und SegWit-Wallets können BTC an Nicht-SegWit-Adressen senden.

Die Bedeutung des Blockgewichts

Normalerweise zählt jedes Byte in einer Transaktion als 4 Byte Blockgewicht. Wenn jedoch ein Byte Teil des SegWit-Bitcoin-Zeugenbereichs ist, erhält es einen Rabatt und zählt nur als 1 Byte Blockgewicht.

Angenommen, Sie haben zuvor eine BTC an die Bitadresse A von SegWit Bitcoin und eine BTC an die Adresse B erhalten. Betrachten Sie nun eine Transaktion, bei der beide Beträge an eine Adresse C gesendet werden. Die Daten, die nichts mit den Transaktionseingaben zu tun haben, sind immer nicht mit von der Partie Daten gezählt als 4 Bytes/Byte. Insbesondere spielt Adresse C keine Rolle und kann SegWit, Nicht-SegWit oder irgendetwas anderes sein. Die mit der Adresse A verbundenen Zeugendaten werden in den SegWit-Zeugenbereich übernommen und als 1 Byte/Byte gezählt. Die mit der Adresse B in Beziehung stehenden Zeugendaten sind nicht SegWit und werden daher als 4 Bytes/Byte gezählt.

“Witness-Daten” sind mehr oder weniger die Daten, die in der ScriptSig einer älteren Transaktion eingehen würden.

Umwandlung in reale Größen

Es ist ein häufiges Missverständnis, dass SegWit Transaktionen kleiner macht, aber das ist falsch. Eine 300-Byte-Transaktion ist 300 Byte auf der Festplatte und in der Leitung. SegWit zählt nur diese Bytes unterschiedlich zu der 4MB Gewichtsgrenze.

Die maximale Größe eines Blocks ist fast gleich dem maximalen Blockgewicht, also aktuell 4 MB. Dies ist nicht irgendwie erfundene Größe; der maximale Block ist wirklich 4MB on-disk und on-wire. Dieses Maximum kann jedoch nur erreicht werden, wenn der Block voller seltsamer Transaktionen ist, daher sollte er normalerweise nicht gesehen werden.

Die typische Größe eines Blocks hängt von der Zusammensetzung der Transaktionen in diesem Block ab. Ab 2017 würde der durchschnittliche Transaktionsaufbau zu etwa 2,3 MB typischen Blöcken führen, wenn alle Transaktionen SegWit-Transaktionen wären.

Ausführliches Beispiel

Betrachten Sie diese Transaktion:

Daten Beschreibung Anzahl der Rohbytes Typ (Multiplikator) Abschnitt Gesamtgewicht Laufendes Gesamtgewicht
Version 1 4 Nicht-Zeuge (4x) 16 16
SegWit-Markierung 1 Zeuge (1x) 1 17
SegWit-Flagge 1 Zeuge (1x) 1 18
Anzahl der Eingänge (1) 1 Nicht-Zeuge (4x) 4 22
Vorheriger Ausgabe-Hash 32 Nicht-Zeuge (4x) 128 150
Vorheriger Ausgabe-Index (3) 4 Nicht-Zeuge (4x) 16 166
Skriptlänge (23 bytes) 1 Nicht-Zeuge(4x) 4 170
Skript: P2SH-eingeschlossenes P2WPKH-Zeugenprogramm 23 Nicht-Zeuge (4x) 92 262
Sequenz 4 Nicht-Zeuge (4x) 16 278
Anzahl der Ausgänge (1) 1 Nicht-Zeuge (4x) 4 282
Ausgabewert

(0.99987100 BTC)

8 Nicht-Zeuge (4x) 32 314
Skriptgröße ausgeben (25) 1 Nicht-Zeuge (4x) 4 318
Skript: DUP HASH160 0x1d7c… EQUALVERIFY CHECKSIG 25 Nicht-Zeuge (4x) 100 418
Anzahl der Stapelelemente für Eingabe 0 (2) 1 Zeuge (1x) 1 419
Größe des Stapeleintrags 0 (72) 1 Zeuge (1x) 1 420
Stapelartikel 0, Unterschrift 72 Zeuge (1x) 72 492
Größe des Stapelgegenstandes 1 (33) 1 Zeuge (1x) 1 493
Stapel 1, Pubkey 33 Zeuge (1x) 33 526
Sperrzeit (0) 4 Nicht-Zeuge (4x) 16 542

Die tatsächliche Größe der Transaktion auf der Festplatte und über das Netzwerk beträgt 218 Byte, die Größe in Bytes der gesamten Transaktion, die oben in Hexadezimal angegeben ist. Das Gewicht ist immer größer als die tatsächliche Größe, in diesem Fall 542 Bytes.

Es ist nicht möglich, genau gleichwertige Legacy-Transaktionen für SegWit-Transaktionen zu erstellen. Wenn BTC an eine SegWit-Adresse gesendet wird, muss sie in einer SegWit-Eingabe ausgegeben werden. Zum Vergleich, eine ähnliche 1-Eingabe, wäre die 1-Ausgabe-Legacy-Transaktion etwa 191 Bytes. Die Legacy-Transaktion würde 0,0191% eines 1-MB-Legacy-Blocks verbrauchen, während diese Transaktion 0,0136% eines SegWit-Blocks verbraucht, eine Reduktion von 34%. Verschiedene Transaktionstypen können viel größere Reduzierungen haben.

Möglicherweise stellen Sie fest, dass die Transaktionsgröße etwas zugenommen hat – 218 Byte im Vergleich zu 191 Byte – aber der meiste / der gesamte Overhead sind redundante Daten, die entfernt werden könnten. Wenn Sie beispielsweise den Zeugen haben, können Sie das 23-Byte-P2SH-Skript berechnen. Bei Bedarf könnten diese Daten vor der Übertragung der Transaktionen entfernt werden: Dies wäre eine Änderung des P2P-Protokolls, die nicht einmal eine Softfork erfordert.

Ressourcen

Siehe auch