In systems where computations are performed in remote or potentially untrusted environments(e.g. Ethereum NaaS providers such as Infura), how can we gain confidence in the accuracy of the results? Zero-knowledge proofs (ZKPs) provide an intriguing solution for verifying specific aspects of computation.
My focus:
- Proofs for Function Outputs: Can we generate a ZKP that directly verifies the output (return value) of a function call, given its inputs and any relevant contextual state?
- Beyond State Transitions: While ZKPs in blockchains often prove state transitions, I'm interested in the specifics of attesting to a singular function result.
- Challenges and Approaches: What are the cryptographic considerations, potential circuit design patterns, and trade-offs in constructing proofs for function call outputs?
Questions:
- Are there theoretical limitations to proving arbitrary function results, or are there classes of functions that are well-suited?
- How would the process of generating and verifying such a proof look in practice?
- What are the potential efficiency bottlenecks (proof size, computation time) to consider?