If SNARKs are able to prove computations of arbitrary complexity and difficulty were executed correctly, would it be possible to use them to create a Proof of Work system where ANY computation can be the “work”? If you are able to develop a SNARK system that can somehow “measure” how much computational effort went in to any arbitrary computation and thus allow any program or computation to be able to be used towards the same Proof of Work consensus method? This would take the idea of “Proof of Useful Work” to the ultimate end, where one would simply use ones computers to run the same computation one would use them for anyway but have these SNARKs working on all of the computations measuring them and contributing to the consensus method, and reaping miner rewards.
1 Answer
In principle, SNARKs could indeed be useful for making many computations you might want to use in proof of work efficiently checkable. However, a Proof of Work function still has to satisfy the property that there is a low probability of an input returning a successful block (otherwise, blocks will be mined too quickly, and the chain may fork).