Glossar / Transaktionen und Gebühren
Package Relay
- Was ist Package Relay?
- Package Relay ermöglicht es einem Node, eine Gruppe zusammengehöriger unbestätigter Transaktionen gemeinsam anzunehmen, damit ein Kind mit hoher Gebühr ein Elternteil mitbringen kann, das das Netzwerk sonst ablehnen würde.
Spezifiziert im BIP-331.
Package Relay ist die Lösung für eine Diskrepanz, die jahrelang bestand: Miner bewerteten Gruppen, während das Netzwerk, das ihnen Transaktionen zuführte, jede einzeln bewertete. Bitcoin Core 28.0, veröffentlicht im Oktober 2024, führte die opportunistische Weitergabe für den Fall eines Elternteils mit einem Kind ein, und BIP 331 spezifiziert die allgemeine Version. Wenn Sie schon einmal eine feststeckende eingehende Zahlung per Gebührenerhöhung beschleunigt haben und sahen, wie die Erhöhung verschwand, liegt hier der Grund.
So funktioniert es
Ein Node entscheidet in der Sekunde, in der eine Transaktion eintrifft, ob er sie behält, und während des größten Teils der Geschichte von Bitcoin traf er diese Entscheidung, ohne irgendetwas über das zu wissen, woran die Transaktion hing.
Stellen Sie sich den Fehlerfall vor. Ein Elternteil trifft ein und zahlt weniger, als der Node derzeit verlangt, und wird verworfen statt gespeichert. Ein Kind trifft Augenblicke später ein und gibt einen Output dieses Elternteils aus, und ohne Aufzeichnung des Elternteils kann der Node auch das Kind nicht validieren, sodass es in einem kleinen Pool verwaister Transaktionen landet, standardmäßig etwa hundert Transaktionen tief, und vergessen wird. Die Gebühr, die das Kind trug, wird nie gezählt. Vorfahrenbewusstes Mining, in Bitcoin Core seit 2016, konnte nicht helfen, weil nie etwas einen Miner erreichte.
Die opportunistische Weitergabe von einem Elternteil und einem Kind schließt die häufige Version dieses Lochs. Taucht eine verwaiste Transaktion auf, deren fehlendes Elternteil kürzlich abgelehnt wurde, weil es zu wenig zahlte, prüft der Node die beiden erneut als Einheit, beurteilt sie nach der gemeinsamen Gebühr bezogen auf die gemeinsame Größe und akzeptiert beide, wenn das Paar die Hürde nimmt. Der Umfang ist bewusst eng: ein Elternteil, ein Kind. Ein Stapel mit mehreren zu billigen Elternteilen bleibt außer Reichweite.
BIP 331 definiert den allgemeinen Mechanismus: Peers kündigen Unterstützung mit einer sendpackages-Nachricht während des Handshakes an und verwenden dann ancpkginfo, getpkgtxns und pkgtxns, um den vollständigen Vorfahrensatz einer Transaktion anzufordern, bevor sie irgendeinen Teil davon beurteilen. Sie können eine Gruppe bereits mit dem RPC submitpackage an Ihren eigenen Node übergeben, begrenzt auf 25 Transaktionen und 101 Kilovbytes.
Die Protokolle, die dies am meisten brauchen, signieren ihre Transaktionen lange vor dem Broadcast. Eine Lightning-Commitment-Transaktion wird Monate vor dem Tag vereinbart, an dem sie möglicherweise verwendet wird, wenn niemand weiß, wie hoch die Gebühren sein werden, sodass das moderne Design sie mit einer Gebühr von null oder nahe null signiert und die Seite, die sie braucht, die Gebühr über einen Anker-Output anhängen lässt. Das funktioniert nur, wenn das Commitment und sein gebührenzahlendes Kind als Einheit reisen. Dieselbe Version fügte TRUC-Transaktionen hinzu, spezifiziert in BIP 431, die die Topologie einschränken, damit ein Angreifer das Paar nicht unter Müll begraben kann.
Wo Ihnen das begegnet
Package Relay ist unsichtbar, wenn es funktioniert, und was Sie bemerken, ist sein Fehlen: Die Frage, die über Ihre Möglichkeiten entscheidet, ist, ob das feststeckende Elternteil irgendwo existiert.
Wenn das Elternteil in Mempools liegt und langsam bestätigt wird, genügt eine gewöhnliche Gebührenerhöhung, und kein Paket ist beteiligt. Package Relay ist für den schwierigeren Fall gedacht, in dem eine Börse ihren Auszahlungsstapel unterhalb des geltenden Mindestwerts gebaut hat, kein Node eine Kopie behielt und nichts, was Sie von Ihrer Seite zahlen, eine Transaktion rettet, die das Netzwerk nie angenommen hat.
Suchen Sie die Transaktions-ID auf zwei oder drei unabhängigen Block-Explorern, da jeder den Mempool seines eigenen Nodes meldet. Nichts nirgends bedeutet nichts zum Erhöhen, und die Lösung liegt beim Absender. Lightning-Nutzer begegnen derselben Maschinerie bei Force Closes, wo ein Commitment mit null Gebühr plus das Ausgeben des Ankers heute der Standardweg aus einem Kanal ist.
Eine ehrliche Einschränkung: Verbesserungen der Weitergabe gelten nur zwischen Peers, die sie ausführen, sodass die Verbreitung von der Akzeptanz im gesamten Netzwerk abhängt und nicht von der Version Ihres eigenen Nodes.
Package Relay vs. Child Pays for Parent
Child Pays for Parent ist die Strategie, und Package Relay ist die Infrastruktur, die sie zum Ziel bringt. Das Erste beschreibt das Anhängen eines gut bezahlten Kindes, damit ein Miner beide nimmt; das Zweite ist die Fähigkeit des Netzwerks, dieses Paar als ein Objekt zu bewegen und zu beurteilen. Sie können die Strategie ohne Package Relay nutzen, wann immer das Elternteil bereits in Mempools liegt, was die meisten feststeckenden Zahlungen abdeckt. Package Relay ist das, was die Technik funktionieren lässt, wenn das Elternteil billiger bepreist ist, als das Netzwerk weiterleiten will.