Neutrino, Taproot, and The Evolution of BiPs 157/158



Summary:

Last week, Neutrino nodes on testnet rejected a filter due to a faulty heuristic in the client code that attempted to verify the contents of a filter more completely. However, the client side and protocol are fine, and the problematic heuristic has been removed in lnd 0.14, which will be included in neutrino 0.13. To ensure that neutrino clients handle the Taproot upgrade on mainnet smoothly, users can upgrade to 0.14 or apply a small patch. In terms of adding more taproot specific functionality, there are a number of items that need to be considered. These include reviving old projects to include a micropayment-for-data layer to incentivize nodes to serve the filters and other data, creating new segwit-only filters with re-parameterized fp rates, creating filters that include witness data to allow matching on internal/external keys, the control block, merkle root, annex, etc., add a new protocol extension to btcd (with a corresponding BIP) to allow notes to fetch block undo data to fully verify fetched filters or a node needs to reconcile conflicting filters, new filters that span across multiple blocks as previously worked on by Kalle Alm, and making further progress towards a proposal that allows filters to be committed either as a soft-fork or a "velvet fork" where miners optionally commit to the past filter header chain.


Updated on: 2023-05-22T16:14:04.972364+00:00