Multibit spv Wallet – Simplified Payment Verification (SPV) using Bitcoin without running a full network node. By default, upon receiving a new transaction a node must validate it: in particular, verify that none of the transaction’s inputs have been previously spent. To carry out that check the node needs to access the blockchain. Any user who does not trust his network neighbors, should keep a full local copy of the blockchain, so that any input can be verified.
As noted in Nakamoto’s whitepaper, it is possible to verify bitcoin pay
SPV provides a way where you can determine that a particular transaction was in a block in the block chain without requiring the entire block chain to be downloaded. It does this as follows:
every transaction has a hash
every block has a hash
a transaction hash and the block hash can be linked using a Merkle tree proof.
A Merkle tree is a mathematical model where the block is at the apex and all the transaction get placed in a tree-like structure.
A Merkle tree proof is a list of all the hashes between the apex (block) and the leaf (transaction). The point of a Merkle tree proof is that you only need a small part of the block to prove the transaction is in the block.
Thus when a wallet says it uses SPV it means that before it believes in a transaction it checks:
there is a Merkle tree proof that the transaction is in a block
the block itself is in the main chain of the block chain
The transaction is then “good” and will be added to the wallet.