Committed bloom filters for improved wallet performance and SPV security



Summary:

Leo Wandersleb responded to a mail thread in which a user proposed to create deterministic Bloom filter digest of every block. Leo mentioned that he had independently started implementing a similar idea, but his version ignored the commitment and signing part. He believes that 80GB compressed to 3GB would be ideal, as it could be stored on a phone. However, with segWit, the higher transaction count per MB would make this worse. Bob McElrath suggested using Cuckoo filter instead of Bloom filter, as optimal filters are logarithmic in the false-positive rate and linear in the number of elements it contains for fixed false-positive rate. To prevent light clients from downloading more blocks than necessary, the false-positive rate should be roughly less than 1/(block height). The required size of the filter commitment would be N*log2H, where H is the block height. If bitcoin had these filters from the beginning, a light client today would have to download about 12MB of data in filters.


Updated on: 2023-06-11T04:56:47.242484+00:00