Bloom filtresi, bilgisayarların belirli bir öğenin bir kümede bulunup bulunmadığını görmesini sağlayan bir veri yapısıdır. Bloom filtreleri bunu yapmak için hash fonksiyonlarını kullanır. Eklenen her eleman için bir hash değeri hesaplanır. Yeni bir eleman eklendiğinde, hash değeri kümedeki diğer elemanlarınki ile karşılaştırılır. Bloom filtresi olasılıksal bir veri yapısıdır. Yanlış pozitif elde etmek mümkündür, ancak yanlış negatif elde etmek mümkün değildir. Başka bir deyişle, bir sorgu ya "muhtemelen kümede" ya da "kesinlikle kümede değil" sonucunu verir. Elemanlar kümeye eklenebilir, ancak çıkarılamaz. Eklenen her eleman için yanlış pozitif alma olasılığı artar.

Edward Bloom 1970 yılında Bloom filtresini önermiştir. Makalede Bloom, bir satırın sonundaki kelimeleri tirelemek için bir algoritma olduğunu varsaymaktadır. Örneğe göre, çoğu kelime basit tireleme modellerine sahiptir. Ancak kelimelerin yaklaşık %10'u doğru kuralı bulmak için zaman alıcı aramalar gerektirmektedir. Bu örnekte yaklaşık 500.000 kelimenin tirelenmesi söz konusuydu. "Normal" hatasız hashing tekniklerini kullanarak tireleme kalıplarını depolamanın çok fazla bellek gerektireceğini gördü. Kendi tekniğini kullanarak çoğu aramayı ortadan kaldırabileceğini keşfetti. Örneğin, ideal hatasız bir hash için gereken boyutun yalnızca %15'i kadar bir hash alanı yine de disk erişimlerinin %85'ini ortadan kaldırmaktadır.

Daha genel olarak, kümedeki öğelerin boyutundan veya sayısından bağımsız olarak %1 yanlış pozitif olasılığı için öğe başına 10 bitten daha azı gereklidir.