Skip to main content

SPV Node | Bitcoin Glossary | Mapping Bitcoin

SPV Node

Protocol

Also known as: light client, lightweight node, thin client

A lightweight Bitcoin node that verifies transactions using Simplified Payment Verification rather than downloading and validating the entire blockchain. SPV nodes are common in mobile wallets, trading lower security guarantees for reduced bandwidth and storage requirements.

Overview

An SPV node implements the Simplified Payment Verification method described in the Bitcoin whitepaper to verify transactions without storing the complete blockchain. Instead of downloading every block (hundreds of gigabytes), an SPV node only downloads block headers (approximately 80 bytes per block), making it practical to run on mobile phones and resource-constrained devices.

How SPV Nodes Operate

Full Node                          SPV Node
┌─────────────────────┐           ┌─────────────────────┐
│ All Block Headers   │           │ All Block Headers   │
│ All Transactions    │           │ (only ~60 MB)       │
│ Full UTXO Set       │           │                     │
│ Complete Validation │           │ Merkle Proofs for   │
│ (~500+ GB)          │           │ own transactions    │
└─────────────────────┘           └─────────────────────┘
         |                                  |
  Validates everything              Trusts longest chain
  independently                     has valid transactions

When an SPV node needs to verify a transaction, it connects to one or more full nodes and requests a Merkle proof demonstrating that the transaction is included in a specific block. The SPV node verifies this proof against the block header's Merkle root.

Security Trade-offs

SPV nodes rely on the assumption that the chain with the most accumulated proof-of-work contains only valid transactions. They cannot independently verify:

  • Whether a transaction's inputs are valid and unspent
  • Whether the block subsidy is correct
  • Whether all consensus rules are properly followed

This means SPV nodes are vulnerable to attacks by dishonest miners who could include invalid transactions in blocks with valid proof-of-work.

Privacy Concerns

Traditional SPV implementations used Bloom filters (BIP37) to request only relevant transactions from peers, but these filters were shown to leak substantial information about the user's addresses. Modern alternatives include compact block filters (BIP157/158, also called Neutrino), which reverse the model: the full node creates a compact filter for each block, and the light client downloads and checks these filters locally.

Common Use Cases

SPV nodes are widely used in mobile wallets where running a full node is impractical. They provide a reasonable balance between verification and resource usage for everyday transactions, though users requiring maximum security should consider connecting to their own full node.