Blockchain/Niveau II · Mechanik/2.2 Transaktionen/Lektion 6
Replace-by-Fee und Child-Pays-for-Parent
Fee Bumping und der Pinning-Angriff
MaterialienEin Block-Explorer, der die Abstammung von Transaktionen anzeigt (z. B. mempool.space)Eine Wallet, die Fee Bumping unterstützt
Neugier
- Was kann ein Sender tun, wenn eine Transaktion wegen einer zu niedrigen Gebühr feststeckt?
- Wie kann ein Empfänger für eine Zahlung bezahlen, die er noch nicht erhalten hat?
- Was passiert, wenn eine Gegenpartei Ihre Mittel absichtlich im Mempool als Geisel hält?
Erkunden
- Eine Transaktion, die mit einer zu niedrigen Gebührenrate gesendet wurde, kann tagelang unbestätigt bleiben oder ganz aus den Mempools fallen, während besser zahlende Transaktionen um sie herum bestätigt werden. Zwei Techniken erhöhen die effektive Gebühr nach dem Senden: Der Sender kann die Transaktion durch eine besser zahlende Version ersetzen, oder ein Empfänger kann einen ihrer Outputs mit einer großzügigen Gebühr ausgeben, sodass die Miner beide zusammen aufnehmen.
- Replace-by-Fee (RBF) ermöglicht es dem Sender, eine zu niedrig angesetzte Gebühr zu korrigieren. BIP125 führte die Signalisierung der Ersetzbarkeit über das nSequence-Feld der Inputs ein. Nach den Ersetzungsregeln von Bitcoin Core muss eine Ersatztransaktion mindestens die Gesamtgebühren aller verdrängten Transaktionen zuzüglich einer zusätzlichen Relay-Gebühr für ihre eigene Größe zahlen und eine höhere Gebührenrate aufweisen als die Transaktionen, mit denen sie direkt in Konflikt steht. Bitcoin Core Version 24 führte die Akzeptanz von „Full RBF“ ein, bei der Transaktionen auch ohne explizite Signalisierung als ersetzbar behandelt werden; in Version 28 wurde dies zum Standard.
- Child-Pays-for-Parent (CPFP) hilft Empfängern, die eine eingehende Zahlung nicht ändern können. Der Empfänger erstellt eine neue Transaktion, die den unbestätigten Output der feststeckenden Eltern-Transaktion ausgibt, und versieht diese Kind-Transaktion mit einer hohen Gebühr. Miner bewerten das kombinierte Paket anhand der Gebührenrate inklusive Vorfahren (Ancestor Fee Rate); die Aufnahme des Kindes erzwingt die Aufnahme der Eltern-Transaktion, da das Kind nur gültig ist, wenn seine Eltern-Transaktion im selben Block oder früher bestätigt wird.
- Die ökonomische Logik beruht auf dem Gesamtwert. Wenn eine Eltern-Transaktion 1 sat/vB zahlt und ein großes Kind 50 sat/vB, bietet das kombinierte Paket Minern eine lukrative Gelegenheit, beide gleichzeitig zu bestätigen. So kann ein Empfänger die Aufnahme seiner feststeckenden eingehenden Zahlung durch den Miner faktisch subventionieren, obwohl er die bestätigten Coins noch nicht kontrolliert; dafür ist eine genaue Berechnung von Gesamtgewicht und Gebühren nötig.
- Transaction Pinning ist eine kritische Schwachstelle dieses Systems. Eine Gegenpartei kann absichtlich eine Transaktion mit niedriger Gebührenrate und vielen Nachfahren im Mempool halten, um zu verhindern, dass zeitkritische Transaktionen vor ihrer Frist bestätigt werden. In Protokollen wie dem Lightning Network, in denen Channel-Schließungen auf bestimmten Timelocks beruhen, könnte ein Angreifer, der Ihre Closing-Transaktion pinnt, unter Umständen Gelder stehlen, wenn Sie gezwungen sind, über Ihr Sicherheitsfenster hinaus zu warten.
- Die Entwickler haben in neueren Bitcoin-Core-Versionen mit Ausnahmeregeln in den Richtlinien (Carve-outs), Transaktionen der Version 3 („TRUC“) und Package Relay reagiert sowie mit Ephemeral Anchors (Pay-to-Anchor-Outputs), die mit Bitcoin Core 28 und 29 ausgeliefert wurden. Damit kann eine Eltern-Transaktion mit niedriger Gebühr gemeinsam mit einem Kind mit hoher Gebühr als Paket weitergeleitet werden. Diese Gegenmaßnahmen verringern die Möglichkeit böswilliger Akteure, zeitkritische Transaktionen zu pinnen, beseitigen sie aber nicht vollständig; Pinning betrifft die Relay-Richtlinien, nicht den Konsens.
Kernfakten
- Child-Pays-for-Parent ermöglicht es einem Empfänger, eine eingehende Zahlung zu beschleunigen, indem er deren Output mit einer hohen Gebühr ausgibt.
- BIP125 ermöglicht die Signalisierung der Ersetzbarkeit über nSequence-Felder in den Transaktions-Inputs.
- Eine RBF-Ersatztransaktion muss mindestens die Gebühren aller verdrängten Transaktionen zahlen, zuzüglich eines Aufschlags für ihre eigene Größe, und das zu einer höheren Gebührenrate.
- CPFP funktioniert, weil Miner Eltern-Kind-Pakete anhand der kombinierten Gebührenrate inklusive Vorfahren bewerten.
- Bitcoin Core Version 28 machte die Akzeptanz von Full RBF zum Standardverhalten von Nodes.
- Neuere Bitcoin-Core-Versionen führen Package Relay und TRUC-Transaktionen (Version 3) ein, um Fee Bumping zuverlässiger gegen Pinning zu machen.
Übung neun, sechs, drei, eins
9SammelnListen Sie 9 Szenarien auf, in denen die Bestätigungsgeschwindigkeit einer Transaktion wichtig ist, von Einkäufen im Einzelhandel bis zur Schließung von Lightning-Channels. Notieren Sie jeweils die Frist und die Folgen, wenn sie verpasst wird.
6GruppierenGruppieren Sie die 9 in 6 Kategorien danach, wer die Transaktion beschleunigen kann: Sender, Empfänger, beide, ein Dritter, eine Protokollregel oder niemand.
3VerdichtenReduzieren Sie die 6 auf 3 grundlegende Gründe, warum eine Transaktion über ihre erwartete Bestätigungszeit hinaus im Mempool feststecken kann.
1KristallisierenSchreiben Sie 1 Satz, der erklärt, wie CPFP eine finanzielle Abhängigkeit zwischen zwei Parteien schafft, die einander nicht vertrauen.
Faktcheck
Datumsangaben, Zahlen und Behauptungen wurden mit den unten aufgeführten veröffentlichten Quellen abgeglichen.