Filtr Bloom to struktura danych, która umożliwia komputerom sprawdzenie, czy dany element występuje w zbiorze. Filtry Bloom używają w tym celu funkcji hash. Dla każdego dodanego elementu obliczana jest wartość haszu. Gdy dodawany jest nowy element, jego wartość hash jest porównywana z wartością innych elementów w zbiorze. Filtr Bloom to probabilistyczna struktura danych. Można uzyskać wartość fałszywie dodatnią, ale nie można uzyskać fałszywie ujemną. Innymi słowy, zapytanie zwraca albo "ewentualnie w zestawie" albo "zdecydowanie nie w zestawie". Elementy mogą być dodane do zestawu, ale nie usunięte. Dla każdego dodanego elementu rośnie prawdopodobieństwo otrzymania fałszywego pozytywu.
Edward Bloom zaproponował filtr Bloom w 1970 roku. W artykule Bloom zakłada, że na końcu wiersza znajduje się algorytm pozwalający na łączenie słów. Według przykładu, większość słów ma proste wzorce myślenia hipenatycznego. Ale około 10% słów wymaga czasochłonnych poszukiwań, aby uzyskać właściwą regułę. Jego przypadek to łączenie około 500.000 słów. Widział, że użycie "normalnych", bezbłędnych technik haszyszowania, przechowywanie wzorów myślenia wymagałoby dużej ilości pamięci. Odkrył, że używając swojej techniki, mógł wyeliminować większo¶ć lookupsów. Dla przykładu, obszar haszyszu tylko 15% rozmiaru wymaganego przez idealny bezbłędny haszysz nadal eliminuje 85% dostępu do dysku.
Ogólnie rzecz biorąc, mniej niż 10 bitów na element jest wymagane dla 1% fałszywie dodatniego prawdopodobieństwa, niezależnie od wielkości lub liczby elementów w zestawie.