Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Optimizing ZK Proof Systems for TEE Environments #146

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

bigsky77
Copy link

No description provided.

@sarahalle
Copy link
Collaborator

Thanks for submitting this proposal @bigsky77! We are reviewing it and will get back to you with any questions

@bigsky77
Copy link
Author

Hi @sarahalle - any updates on this? Thank

@jopasserat
Copy link
Contributor

Thanks for your very interesting submission! At that stage, the present format lacks a real innovation that we would be interested in funding. The two main issues with your proposal are: 1) an outdated view of SGX and TEEs in general 2) a lack of exploration of the literature / related work. Below a more detailed view of the comments above and some pointers to help you revisit your proposal should you be interested in taking it to a different direction.

Outdated view of SGX and TEEs

Related work on proving in SGX

  • there are at least two pieces of work that we are aware of that cover the scope of your current proposal
  • you can find an example of running espresso systems' implementations of plonk and hyperplonk in sgx using the Gramine LibOS
  • another project also has a demo of running a fibonacci example on SP1 in SGX with gramine (not public yet but will try to link it here once it is)
  • the important thing is that it's not very hard with today's tools and modern TEEs to run a prover in a TEE, what's hard is to:
    • minimise the TCB
    • identify and prevent side channels

What could be promising

If you're interested in revisiting this proposal, here are some alternative ideas that would be more appealing.

Use case focus

  • run prover in TDX with a minimal TCB and demonstrating how it unlocks multi-party use cases

Security focus

  • explore and demonstrate how to exploit side channels when naively running a prover within a TEE
  • minimising the TCB of a prover running in SGX via Gramine or a TDX

Performance focus

  • one element that would be interesting is the idea of natively porting a SNARK prover to SGX, but since we can do that relatively easily w/ Gramine and even more w/ TDX, 1) we would need to demonstrate significant performance gains to make it worth it 2) if we were to do that properly, taking into account controlled channels for instance, the overhead would however most likely be huge
  • explore a CPU-GPU TEE co-design, either via something like Slalom, or NVIDIA H100

@bigsky77
Copy link
Author

Hey jopasserat thanks for the super thorough feedback. I will digest, update, and resubmit. :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants