Simplified Payment Verification (SPV) is a technique that lets a lightweight client confirm that a transaction is included in a blockchain without downloading the entire chain, by holding only block headers and requesting a Merkle proof linking the transaction to a header’s Merkle root. Described in the original Bitcoin design, it trades the full validation guarantees of a complete node for drastically reduced storage and bandwidth, relying on the proof-of-work in headers and the honest-majority assumption. It is what makes mobile and embedded cryptocurrency wallets practical.

Overview

  • An SPV client stores the chain of block headers rather than every transaction, a tiny fraction of the full ledger.
  • To check a payment, it obtains a Merkle proof — the sibling hashes connecting the transaction to the Merkle root committed in a block header.
  • The presence of that header in the longest valid header chain, backed by accumulated proof-of-work, gives probabilistic assurance the transaction is confirmed.

Mechanisms

  • Header synchronisation: the client validates header proof-of-work and linkage.
  • Merkle path verification: recomputing hashes up the Merkle Tree to match the root.
  • Bloom filters (BIP 37) historically let SPV wallets request relevant transactions while preserving some privacy.

Applications

  • Mobile and embedded cryptocurrency wallets.
  • Resource-constrained or IoT blockchain clients.
  • Cross-chain bridges and light-client relays.

Provenance