Client Puzzle Protocol (CPP) is a proof-of-concept, in the late 1990s and early 2000s, to defend against denial-of-service (DoS) attacks.
Clients connecting to a server need to solve a mathematical puzzle correctly before a connection is established. Although the puzzle requires negligible computation cost from the client end, it is able to slow down simultaneously establishment of a large number of connections.
A simple but brilliant idea it may seem, it is not widely adopted as it requires the modification of the underlying transport protocol (i.e. TCP).
Client Puzzle Protocol, Wikipedia.
Client Puzzle: A Cryptographic Countermeasure Against Connection Depletion Attacks, Ari Juels and John Brainard.
RSA Laboratories Unveils Innovative Countermeasure To Recent “Denial of Service” Hacker Attacks, RSA Lab.
Shared by Emil Tan, Skipper & Co-Founder of Div0.