Bitcoin full nodes require increasing computer resources that are not available
to most of the public, therefore most users tend to use SPV. Simplified
Payment Verification is a way for users to check the validity of a block without
downloading the whole blockchain, only needing a copy of the block headers of
the longest chain.
This schema makes SPV clients vulnerable to forks as it is secure under the
assumption that the longest chain is valid and as attacks like Segwit2x have
shown and this is not always a safe assumption. A new schema has been
proposed on the Bitcoin-dev mailing list that allows invalid blocks to
be rejected as long as there are enough honest miners to create a block within
a reasonable time frame. The new schema doesn’t fully protect clients against
dishonest miners but is an improvement over the current SPV.