/ home / newsletters /
Bitcoin Optech Newsletter #343
Der Newsletter dieser Woche fasst einen Beitrag darüber zusammen, dass Full Nodes Transaktionen ignorieren sollen, die ohne vorherige Anforderung weitergeleitet werden. Außerdem enthalten sind unsere regelmäßigen Abschnitte mit beliebten Fragen und Antworten aus dem Bitcoin Stack Exchange, Ankündigungen neuer Releases und Release-Kandidaten sowie Zusammenfassungen wichtiger Änderungen an beliebter Bitcoin-Infrastruktursoftware.
News
-
● Ignorieren unaufgeforderter Transaktionen: Antoine Riard postete auf Bitcoin-Dev zwei Entwürfe für BIPs, die es einem Node ermöglichen würden zu signalisieren, dass er keine
tx
-Nachrichten mehr akzeptiert, die nicht zuvor mit einerinv
-Nachricht angefordert wurden, sogenannte unaufgeforderte Transaktionen. Riard hatte die allgemeine Idee bereits 2021 vorgeschlagen (siehe Newsletter #136). Das erste vorgeschlagene BIP enthält einen Mechanismus, der es Knoten erlaubt, ihre Möglichkeiten zur Weiterleitung von Transaktionsrouting und Präferenzen zu signalisieren. Das zweite vorgeschlagene BIP verwendet diesen Signalisierungsmechanismus, um anzuzeigen, dass der Node unaufgeforderte Transaktionen ignorieren wird.Es gibt mehrere kleine Vorteile des Vorschlags, wie in einem Bitcoin Core Pull Request diskutiert, aber es widerspricht dem Design einiger älterer Lightweight-Clients und könnte Benutzer dieser Software daran hindern, ihre Transaktionen zu senden, so dass eine sorgfältige Implementierung erforderlich sein könnte. Obwohl Riard den erwähnten Pull Request eröffnete, schloss er ihn später wieder, nachdem er angedeutet hatte, dass er an seiner eigenen Full Node Implementierung auf Basis von libbitcoinkernel arbeiten wolle. Er deutete auch an, dass der Vorschlag helfen würde, einige der Angriffe zu adressieren, die er kürzlich offengelegt hatte (siehe Newsletter #332).
Ausgewählte Fragen und Antworten aus dem Bitcoin Stack Exchange
Bitcoin Stack Exchange ist einer der ersten Orte, an denen Optech-Mitwirkende nach Antworten auf ihre Fragen suchen - oder wenn wir ein paar freie Momente haben, um neugierigen oder verwirrten Benutzern zu helfen. In diesem monatlichen Feature heben wir einige der am besten bewerteten Fragen und Antworten hervor, die seit unserem letzten Update gepostet wurden.
-
● Was ist der Grund für die Einrichtung des loadtxsoutset RPC? Pieter Wuille erklärt, warum der Wert von assumeUTXO zur Darstellung des UTXO-Sets auf eine bestimmte Blockhöhe festgelegt ist, Möglichkeiten zur Verteilung von assumeUTXO-Snapshots in der Zukunft und die Vorteile von assumeUTXO im Vergleich zum einfachen Kopieren der internen Datenspeicher von Bitcoin Core.
-
● Gibt es Klassen von Pinning-Angriffen, die RBF-Regel #3 unmöglich macht? Murch weist darauf hin, dass RBF Regel #3 nicht dazu gedacht ist, Pinning Angriffe zu verhindern, und geht auf die Ersatzrichtlinie von Bitcoin Core ein.
-
● Unerwartete Locktime-Werte Benutzer polespinasa listet die verschiedenen Gründe auf, warum Bitcoin Core bestimmte nLockTime Werte setzt: auf
block_height
, um Fee Sniping zu vermeiden, einen zufälligen Wert unterhalb der Blockhöhe 10% der Zeit für die Privatsphäre oder 0, wenn die Blockchain nicht aktuell ist. -
● Warum ist es notwendig, ein Bit in einem Skriptpfad auszugeben und zu überprüfen, ob es mit der Parität der Y-Koordinate von Q übereinstimmt? Pieter Wuille erläutert die BIP341-Rationale, die Y-Koordinaten-Paritätsprüfung während des Taproot Skriptpfad-Ausgebens beizubehalten, um die potenzielle zukünftige Hinzufügung von Batch-Validierungsfunktionen zu ermöglichen.
-
● Warum verwendet Bitcoin Core Checkpoints und nicht den assumevalid Block? Pieter Wuille beschreibt die Geschichte der Checkpoints in Bitcoin Core und welchen Zweck sie erfüllten, und verweist auf einen offenen PR und die Diskussion über das Entfernen von Checkpoints.
-
● Wie geht Bitcoin Core mit langen Blockchain-Reorganisationen um? Pieter Wuille beschreibt, wie Bitcoin Core mit Reorganisationen der Blockchain umgeht und kommentiert, dass bei größeren Reorganisationen “das erneute Hinzufügen von Transaktionen zum Mempool nicht durchgeführt wird”.
-
● Was ist die Definition der discard feerate? Murch definiert die discard feerate als die maximale Feerate zum Verwerfen von Wechselgeld und fasst den Code zur Berechnung der discard feerate zusammen als “die 1000-Block-Ziel-Feerate, die auf 3–10 ṩ/vB beschnitten wird, wenn sie außerhalb dieses Bereichs liegt”.
-
● Policy zu Miniscript-Compiler Brunoerg stellt fest, dass die Liana-Wallet die Policy-Sprache verwendet und verweist sowohl auf die sipa/miniscript als auch auf die rust-miniscript Bibliotheken als Beispiele für Policy-Compiler.
Releases und Release-Kandidaten
Neue Releases und Release-Kandidaten für beliebte Bitcoin-Infrastrukturprojekte. Bitte erwägen Sie ein Upgrade auf neue Releases oder helfen Sie bei der Testung von Release-Kandidaten.
- ● Core Lightning 25.02rc3 ist ein Release-Kandidat für die nächste Hauptversion dieses beliebten LN-Nodes.
Wichtiger Code- und Dokumentationsänderungen
Wichtiger aktuelle Änderungen in Bitcoin Core, Core Lightning, Eclair, LDK, LND, libsecp256k1, Hardware Wallet Interface (HWI), Rust Bitcoin, BTCPay Server, BDK, Bitcoin Improvement Proposals (BIPs), Lightning BOLTs, Lightning BLIPs, Bitcoin Inquisition und BINANAs.
-
● Core Lightning #8116 ändert die Handhabung unterbrochener Kanalabschlussverhandlungen, um den Prozess auch dann erneut zu versuchen, wenn dies nicht erforderlich ist. Dies behebt ein Problem, bei dem ein Node, dem die
CLOSING_SIGNED
-Nachricht seines Peers fehlt, beim erneuten Verbinden einen Fehler erhält und eine einseitige Abschluss-Transaktion sendet. In der Zwischenzeit hat der Peer, der sich bereits im ZustandCLOSINGD_COMPLETE
befindet, die gegenseitige Abschluss-Transaktion gesendet, was potenziell zu einem Wettlauf zwischen den beiden Transaktionen führen kann. Diese Korrektur ermöglicht es, die Verhandlungen fortzusetzen, bis die gegenseitige Abschluss-Transaktion bestätigt ist. -
● Core Lightning #8095 fügt dem
setconfig
-Befehl eintransient
-Flag hinzu (siehe Newsletter #257), das dynamische Konfigurationsvariablen einführt, die vorübergehend angewendet werden, ohne die Konfigurationsdatei zu ändern. Diese Änderungen werden beim Neustart zurückgesetzt. -
● Core Lightning #7772 fügt dem
chanbackup
-Plugin einencommitment_revocation
-Hook hinzu, der dieemergency.recover
-Datei (siehe Newsletter #324) aktualisiert, wann immer ein neues Widerrufsgeheimnis empfangen wird. Dies ermöglicht es Benutzern, eine Straftransaktion zu senden, wenn sie Mittel mitemergency.recover
abheben, falls der Peer einen veralteten widerrufenen Zustand veröffentlicht hat. Dieser PR erweitert das statische Kanal-Backup SCB-Format und aktualisiert daschanbackup
-Plugin, um sowohl das neue als auch das alte Format zu serialisieren. -
● Core Lightning #8094 führt eine zur Laufzeit konfigurierbare
xpay-slow-mode
-Variable in dasxpay
-Plugin ein (siehe Newsletter #330), das die Rückgabe von Erfolg oder Misserfolg verzögert, bis alle Teile einer Multipath-Zahlung (MPP) aufgelöst sind. Ohne diese Einstellung könnte ein Fehlerstatus zurückgegeben werden, selbst wenn einige HTLCs noch ausstehen. Wenn ein Benutzer erneut versucht und die Rechnung von einem anderen Node erfolgreich bezahlt, könnte eine Überzahlung auftreten, wenn das ausstehende HTLC ebenfalls beglichen wird. -
● Eclair #2993 ermöglicht es dem Empfänger, die Gebühren für den geblendeten Teil eines Zahlungspfads zu übernehmen, während der Absender die Gebühren für den nicht geblendeten Teil übernimmt. Zuvor zahlte der Absender alle Gebühren, was es ihm ermöglichen könnte, den Pfad zu entschlüsseln und potenziell zu entblenden.
-
● LND #9491 fügt Unterstützung für kooperative Kanalabschlüsse hinzu, wenn aktive HTLCs mit dem
lncli closechannel
-Befehl verwendet werden. Wenn dies initiiert wird, wird LND den Kanal anhalten, um die Erstellung neuer HTLCs zu verhindern, und warten, bis alle bestehenden HTLCs aufgelöst sind, bevor der Verhandlungsprozess beginnt. Benutzer müssen den Parameterno_wait
festlegen, um dieses Verhalten zu aktivieren; andernfalls wird eine Fehlermeldung angezeigt, die sie auffordert, ihn anzugeben. Dieser PR stellt auch sicher, dass die Einstellungmax_fee_rate
für beide Parteien bei einem kooperativen Kanalabschluss durchgesetzt wird; zuvor wurde sie nur auf die entfernte Partei angewendet.