Mit Package Relay können Bitcoin-Knoten zusammenhängende, unbestätigte Transaktionen gemeinsam übertragen und prüfen. Das hilft etwa, wenn die erste Transaktion zu wenig Gebühr bietet, eine weitere, die ihren Output ausgibt, aber genug für beide hinzufügt. Gültigkeit und lokale Regeln gelten weiterhin; die gemeinsame Prüfung garantiert keine Bestätigung.
Anna wartet auf eine Bitcoin-Zahlung. Der Absender hat eine niedrige Gebühr gewählt, inzwischen ist die Nachfrage nach Blockplatz gestiegen. Ein Block bündelt Transaktionen, die in die gemeinsame Historie aufgenommen werden. Ein Knoten ist ein Programm, das Transaktionen und Blöcke prüft und sich mit anderen Netzwerkteilnehmern austauscht. Manche Knoten nehmen die Transaktion deshalb nicht in ihren Mempool auf, ihre lokale Sammlung unbestätigter Transaktionen. Anna möchte über eine Folgetransaktion eine Gebühr hinzufügen. Diese gibt jedoch Coins aus, von deren Eingang der ablehnende Knoten noch nichts weiß. Package Relay hilft, diese Lücke zu schließen: Der Knoten erhält den nötigen Zusammenhang und muss nicht allein die erste, niedrig vergütete Transaktion beurteilen. [1] [6]
Die erste Transaktion heißt Parent, diejenige, die ihren Output ausgibt, Child. Anna kann ein Child erstellen, wenn sie die Ausgabebedingungen eines Parent-Outputs erfüllen kann: eines konkreten Betrags, der weiter ausgegeben werden kann. Sie könnte die erhaltenen Coins an eine andere eigene Adresse schicken und einen Teil als Gebühr verwenden. Das ist CPFP (Child Pays for Parent): Die höhere Gebühr des Child kann die Bestätigung beider fördern. Package Relay hilft beim Übertragen und Prüfen; es bezahlt nichts, unterschreibt nichts und verschafft keinen Zugriff auf fremde Coins. [1] [5]
Ein Parent sei 200 vB groß und zahle 200 sat, das Child sei 100 vB groß und zahle 1300 sat. Ein vByte (vB) misst die virtuelle Transaktionsgröße, die üblicherweise zur Gebührenberechnung dient; ein sat ist eine kleine Bitcoin-Einheit. Zusammen sind das 1500 sat für 300 vB, also 5 sat/vB. Das ist nicht der einfache Durchschnitt der einzelnen Sätze von 1 und 13 sat/vB. Wir betrachten nur diese beiden noch nicht aufgenommenen Transaktionen, ohne weitere unbestätigte Vorfahren und lokale Gebührenanpassungen. Bereits aufgenommene Transaktionen zählt ein Knoten nicht erneut; entscheidend ist die tatsächlich geprüfte Gruppe von Abhängigkeiten. [5] [3]
Ein Input des Child verweist auf einen Output des Parent. Beide gemeinsam zu prüfen kann sinnvoll sein; fehlende Vorgeschichte lässt sich dadurch nicht überspringen. In der Liste steht jeder enthaltene Parent vor seinem Child. Das nennt sich topologische Reihenfolge. Signaturen und alle anderen Gültigkeitsregeln werden weiterhin geprüft. Eine digitale Signatur weist die Berechtigung zur Zahlung nach. Sie wird mit einem privaten Schlüssel erzeugt, also einem geheimen Zahlenwert, der dabei nicht offengelegt wird. Zwei Transaktionen, die dieselben Coins ausgeben, werden durch eine zusätzliche Gebühr nicht miteinander vereinbar. Grenzen für Anzahl, Größe und Aufbau eines Pakets begrenzen außerdem die Arbeit des Knotens; sie erlauben keine beliebig lange Transaktionskette. [5] [3] [7]
Eine Wallet ist eine Anwendung oder ein Gerät zum Empfangen und Senden von Bitcoin. Empfang heißt, dass ein Knoten die Daten erhalten hat. Annahme heißt, dass er sie nach seinen Regeln in den Mempool aufgenommen hat. Bestätigung erfordert die Aufnahme in einen Block. Jeder Knoten hat seinen eigenen Mempool; ein lokaler Erfolg sagt nichts über den Nachbarn aus. In Bitcoin Core 28.0 kann der gemeinsame Gebührensatz das bewegliche Minimum eines vollen Mempools überwinden, hebt aber nicht generell das gesonderte Weiterleitungsminimum auf. Für TRUC Transactions, einen besonders eingeschränkten Transaktionstyp, gibt es in dieser Version eine Ausnahme. Ein teures Child rettet daher nicht jeden denkbaren Parent. [2] [5] [8]
BIP 331 von Gloria Zhao beschreibt das Aushandeln der Unterstützung sowie Nachrichten zum Anfordern von Vorfahreninformationen und Transaktionsdaten. Das ist ein umfassenderer Vorschlag. Bitcoin Core 28.0 dokumentierte eine begrenzte Paarbildung aus einem Parent und einem Child über das bestehende Netzwerkprotokoll. Die lokale Programmierschnittstelle RPC konnte auch ein Child mit mehreren unabhängigen Parents annehmen; das bedeutete jedoch keine gleichwertige Weiterleitung zwischen Knoten. Diese Angaben betreffen genau diese Version. Bei einer anderen sind deren Dokumentation und die Fähigkeiten des Gegenübers zu prüfen. [1] [2]
Der Befehl submitpackage in Bitcoin Core 28.0 übergibt ein vorbereitetes Paket an den lokalen Knoten. Erwartet werden ein Child und seine unbestätigten Parents, die nicht voneinander abhängen, mit dem Child am Ende. Lesen Sie package_msg zusammen mit den einzelnen tx-results. Der Knoten kann einen Teil des Pakets annehmen; ein Fehler entfernt bereits angenommene Transaktionen nicht automatisch wieder aus dem Mempool. Selbst ein Gesamterfolg beweist weder die Verbreitung im Netzwerk noch eine Bestätigung. Der Befehl ist kein allgemeiner Zahlungsbeschleuniger: Er benötigt korrekt aufgebaute Transaktionen, nicht bloß Adressen. [3]
In einer getrennten Testumgebung prüft testmempoolaccept die Annahme, ohne etwas zu senden. Scheitert eine andere Transaktion, kann allowed fehlen, weil die betreffende Transaktion nicht vollständig geprüft wurde. Der Testaufruf und submitpackage haben zudem nicht genau dieselben Bedingungen. Halten Sie Version, Einstellungen, Abhängigkeiten, Größen und Gebühren fest und beobachten Sie gesondert die Annahme bei einem weiteren Knoten. Zeitkritische Transaktionen im Lightning Network verlangen weiterhin rechtzeitiges Handeln: Package Relay allein beseitigt weder Überlastung noch unregelmäßige Blockabstände oder Pinning, also das gezielte Ausnutzen von Mempool-Regeln, um eine Gebührenerhöhung zu erschweren. [4] [2] [1]
Für ein möglichst vollständiges Bild lies diesen Eintrag zusammen mit Mempool, CPFP (Child Pays for Parent), Fee Rate, Replace-by-Fee (RBF), Lightning Network, vByte. Auf diesen Eintrag verweisen außerdem CPFP (Child Pays for Parent), Gloria Zhao, Cluster Mempool, TRUC Transactions.