Once sufficiently many clients connect, verifying their proofs of work can exhaust the host's resources. An adversary mounting a distributed denial of service attack simply recruits more machines, especially machines with large amounts of bandwidth. The hashcash proof of work has an annoying property. It would be nice if this computation could do something useful while wasting the client's time. This section and the following are speculative in nature, outlining two possible future uses for proofs of work.
Proofs of work offer an easy way to recruit clients.
One can easily envision a proof of work that asks a client to perform a distributed computation work unit. In a world where many clients connect to many servers, spare computation cycles become available, salable, and therefore valuable. After all, most versions of Java, while placing strict limits on an applet's disk and network usage, do not explicitly limit an applet's CPU time. Today, however, if an applet uses too much time, it's likely to be killed by a user because applets are not supposed to waste time. A world with ubiquitous proofs of work is a world in which clients are accustomed to wasting time.