← Back to Glossary

Simplified Payment Verification (SPV)

Simplified payment verification, or SPV, is a method for confirming that a bitcoin transaction is included in the blockchain without downloading and validating the entire chain. Described in section 8 of the original bitcoin white paper, an SPV client stores only block headers, 80 bytes per block, rather than the hundreds of gigabytes a full node holds.

Why it matters

SPV is what makes bitcoin usable on phones and low-powered devices. A wallet that had to validate every transaction since 2009 would be impractical for most users, so lightweight verification lets billions of potential devices check payments against the weight of the world's proof-of-work. The trade-off is trust: an SPV client verifies that miners committed to a transaction but not that the transaction obeys every consensus rule, so it relies on the assumption that the majority of hashrate is honest, and naive implementations leak privacy by revealing which addresses they care about to the servers they query.

How it works

Every block header contains a Merkle root summarizing all transactions in that block. To prove a payment, a full node supplies a Merkle proof, a short branch of hashes connecting the transaction to the root, which the SPV client checks against its header chain. The proof grows only logarithmically, so a block with thousands of transactions needs a path of only a dozen or so hashes. Later refinements such as compact block filters improved on the original model, letting clients fetch entire filtered blocks without disclosing their addresses. The concept also underpins how some sidechain and light client designs verify events on chains they do not fully run.

Ready to convert your gold to Bitcoin?

Get Your Free Kit →