This week’s newsletter summarizes a discussion about output tagging for BIP118 SIGHASH_NOINPUT_UNSAFE, announces merges that will make it possible to pair Bitcoin Core’s built-in wallet in watching-only mode with a hardware wallet, and describes the completion of the feature freeze for the next Bitc...
## Bitcoin OpTech #34 Podcast Summary: Hardware Wallet Integration & Core Development Updates
This podcast episode, part of the Bitcoin OpTech newsletter series (Issue #34, dated February 19, 2019), dives deep into recent developments and upcoming changes within the Bitcoin Core project. The discussion centers around output tagging, hardware wallet integration, and a range of new RPCs and usability improvements designed to enhance security, functionality, and compatibility. The team is currently in a feature freeze for Bitcoin Core 0.18, focusing on testing and bug fixes before the anticipated release in approximately two weeks. Looking ahead, features for Bitcoin Core 0.19, slated for release in October 2019, require pull request submissions and reviews within the next two months.
Main Topics Discussed:
- Output Tagging (SIGHASH_NOINPUT): The use of bit 118 (SIGHASH_NOINPUT) for output tagging was discussed, highlighting potential replay attack risks. A proposal by Jonas Lau aims to restrict its use to tagged outputs to mitigate these risks, requiring agreement between spender and receiver. This impacts Layer 2 protocols like the Lightning Network.
- Hardware Wallet Integration: Bitcoin Core is nearing completion of preliminary hardware wallet support, enabling transactions to be sent and received via a command-line interface tool (HWIA). This integration allows for importing public keys into the key pool for generating receiving and change addresses, particularly useful for wallets with disabled private keys.
- Feature Freeze & Upcoming Releases: The project is currently in a feature freeze for Bitcoin Core 0.18, with a release expected in two weeks. Features for Bitcoin Core 0.19 are being considered, with a target release in October 2019.
- Partially Signed Bitcoin Transactions (PSBT) Enhancements: Three new RPCs (`UTXO update PSBT`, `join partially signed Bitcoin transaction`, and `analyze PSBT`) were introduced to manage PSBTs, improving the workflow for complex transactions.
- Key Pool Management & Metadata: The `importmulti` RPC now allows importing public keys into the key pool and stores key origin metadata (hardware seed and derivation path), enhancing hardware wallet compatibility.
- Witness Script Handling & Compatibility: Updates to several RPCs now include a witness script field for improved data handling and compatibility. The system also falls back on BIP 21 parsing for Bitcoin URIs if BIP 70 support is disabled.
- Usability Improvements: A graphical user interface menu was added for opening and closing wallets, and support for both uppercase and lowercase payment requests (invoices) was implemented, enforcing the BIP 173 standard.
Key Quotes:
- "One way to help avoid such accidents is simply to append the unsafe to the name of the feature and encouraging developers to learn about the protocol nuances before they implement it in their tools." (Regarding the potential risks of SIGHASH_NOINPUT)
- "This information is required by PSBT signers because the BIF 148 signature format for a secret requires the signing of information that is not directly contained in the spending transaction or derivable from the signers private key, such as the value of the output being spent." (Explaining the necessity of the `UTXO update PSBT` RPC)
- "This allows a user of a cold wallet or a hardware wallet to import their public key into a watching only Bitcoin core wallet and then receive payments normally." (Describing the benefits of the new key pool functionality)
People Mentioned:
- Jonas Lau: Proposed restrictions on the use of SIGHASH_NOINPUT.
- Bitcoin OpTech Contributors: Various contributors to the Bitcoin OpTech newsletter and the Bitcoin Core project were acknowledged.
Bitcoin Price:
- No Bitcoin prices were mentioned during this podcast episode.