Paper 2014/763

On the Privacy Provisions of Bloom Filters in Lightweight Bitcoin Clients

Arthur Gervais, Ghassan O. Karame, Damian Gruber, and Srdjan Capkun


Lightweight Bitcoin clients are gaining increasing adoption among Bitcoin users, owing to their reduced resource and bandwidth consumption. These clients support a simplified payment verification (SPV) mode as they are only required to download and verify a part of the block chain — thus supporting the usage of Bitcoin on constrained devices, such as smartphones. SPV clients rely on Bloom filters to receive transactions that are relevant to their local wallet. These filters embed all the Bitcoin addresses used by the SPV clients, and are outsourced to more powerful Bitcoin nodes which then only forward to those clients transactions relevant to their outsourced Bloom filters. In this paper, we explore the privacy of existing SPV clients. We show analytically and empirically that the reliance on Bloom filters within existing SPV clients leaks considerable information about the addresses of Bitcoin users. Our results show that an SPV client who uses a modest number of Bitcoin addresses (e.g., < 20) risks revealing almost all of his addresses. We also show that this information leakage is further exacerbated when users restart their SPV clients and/or when the adversary has access to more than one Bloom filter pertaining to the same SPV client. Motivated by these findings, we propose an efficient countermeasure to enhance the privacy of users which rely on SPV clients; our proposal can be directly integrated within existing SPV client implementations.

Available format(s)
Publication info
Published elsewhere. Minor revision. ACSAC 2014
Contact author(s)
arthur gervais @ inf ethz ch
2014-10-13: last of 2 revisions
2014-09-30: received
See all versions
Short URL
Creative Commons Attribution


      author = {Arthur Gervais and Ghassan O.  Karame and Damian Gruber and Srdjan Capkun},
      title = {On the Privacy Provisions of Bloom Filters in Lightweight Bitcoin Clients},
      howpublished = {Cryptology ePrint Archive, Paper 2014/763},
      year = {2014},
      doi = {10.1145/2664243.2664267},
      note = {\url{}},
      url = {}
Note: In order to protect the privacy of readers, does not use cookies or embedded third party content.