Blockgewicht

Aus Bitcoin Wiki
Wechseln zu: Navigation, Suche
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?»[Bearbeiten]

Neuer Adresstyp für SegWit-Adressen (eng)

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

  1. Installieren Sie eine SegWit-unterstützende Brieftasche.
  2. Erhalten Sie Geld für neue Bitcoin-SegWit-Adressen, die mit 3 beginnen. Sie müssen neue Adressen generieren. Ihre alten Adressen werden niemals SegWit-Adressen sein. Beachten Sie, dass nicht alle Adressen, die mit 3 beginnen, SegWit-Adressen sind, und es ist unmöglich, anhand einer Adresse festzustellen, ob es sich um eine SegWit-Adresse handelt.
  3. Wann immer Sie BTC ausgeben, die Sie über SegWit-Adressen erhalten haben, erhalten Sie den SegWit-Rabatt. Wenn Sie eine Transaktion senden, die eine BTC über nicht-SegWit-Adressen und einige über SegWit-Adressen empfangene BTC enthält, erhalten Sie einen Teilrabatt. Die Zieladresse spielt keine Rolle.

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[Bearbeiten]

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[Bearbeiten]

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[Bearbeiten]

Betrachten Sie diese Transaktion:

0100000000010115e180dc28a2327e687facc33f10f2a20da717e5548406f7ae8b4c8 11072f85603000000171600141d7cd6c75c2e86f4cbf98eaed221b30bd9a0b928ffff ffff019caef505000000001976a9141d7cd6c75c2e86f4cbf98eaed221b30bd9a0b92 888ac02483045022100f764287d3e99b1474da9bec7f7ed236d6c81e793b20c4b5aa1 f3051b9a7daa63022016a198031d5554dbb855bdbe8534776a4be6958bd8d530dc001 c32b828f6f0ab0121038262a6c6cec93c2d3ecd6c6072efea86d02ff8e3328bbd0242 b20af3425990ac00000000
Daten Beschreibung Anzahl der Rohbytes Typ (Multiplikator) Abschnitt Gesamtgewicht Laufendes Gesamtgewicht
01000000 Version 1 4 Nicht-Zeuge (4x) 16 16
00 SegWit-Markierung 1 Zeuge (1x) 1 17
01 SegWit-Flagge 1 Zeuge (1x) 1 18
01 Anzahl der Eingänge (1) 1 Nicht-Zeuge (4x) 4 22
15..56 Vorheriger Ausgabe-Hash 32 Nicht-Zeuge (4x) 128 150
03000000 Vorheriger Ausgabe-Index (3) 4 Nicht-Zeuge (4x) 16 166
17 Skriptlänge (23 bytes) 1 Nicht-Zeuge(4x) 4 170
16..28 Skript: P2SH-eingeschlossenes P2WPKH-Zeugenprogramm 23 Nicht-Zeuge (4x) 92 262
ffffffff Sequenz 4 Nicht-Zeuge (4x) 16 278
01 Anzahl der Ausgänge (1) 1 Nicht-Zeuge (4x) 4 282
9caef50500000000 Ausgabewert

(0.99987100 BTC)

8 Nicht-Zeuge (4x) 32 314
19 Skriptgröße ausgeben (25) 1 Nicht-Zeuge (4x) 4 318
76..ac Skript: DUP HASH160 0x1d7c... EQUALVERIFY CHECKSIG 25 Nicht-Zeuge (4x) 100 418
02 Anzahl der Stapelelemente für Eingabe 0 (2) 1 Zeuge (1x) 1 419
48 Größe des Stapeleintrags 0 (72) 1 Zeuge (1x) 1 420
304...ab01 Stapelartikel 0, Unterschrift 72 Zeuge (1x) 72 492
21 Größe des Stapelgegenstandes 1 (33) 1 Zeuge (1x) 1 493
03..ac Stapel 1, Pubkey 33 Zeuge (1x) 33 526
00000000 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[Bearbeiten]

Siehe auch[Bearbeiten]