Simple Payment Verification (SPV) is a lightweight method for verifying Bitcoin transactions without downloading the entire blockchain. This technique, originally described in Satoshi Nakamoto’s Bitcoin whitepaper, allows Electrum to function efficiently as a lightweight client.
Key Aspects of SPV:
- Lightweight Verification: SPV clients like Electrum only download block headers, not full blocks. This significantly reduces the data storage and bandwidth requirements.
- Merkle Proofs: To verify a transaction, the client requests a proof of inclusion in the form of a Merkle branch from the server.
- Security Advantage: SPV offers improved security compared to web wallets. While it relies on servers for some information, it doesn’t need to trust these servers with sensitive data.
- Efficiency: By using SPV, Electrum can quickly verify transactions without the resource demands of a full node.
How It Works:
- Electrum downloads and stores block headers.
- When verifying a transaction, it requests a Merkle proof from a server.
- Using this proof, Electrum can confirm the transaction’s inclusion in the blockchain without downloading the entire block.
This approach allows Electrum to balance security and efficiency, providing a robust wallet solution without the need for extensive computational resources.
Reference: “Bitcoin: A Peer-to-Peer Electronic Cash System” by Satoshi Nakamoto.