forms of automated “proof of work” that have beneficial side-effects, such as solving instances of interesting NP-hard problems
Would breaking cryptography be a good example of this? Like, someone enters a bunch of public keys into the system, and your “proof of work” consists of finding the corresponding private keys. Then we could construct cryptocurrencies based on hacking competing cryptocurrencies; that could be fun!
(Yeah, I guess the important obstacle is that you want the “proof of work” to scale depending on the needs of the network. Too difficult: the process is slow. Too simple: there are too many outcomes to handle. Must adjust automatically. But you can’t provide enough real private keys with an arbitrary difficulty.)
Breaking cryptosystems? That exact construct would be so much more useful than that. It’d let you have a ticking time-lock encryption service—I encrypt a message using the keys from the next block until block number N at some point in the future. You now have a message that will decrypt at a specified time in the future automatically and without intervention. That is a tremendous public resource to say nothing of its use within the system as a smart contracting primitive.
Unfortunately known methods of achieving this (e.g. breaking low-bit EC keys using Pallard’s rho algorithm) don’t meet the basic requirements of a proof of work system, the chief problem here being non-progress-free.
Would breaking cryptography be a good example of this? Like, someone enters a bunch of public keys into the system, and your “proof of work” consists of finding the corresponding private keys. Then we could construct cryptocurrencies based on hacking competing cryptocurrencies; that could be fun!
(Yeah, I guess the important obstacle is that you want the “proof of work” to scale depending on the needs of the network. Too difficult: the process is slow. Too simple: there are too many outcomes to handle. Must adjust automatically. But you can’t provide enough real private keys with an arbitrary difficulty.)
Breaking cryptosystems? That exact construct would be so much more useful than that. It’d let you have a ticking time-lock encryption service—I encrypt a message using the keys from the next block until block number N at some point in the future. You now have a message that will decrypt at a specified time in the future automatically and without intervention. That is a tremendous public resource to say nothing of its use within the system as a smart contracting primitive.
Unfortunately known methods of achieving this (e.g. breaking low-bit EC keys using Pallard’s rho algorithm) don’t meet the basic requirements of a proof of work system, the chief problem here being non-progress-free.