Untitled

Overview

A full node is supposed to download and verify all blocks in a blockchain, which required a lot of bandwidth and storage space.

Enter light clients called simplified payment verification(SPV),

Working

So we take a block and remove all the transactions leaving one 3 things to get the hash chain of blocks,

  1. Block number(height)
  2. Merkle root
  3. Prev block hash

So now people don’t have to keep the whole transaction data in the block, only the Merkle root of it, which is just a fraction of the whole thing.

Untitled

Whitepaper reference,

<aside> 💡 A block header with no transactions would be about 80 bytes. If we suppose blocks are generated every 10 minutes, 80 bytes * 6 * 24 * 365 = 4.2MB per year

</aside>

Note that since we don’t have the txn data we can not check the validity of the root.

The question arises how do we know that the Merkel proof is legitimate?

This is where the SPV assumption comes into play that some full node is checking that they are valid.

In other words, SPV security relies on the assumption that the block-hash chain communicated can be trusted.