BIP Proposal: Compact Client Side Filtering for Light Clients



Summary:

On June 1, 2017, Olaoluwa Osuntokun and Alex Akselrod proposed a new light client BIP for consideration. The proposal is a concrete specification along with reference implementations for the much discussed client-side filtering reversal of BIP-37. The primary motivation for this work was enabling a light client mode for lnd in order to support a more lightweight back end paving the way for the usage of Lightning on mobile phones and other devices. They integrated neutrino as a back end for lnd, and will be making the updated code public very soon.The proposal uses a fixed false-positive rate specified as P = 1/2^20. They have done analysis and optimization attempting to optimize the filter_download_bandwidth + expected_block_false_positive_bandwidth. Alex has made a JS calculator that allows people to explore the effect of tweaking the false positive rate in addition to the following variables: the number of items the wallet is scanning for, the size of the blocks, number of blocks fetched, and the size of the filters themselves. They would like feedback on the parameter selection. Unlike BIP-37 which allows clients to dynamically tune their false positive rate, their proposal uses a fixed false-positive. The proposal creates a Golomb-Coded set with the contents being hashes (they use siphash) of the filter items. In order to consider the average+median filter sizes in a world worth larger blocks, they also ran the index for testnet. For those interested in the raw data, they uploaded a CSV file of raw data for each block (mainnet + testnet). They look forward to getting feedback from all.


Updated on: 2023-06-12T01:29:49.583283+00:00