Term

Simplified Payment Verification (SPV)

A method that allows Bitcoin wallets to verify transactions with minimal data, reducing reliance on centralized servers.

Type:
security
scaling
Also known as:
SPV
1
definition

Simplified Payment Verification (SPV) is a method used in Bitcoin wallets to verify transactions with minimal data. It allows wallets to confirm transactions without downloading the entire blockchain, instead only requiring the headers of the blocks. This approach was originally outlined in Satoshi Nakamoto's Bitcoin whitepaper as a solution for lightweight clients. SPV works by checking that a transaction is included in a block and that sufficient work has been done on top of that block, providing reasonable assurance that the transaction is valid.

Example 1.1

"SPV is a method that allows Bitcoin wallets to verify transactions without needing to download the entire blockchain. This makes it possible for lightweight wallets to function independently and securely. For example, a mobile wallet using SPV might only download around 80 bytes per block header, rather than several megabytes of full block data."

Example 1.2

"When you receive Bitcoin in an SPV wallet, it verifies your transaction by checking the Merkle proof that links your transaction to a block header, then confirms that multiple additional blocks (confirmations) have been built on top of that block, providing assurance that the transaction is valid and irreversible."

2
technical

SPV works through a specific technical process:

  1. Block Headers: SPV wallets download only the 80-byte headers of each block, which contain the block's hash, the previous block's hash, a merkle root, and other metadata.

  2. Merkle Trees: Transactions in a block are organized in a Merkle tree structure, allowing verification of individual transactions without downloading all transactions.

  3. Bloom Filters: Many SPV wallets use bloom filters to request relevant transactions from full nodes without revealing exactly which addresses they're interested in.

  4. Chain of Proof: SPV wallets verify that sufficient proof-of-work has been performed on the chain containing their transaction, confirming its validity.

Example 2.1

"When Alice's SPV wallet needs to verify a transaction, it sends a bloom filter to a full node that might contain her address. The node responds with transactions that match this filter, along with merkle branches proving each transaction's inclusion in a block. Alice's wallet can then verify these proofs against the block headers it has downloaded, confirming her transactions without trusting the node."

3
benefits

The main benefits of SPV include:

  • Reduced data requirements: SPV wallets only need to download block headers, not the entire blockchain, reducing storage needs from hundreds of gigabytes to mere megabytes.

  • Increased privacy: SPV wallets don't need to rely on third-party servers for transaction verification, enhancing user privacy compared to web wallets.

  • Accessibility: SPV makes it possible to run a Bitcoin wallet on low-power devices, like smartphones, enabling broader adoption.

  • Quick startup: New wallets can be operational much faster than full nodes, as they don't need to download and verify the entire blockchain history.

  • Reduced bandwidth: SPV wallets require significantly less network bandwidth to operate compared to full nodes.

    Example 3.1

    "SPV wallets have reduced data requirements, increased privacy, and can run on low-power devices. A modern SPV wallet might require only 60-80 MB of storage to track the entire Bitcoin blockchain's headers, compared to over 500 GB for a full node. This makes them a popular choice for mobile Bitcoin wallets like BRD, Electrum, and Bitcoin Wallet."

4
limitations

While SPV provides many benefits, it also has some limitations:

  • Reduced Security: SPV wallets rely on trusting miners to validate transactions and cannot verify all consensus rules independently.

  • Limited Verification: SPV wallets can't fully verify transactions as they don't have the entire blockchain.

  • Privacy Concerns: Despite bloom filters, some information leakage can still occur when requesting transaction data.

  • Vulnerability to Certain Attacks: SPV clients are vulnerable to specific attacks like withholding blocks or presenting fake chains that appear valid.

  • Dependency on Honest Nodes: SPV wallets depend on connecting to at least one honest full node to receive accurate blockchain information.

    Example 4.1

    "While SPV wallets are convenient, they do have some limitations. They rely on trusting miners to validate transactions and can't fully verify transactions themselves as they don't have the entire blockchain. In the 2015 Bitcoin XT fork debate, this limitation was highlighted as SPV wallets couldn't independently validate blocks exceeding the 1MB limit, demonstrating one of the security trade-offs compared to running a full node."

5
implementations

Several popular wallet implementations use SPV technology:

  • Electrum: Uses a modified SPV model with specialized servers
  • BRD (formerly Breadwallet): Pure SPV implementation for mobile devices
  • Bitcoin Wallet for Android: One of the first SPV wallets for mobile
  • Wasabi Wallet: Combines SPV with privacy-enhancing features
  • Neutrino: A newer, more private SPV protocol used in some Lightning Network implementations

Each implementation makes different trade-offs between privacy, security, and user experience.

Example 5.1

"The Electrum wallet implements a modified version of SPV where specialized servers pre-process the blockchain and serve compact proofs to clients. This hybrid approach offers faster verification than traditional SPV while still maintaining significantly lower resource requirements than a full node. Lightning wallet implementations like Neutrino have further refined SPV technology to improve privacy and reduce trust requirements."

All terms and definitions may update as the Cryptionary improves.