Simplified Payment Verification (SPV)

What Is Simplified Payment Verification (SPV)?

Simplified Payment Verification (SPV) is a lightweight client that allows users to verify transactions on a blockchain without downloading the entire blockchain.

It achieves this by only downloading block headers and requesting proof of inclusion in the Merkle Tree.

A Merkle Tree is a cryptographic tree structure where each leaf node represents the hash of a data block, and each non-leaf node represents the hash of its child nodes.

Lightweight Blockchain Validation

SPV enables light clients, such as wallets on low-end systems, to determine whether a transaction has been included in the blockchain.

Instead of downloading the entire blockchain, SPV proofs only require the Merkle root of each block to verify the authenticity of transactions.

This significantly reduces the storage requirements, as only 80 bytes per block need to be stored compared to the much larger size required by full nodes.

Balancing Efficiency and Security

However, there are potential security concerns with SPV.

In a 51% attack on a cryptocurrency, where a single entity controls most of the network’s mining power, hackers may be able to manipulate SPV proofs to validate illegitimate transactions.

Efforts are being made to address this threat and mitigate such scenarios.

Nakamoto’s Bitcoin whitepaper stated that Bitcoin transactions could be verified without running a full node, paving the way for the development of SPV as a lightweight verification mechanism.