Security and Privacy of Lightweight Clients
In this chapter, we briefly overview and analyze the security of simple payment verification in Bitcoin. We then discus the operation of current lightweight clients and analyze their security and privacy provisions.
SIMPLE PAYMENT VERIFICATION
We start by describing simple payment verification (SPV) in Bitcoin.
As described in Chapter 4, Bitcoin requires peers in the system to verify all broadcasted transactions and blocks. Clearly, this comes at the expense of storage and computational overhead. Currently, a typical Bitcoin installation requires more than 70 GB of disk space and considerable time (and computational resources) to download and locally index blocks/transactions that are contained in the blockchain. Moreover, the continuous growth of Bitcoin transactional volume incurs significant computational overhead on the Bitcoin clients when verifying the correctness of broadcasted blocks and transactions in the network. This problem becomes even more evident when users wish to perform/verify Bitcoin payments from resource- constrained devices such as mobile devices and tablets.
To remedy that, lightweight client implementations have been proposed in . These clients only perform a so-called simplified payment verification (SPV). SPV clients do not store the entire blockchain, nor do they validate all transactions in the system. Notably, SPV clients only perform a limited amount of verifications, such as the verification of block difficulty and the presence of a transaction in the Merkle tree, and offload the verification of all transactions and blocks to the full Bitcoin nodes.
Note that this clearly comes at costs of decentralization, since a critical security component of the network is outsourced to few nodes in the system. Recall that SPV clients currently connect by default to four regular nodes; if all these nodes are malicious, then they could effectively control the view of the SPV client on the network and could prevent the client from sending and receiving transactions.