{"id":16432,"date":"2021-05-19T15:11:52","date_gmt":"2021-05-19T15:11:52","guid":{"rendered":"http:\/\/ci02837e6ac0002458"},"modified":"2021-05-19T15:11:52","modified_gmt":"2021-05-19T15:11:52","slug":"bitcoin-optech-relay-reliability","status":"publish","type":"post","link":"https:\/\/bitcoinmagazine.com\/technical\/bitcoin-optech-relay-reliability","title":{"rendered":"Bitcoin Optech #149: Relay Reliability Workshops And More"},"content":{"rendered":"<div id=\"bsf_rt_marker\"><\/div><p><em>The Bitcoin Optech newsletter provides readers with a top-level summary of the most important technical news happening in Bitcoin, along with resources that help them learn more. To help our readers stay up-to-date with Bitcoin, we&#8217;re republishing the latest issue of this newsletter below. Remember to subscribe to receive this content straight to your inbox.<\/em><\/p>\n<p>This week\u2019s newsletter provides updates on the previously proposed transaction relay reliability workshop and CVE-2021-31876. Also included are our regular sections describing updates to services and client software, new releases and release candidates, and notable changes to popular Bitcoin infrastructure software.<\/p>\n<h2>News<\/h2>\n<ul>\n<li>Relay reliability workshop scheduled: as mentioned in <a href=\"https:\/\/bitcoinops.org\/en\/newsletters\/2021\/04\/28\/#call-for-topics-in-layer-crossing-workshop\" target=\"_blank\" rel=\"noopener\">Newsletter #146<\/a>, Antoine Riard will be hosting IRC-based meetings to discuss how to make unconfirmed transaction relay more reliable for contract protocols such as LN, coinswaps, and DLCs. The schedule is:<\/li>\n<ul>\n<li>Jun 15th, 19:00\u201320:30 UTC: guidelines about L2 protocols onchain security design; coordination of cross-layer security disclosures; full-RBF proposal<\/li>\n<li>June 22nd (same time): generic layer two fee bumping primitive (such as package relay)<\/li>\n<li>June 29th (same time): reserved for additional discussion<\/li>\n<\/ul>\n<li>CVE-2021-31876 BIP125 implementation discrepancy follow up: after the publication of <a href=\"https:\/\/bitcoinops.org\/en\/newsletters\/2021\/05\/12\/#cve-2021-31876-discrepancy-between-bip125-and-bitcoin-core-implementation\" target=\"_blank\" rel=\"noopener\">last week\u2019s newsletter<\/a>, there was additional discussion about the discrepancy between <a href=\"https:\/\/github.com\/bitcoin\/bips\/blob\/master\/bip-0125.mediawiki\" target=\"_blank\" rel=\"noopener\">BIP125<\/a> opt-in Replace-by-Fee (<a href=\"https:\/\/bitcoinops.org\/en\/topics\/replace-by-fee\/\" target=\"_blank\" rel=\"noopener\">RBF<\/a>) and Bitcoin Core\u2019s implementation. Olaoluwa Osuntokun <a href=\"https:\/\/github.com\/btcsuite\/btcd\/pull\/1719\" target=\"_blank\" rel=\"noopener\">confirmed<\/a> that the btcd full node implements BIP125 as specified, meaning it does allow child transactions to be replaced based on inherited signaling. Ruben Somsen <a href=\"https:\/\/lists.linuxfoundation.org\/pipermail\/bitcoin-dev\/2021-May\/018921.html\" target=\"_blank\" rel=\"noopener\">noted<\/a> that a hypothetical variation of spacechains, a type of one-way pegged <a href=\"https:\/\/bitcoinops.org\/en\/topics\/sidechains\/\" target=\"_blank\" rel=\"noopener\">sidechain<\/a>, would be affected by the problem. On the other hand, Antoine \u201cDarosior\u201d Poinsot <a href=\"https:\/\/lists.linuxfoundation.org\/pipermail\/bitcoin-dev\/2021-May\/018906.html\" target=\"_blank\" rel=\"noopener\">mentioned<\/a> that the Revault <a href=\"https:\/\/bitcoinops.org\/en\/topics\/vaults\/\" target=\"_blank\" rel=\"noopener\">vault<\/a> architecture wouldn\u2019t be affected.<\/li>\n<\/ul>\n<h2>Changes to services and client software<\/h2>\n<p><em>In this monthly feature, we highlight interesting updates to Bitcoin wallets and services.<\/em><\/p>\n<ul>\n<li>Blockchain.com supports segwit: <a href=\"https:\/\/github.com\/blockchain\/blockchain-wallet-v4-frontend\/releases\/tag\/v4.49.1\" target=\"_blank\" rel=\"noopener\">v4.49.1<\/a> of Blockchain.com\u2019s wallet adds the ability to create a wallet with native segwit send and receive support.<\/li>\n<li>Sparrow 1.4.0 released: <a href=\"https:\/\/github.com\/sparrowwallet\/sparrow\/releases\/tag\/1.4.0\" target=\"_blank\" rel=\"noopener\">Sparrow 1.4.0<\/a> adds the ability to create a <a href=\"https:\/\/bitcoinops.org\/en\/topics\/cpfp\/\" target=\"_blank\" rel=\"noopener\">child pays for parent (CPFP)<\/a> transaction from the transaction list screen, user-defined fee amounts during coin selection, and various other improvements.<\/li>\n<li>Electrum 4.1.0 enhances Lightning features: <a href=\"https:\/\/github.com\/spesmilo\/electrum\/blob\/4.1.0\/RELEASE-NOTES\" target=\"_blank\" rel=\"noopener\">Electrum 4.1.0<\/a> adds <a href=\"https:\/\/bitcoinops.org\/en\/topics\/trampoline-payments\/\" target=\"_blank\" rel=\"noopener\">trampoline payments<\/a>, <a href=\"https:\/\/bitcoinops.org\/en\/topics\/multipath-payments\/\" target=\"_blank\" rel=\"noopener\">multipath payments<\/a>, channel backups, and other Lightning features. Additionally, this version of Electrum supports <a href=\"https:\/\/bitcoinops.org\/en\/topics\/bech32\/\" target=\"_blank\" rel=\"noopener\">bech32m<\/a>.<\/li>\n<li>BlueWallet v6.1.0 released: BlueWallet\u2019s <a href=\"https:\/\/github.com\/BlueWallet\/BlueWallet\/releases\/tag\/v6.1.0\" target=\"_blank\" rel=\"noopener\">v6.1.0 release<\/a> adds Tor support, <a href=\"https:\/\/bitcoinops.org\/en\/newsletters\/2020\/02\/26\/#what-s-the-relationship-between-slip39-and-bip39\" target=\"_blank\" rel=\"noopener\">SLIP39<\/a> support, and functionality for using <a href=\"https:\/\/bitcoinops.org\/en\/topics\/psbt\/\" target=\"_blank\" rel=\"noopener\">PSBTs<\/a> with HD watch-only wallets.<\/li>\n<\/ul>\n<h2>Releases and release candidates<\/h2>\n<p><em>New releases and release candidates for popular Bitcoin infrastructure projects. Please consider upgrading to new releases or helping to test release candidates.<\/em><\/p>\n<ul>\n<li><a href=\"https:\/\/github.com\/lightningnetwork\/lnd\/releases\/tag\/v0.13.0-beta.rc2\" target=\"_blank\" rel=\"noopener\">LND 0.13.0-beta.rc2<\/a> is a release candidate that adds support for using a pruned Bitcoin full node, allows receiving and sending payments using Atomic MultiPath (<a href=\"https:\/\/bitcoinops.org\/en\/topics\/multipath-payments\/\" target=\"_blank\" rel=\"noopener\">AMP<\/a>), and increases its <a href=\"https:\/\/bitcoinops.org\/en\/topics\/psbt\/\" target=\"_blank\" rel=\"noopener\">PSBT<\/a> capabilities, among other improvements and bug fixes.<\/li>\n<\/ul>\n<h2>Notable code and documentation changes<\/h2>\n<p><em>Notable changes this week in <\/em><a href=\"https:\/\/github.com\/bitcoin\/bitcoin\" target=\"_blank\" rel=\"noopener\"><em>Bitcoin Core<\/em><\/a><em>, <\/em><a href=\"https:\/\/github.com\/ElementsProject\/lightning\" target=\"_blank\" rel=\"noopener\"><em>C-Lightning<\/em><\/a><em>, <\/em><a href=\"https:\/\/github.com\/ACINQ\/eclair\" target=\"_blank\" rel=\"noopener\"><em>Eclair<\/em><\/a><em>, <\/em><a href=\"https:\/\/github.com\/lightningnetwork\/lnd\/\" target=\"_blank\" rel=\"noopener\"><em>LND<\/em><\/a><em>, <\/em><a href=\"https:\/\/github.com\/rust-bitcoin\/rust-lightning\" target=\"_blank\" rel=\"noopener\"><em>Rust-Lightning<\/em><\/a><em>, <\/em><a href=\"https:\/\/github.com\/bitcoin-core\/secp256k1\" target=\"_blank\" rel=\"noopener\"><em>libsecp256k1<\/em><\/a><em>, <\/em><a href=\"https:\/\/github.com\/bitcoin-core\/HWI\" target=\"_blank\" rel=\"noopener\"><em>Hardware Wallet Interface (HWI)<\/em><\/a><em>, <\/em><a href=\"https:\/\/github.com\/rust-bitcoin\/rust-bitcoin\" target=\"_blank\" rel=\"noopener\"><em>Rust Bitcoin<\/em><\/a><em>, <\/em><a href=\"https:\/\/github.com\/btcpayserver\/btcpayserver\/\" target=\"_blank\" rel=\"noopener\"><em>BTCPay Server<\/em><\/a><em>, <\/em><a href=\"https:\/\/github.com\/bitcoin\/bips\/\" target=\"_blank\" rel=\"noopener\"><em>Bitcoin Improvement Proposals (BIPs)<\/em><\/a><em>, and <\/em><a href=\"https:\/\/github.com\/lightningnetwork\/lightning-rfc\/\" target=\"_blank\" rel=\"noopener\"><em>Lightning BOLTs<\/em><\/a><em>.<\/em><\/p>\n<ul>\n<li><a href=\"https:\/\/github.com\/bitcoin\/bitcoin\/issues\/21462\" target=\"_blank\" rel=\"noopener\">Bitcoin Core #21462<\/a> adds tooling for attesting to outputs of Guix builds and verifying these attestations against those of others. After this change, Windows and macOS code signing remain the only missing piece before Guix builds reach feature-parity with Gitian builds.<\/li>\n<li><a href=\"https:\/\/github.com\/bitcoin-core\/gui\/issues\/280\" target=\"_blank\" rel=\"noopener\">Bitcoin Core GUI #280<\/a> prevents displaying invalid Bitcoin addresses in an error dialog, eliminating the ability to display an arbitrary message in an official-looking dialog. A simple \u201cinvalid address\u201d error is now displayed instead. (See the PR for illustrative before and after screenshots.)<\/li>\n<li><a href=\"https:\/\/github.com\/bitcoin\/bitcoin\/issues\/21359\" target=\"_blank\" rel=\"noopener\">Bitcoin Core #21359<\/a> updates the fundrawtransaction, send and walletcreatefundedpsbt RPCs with a new include_unsafe parameter that can be used to spend unconfirmed UTXOs created by other users in the transaction. This allows fee bumping a transaction using <a href=\"https:\/\/bitcoinops.org\/en\/topics\/cpfp\/\" target=\"_blank\" rel=\"noopener\">CPFP<\/a> and was added for that reason by a developer working on implementing <a href=\"https:\/\/bitcoinops.org\/en\/topics\/anchor-outputs\/\" target=\"_blank\" rel=\"noopener\">anchor outputs<\/a> in the Eclair LN node. The option should only be used when necessary, as unconfirmed transactions created by other users can be replaced, which may prevent any child transactions from being confirmed.<\/li>\n<li><a href=\"https:\/\/github.com\/lightningnetwork\/lnd\/issues\/5291\" target=\"_blank\" rel=\"noopener\">LND #5291<\/a> improves the way LND ensures that <a href=\"https:\/\/bitcoinops.org\/en\/topics\/psbt\/\" target=\"_blank\" rel=\"noopener\">PSBTs<\/a> for funding transactions only spend segwit UTXOs. LN requires segwit UTXOs in order to prevent txid malleability from making refund transactions unspendable. LND previously checked this by looking for the WitnessUtxo field in the PSBT, but this field is technically optional for segwit UTXOs and so some PSBT creators don\u2019t provide it. The updated code will use the provided value if present or, if it\u2019s not present, scan the UTXO set for the necessary information.<\/li>\n<li><a href=\"https:\/\/github.com\/lightningnetwork\/lnd\/issues\/5274\" target=\"_blank\" rel=\"noopener\">LND #5274<\/a> limits the maximum amount of funds the node reserves to allow <a href=\"https:\/\/bitcoinops.org\/en\/topics\/cpfp\/\" target=\"_blank\" rel=\"noopener\">CPFP<\/a> fee bumping for <a href=\"https:\/\/bitcoinops.org\/en\/topics\/anchor-outputs\/\" target=\"_blank\" rel=\"noopener\">anchor outputs<\/a> to ten times the per-channel amount. For nodes with large numbers of channels, this limits their capital requirements. If they need to close more than 10 channels, they can use the funds received from closing one channel to close the next channel in a domino effect.<\/li>\n<li><a href=\"https:\/\/github.com\/lightningnetwork\/lnd\/issues\/5256\" target=\"_blank\" rel=\"noopener\">LND #5256<\/a> allows reading the wallet passphrase from a file. This is mainly meant for container-based setups where the passphrase is already stored in a file, so using that file directly doesn\u2019t create any additional security problems.<\/li>\n<li><a href=\"https:\/\/github.com\/lightningnetwork\/lnd\/issues\/5253\" target=\"_blank\" rel=\"noopener\">LND #5253<\/a> adds support for <a href=\"https:\/\/bitcoinops.org\/en\/topics\/multipath-payments\/\" target=\"_blank\" rel=\"noopener\">Atomic Multipath Payment (AMP)<\/a> invoices across high-level LND RPC commands such as SendPayment, AddInvoice, and SubscribeInvoice. AMP invoices are currently an LND-only feature and only accept HTLCs that have the AMP feature bits set as well as an AMP payload. This extends <a href=\"https:\/\/bitcoinops.org\/en\/newsletters\/2021\/05\/05\/#lnd-5159\" target=\"_blank\" rel=\"noopener\">prior work<\/a> that enabled use of AMP by providing manually specfied payment parameters to the SendPayment RPC.<\/li>\n<li><a href=\"https:\/\/github.com\/bitcoin-core\/secp256k1\/issues\/850\" target=\"_blank\" rel=\"noopener\">Libsecp256k1 #850<\/a> adds a secp256k1_ec_pubkey_cmp method that compares two public keys and returns which one of them sorts earlier than the other (or returns that they\u2019re equal). This was proposed for use with <a href=\"https:\/\/github.com\/bitcoin\/bips\/blob\/master\/bip-0067.mediawiki\" target=\"_blank\" rel=\"noopener\">BIP67<\/a> key sorting, in particular as used with the sortedmulti <a href=\"https:\/\/bitcoinops.org\/en\/topics\/output-script-descriptors\/\" target=\"_blank\" rel=\"noopener\">output script descriptor<\/a>.<\/li>\n<\/ul>\n<p>Find the <a href=\"https:\/\/bitcoinops.org\/en\/newsletters\/2021\/05\/19\/\" target=\"_blank\" rel=\"noopener\">original post here.<\/a> <\/p>\n<p>Please <a href=\"https:\/\/bitcoinops.org\/en\/newsletters\/\" target=\"_blank\" rel=\"noopener\">subscribe to the Bitcoin Optech newsletter<\/a> directly to receive this content straight to your inbox every month.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>This week\u2019s newsletter discussed the previously proposed transaction relay reliability workshop, updates to Bitcoin software and more.<\/p>\n","protected":false},"author":3246,"featured_media":10844,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[35],"tags":[227,2887],"class_list":["post-16432","post","type-post","status-publish","format-standard","has-post-thumbnail","category-technical","tag-bitcoin-core","tag-bitcoin-optech"],"author_data":{"id":3246,"name":"Bitcoin Optech","nicename":"bitcoin-optech","avatar_url":"https:\/\/bitcoinmagazine.com\/wp-content\/uploads\/2024\/12\/optech-notext-96x96.png"},"featured_image_url":"https:\/\/bitcoinmagazine.com\/wp-content\/uploads\/2024\/11\/cybersecurity-firm-reports-all-fortune-500-companies-exposed-on-the-dark-web.jpg","_links":{"self":[{"href":"https:\/\/bitcoinmagazine.com\/wp-json\/wp\/v2\/posts\/16432","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/bitcoinmagazine.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/bitcoinmagazine.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/bitcoinmagazine.com\/wp-json\/wp\/v2\/users\/3246"}],"replies":[{"embeddable":true,"href":"https:\/\/bitcoinmagazine.com\/wp-json\/wp\/v2\/comments?post=16432"}],"version-history":[{"count":0,"href":"https:\/\/bitcoinmagazine.com\/wp-json\/wp\/v2\/posts\/16432\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/bitcoinmagazine.com\/wp-json\/wp\/v2\/media\/10844"}],"wp:attachment":[{"href":"https:\/\/bitcoinmagazine.com\/wp-json\/wp\/v2\/media?parent=16432"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/bitcoinmagazine.com\/wp-json\/wp\/v2\/categories?post=16432"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/bitcoinmagazine.com\/wp-json\/wp\/v2\/tags?post=16432"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}