This BIP describes a new light client node type for Bitcoin as well as the modifications to current full-nodes required to support this new type of light client. The light client mode described in this BIP is meant to supersede BIP 37 as it provides a greater degree of privacy, utility, and also reduces the resources required for full-nodes to service this new light client mode compared to BIP 37. The light client mode described in this BIP can be seen as a “reversal” of BIP 37: rather than the light clients sending filters to full-nodes, full-nodes send filters to light clients. Unlike BIP 37, we don’t utilize bloom filters. Instead, we utilize a compact filter (more efficient than bloom filters) which leverages Golomb-Rice coding for compression. Additionally, blocks are downloaded as a whole (from any source), rather than directly from peers as fragments with merkle-branches proving their authenticity.
We’ve tested the implementation of both a light client implementing this BIP, as well as the serving full-node on Bitcoin’s testnet over the past several months. Additionally, this new operating mode also serves as the basis for our light weight Lightning node.