SPV – Simple Payment Verification
Simple Payment Verification, the SPV, is a technique described in Satoshi Nakamoto's work. SPV allows a lightweight node client to verify that a transaction is included in the bitcoin blockchain, without downloading the entire blockchain.
The SPV client only needs to download the block headers, which are much smaller than the full blocks. To verify that a transaction is in a block, an SPV client requests proof of inclusion in the form of a Merkle tree.
Simple Payment Verification clients offer more security than web wallets because they do not need to trust the servers with the information they send.
There are currently two main options to validate the blockchain: the full node model and the use of Simple Payment Verification clients. During the complete node check, you validate the last block until the creation block.
It's basically impossible to fool a client with full node verification because you need to give it a longer chain than the one it has (due to the ledger's working principle, they'll by definition be the longest).
Simple Payment Verification, the alternative approach, involves a client downloading only all block headers at the beginning and then “requesting full node transactions as needed”. When processing or validating a transaction, the SPV client may request the Merkle tree to verify that the transaction is actually in a block.
Then the Simple Payment Verification client can try to get the block depth as a proxy for the validity and security of the transactions. The Simple Payment Verification approach is more efficient, but not without error.