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 large number of connections.
A simple but brilliant idea it may seems, it is not widely adopted as it requires the modification of the underlying transport protocol (i.e. TCP).