Simplified Payment Verification (SPV)


A lightweight client to verify blockchain transactions.

What Is a Simplified Payment Verification (SPV)?

Short for Simplified Payment Verification, SPV is a lightweight client to verify blockchain transactions, downloading only block headers and requesting proof of inclusion to the blockchain in the Merkle Tree.

A Merkle Tree is a tree structure in cryptography, in which every leaf node is labelled with the hash of a data block and every non-leaf node is labelled with the cryptographic hash of the labels of its child nodes. 

SPVs allow light clients to determine whether a transaction has been included in BTC.

Light clients refer to wallets running on low-end systems. 

Hence SPVs verify whether a transaction has been executed. 

Running a full node with a Merkle Tree requires the entire blockchain to be downloaded. 

This is where the role of SPV can simplify the process greatly. 

This is because SPV proofs only require the Merkle root of each root to verify the authenticity of the transactions. 

This means only 80 bytes per block needs to be stored in contrast to the significantly bigger size per block that is required under larger nodes. 

However, there are also downsides attached to SPVs. 

These relate to cyber security. 

In the event of a 51% attack on a cryptocurrency, the hackers may be successful in prompting the SPV proofs into validating illegitimate transactions. 

However, research is underway on how to mitigate the threat of such scenarios. 

Nakamoto’s whitepaper stated Bitcoin transactions can be verified without running the full node network.