A Bloom filter is an effective data structure that can be used to alert the investor whether a particular item is a part of a set. Although it cannot be guaranteed whether a given element is part of the set, it can be certain that it is not.
Due to their effective use of space, Bloom filters, which Burton Howard Bloom developed in 1970, are desirable for various applications. For example, they are essential to Simplified Payment Verification, or SPV, in several cryptocurrencies (most notably Bitcoin).
Users can communicate with the Bitcoin network without running a complete node by utilizing an SPV client. Due to their specific storage and processing needs, full nodes are cumbersome to run on low-powered devices like smartphones. While SPV clients merely ask full nodes for information pertaining to the user’s wallet (s).
The easiest way to communicate this information to the user would be to inform complete nodes of the client’s keys, ensuring that only relevant transactions are forwarded to them. This is obviously a poor option because the client’s privacy would be compromised. On the other hand, it would be a waste of bandwidth to download every transaction only to delete most of them. Here’s where Bloom filters come into play.