SegWit-Transaktionsgebühr/Byte

Für Transaktionen, die keine SegWit-Ausgaben ausgeben, ist es einfach: Wenn ich eine 1000Satoshi-Gebühr für 500Byte-Rohtransaktionen festgelegt habe, lande ich bei einer 2s/b-Gebühr.

Wie wäre es mit einer Transaktion, die Zeugendaten enthält?

Angenommen, meine Rohtransaktion besteht 500aus Bytes, 100von denen Bytes Zeugendaten sind. Somit 400konkurrieren jetzt Bytes um den Platz im 1-MB-Block.

Wie genau ist es zu sagen, dass die aktuelle Transaktionsgebühr 1000 / 400 = 2.5s/b ist?

Antworten (2)

Angenommen, meine Rohtransaktion umfasst 500 Bytes, von denen 100 Bytes Zeugendaten sind. Somit konkurrieren nun 400 Byte um den Platz im 1 Mb Block.

Das ist nicht richtig.

SegWit ersetzt das Konzept von Größe und maximaler Blockgröße durch Gewicht . Die Gewichtung einer Transaktion ist definiert als das Dreifache von stripped_size in Bytes (ohne den Zeugen) plus total_size in Bytes (einschließlich des Zeugen). Das maximale Gewicht aller Transaktionen in einem Block beträgt 4000000. Dies ist die einzige Grenze, die zählt. Aufgrund der Art und Weise, wie die Gewichtsformel aufgebaut ist, impliziert dies, dass die alte Regel (stripped_size <= 1000000) immer erfüllt ist. Bergleute versuchen, so viele Gebühren wie möglich aus der Gewichtsgrenze herauszuholen, die ihnen zur Verfügung steht, und optimieren daher die Gebühr pro Gewicht .

Transaktionsgrößen spielen also keine Rolle mehr. Entscheidend ist ihr Gewicht. Leider gibt es zwischen den beiden eine Faktor-4-Skalierung, sodass Sie die Gebühren von vor SegWit nicht einfach in danach umwandeln können. Aus diesem Grund wurde das Konzept der vsize (virtuelle Größe) eingeführt. Es ist gleich Gewicht/4. Bei Nicht-SegWit-Transaktionen sind ihre Größe und vsize identisch. Der einfachste Weg, Gebühren auszudrücken, besteht jetzt darin, sie als BTC pro Vbyte (vsize byte) zu sehen.

Wie genau ist es zu sagen, dass die aktuelle Transaktionsgebühr 1000 / 400 = 2,5 s/b beträgt?

In Ihrem Beispiel beträgt die Gewichtung Ihrer Transaktion 3*400 + 500 = 1700. Das bedeutet, dass ihre vsize 425 vbytes beträgt. Infolgedessen beträgt die Gebühr 1000 / 425 = 2,35 sat/vbyte, und es würde mit anderen Transaktionen auf diesem Niveau konkurrieren.

So klar wie es geht. Danke
@pieter-wuille Profitiert Segwit, eingebettet in P2SH, von dem neuen Größenkonzept? In der folgenden Frage wurde erwähnt, dass die Verwendung von Nested in einem Legacy-P2SH Vorteile hat (wenn auch weniger effizient). Ich möchte die Bedeutung verstehen. bitcoin.stackexchange.com/questions/62053/…
Ja, das tut es, wenn auch in geringerem Maße. Ich werde versuchen, eine Antwort auf diese Frage zu schreiben.
  • Legacy-Eingabegröße: 148 Byte (komprimiert)
  • Legacy-Ausgabegröße: 34 Bytes (komprimiert)

  • Segwit-Eingabegröße: 104 Bytes

  • Segwit-Ausgabegröße: 32 Bytes

Wenn Ihre Transaktion also zwei Eingaben und eine Ausgabe hat, beträgt die Gesamtgröße ~ 246 Bytes. Vergessen Sie nicht einige zusätzliche Bytes für den Transaktionsheader.