BIP 158 Flexibility and Filter Size



Summary:

The email thread discusses the comparison between the input script filter and the input outpoint filter, which is smaller due to address reuse. The ratio over time of combining the input prev script and output script filters versus keeping them separate is also analyzed. The graph shows that in recent blocks, there are decreasing savings. Jim Posen suggests constructing entirely separate filters for different types of elements and allowing clients to download only the ones they care about. He proposes three separate filter types, one for output scripts, one for input outpoints, and one for TXIDs, each signaled with a separate service bit. However, there are concerns about splitting up the filters, which may expose the client's interest and reduce anonymity set. Additionally, if a match is encountered, full nodes have more targeted insight into what caused a particular match. Conner Fromknecht agrees that bandwidth and privacy are always seemingly at odds, and he wants to ensure that the second order effects that fall out of optimizing for one metric when others exist are considered. Gregory Maxwell requests adding a graph of input-scripts instead of input outpoints. The attached graph provides information on filter sizes (as a proportion of block size) for each of the sub-filters. The graph shows that the filter compression converges pretty quickly to near the optimal value after block 120,000 or so. If there are enough elements per filter, the compression ratio shouldn't be much worse by splitting them up.


Updated on: 2023-06-13T02:26:42.676520+00:00