This document describes Bloom filters, which provide an approximate and space-efficient way to check for set membership. A Bloom filter uses a bit array and k independent hash functions to represent a set S of m elements from a universe U. To check if an element x is in S, its k hash values are checked in the bit array - if any are 0, x is definitely not in S, but if all are 1, x is assumed to be in S, allowing for false positives. The probability of a false positive can be minimized by optimizing the number of hash functions k to be ln(2)*(n/m), where n is the size of the bit array. When optimized, a Bloom filter provides an efficient randomized