deltadevsde / prism

prism is the first trust-minimized key-transparency solution, allowing for automatic verification of service providers via light clients. Powered by Celestia.
https://prism.deltadevs.xyz
49 stars 7 forks source link

fix: either commit to groth16 and do proper setup or change proof systems #110

Closed distractedm1nd closed 1 month ago

distractedm1nd commented 3 months ago

Not only do we not have a setup ceremony, but we create a new VerifyingKey for every single epoch. Moving them would require us to rewrite the circuits a bit, because the structure of them is not constant enough to reuse a VerifyingKey across batches.

If we stick with groth16 we need to rewrite the circuits anyways to have a reusable setup, as well as writing the setup ceremony code. Alternatively we can bite the bullet and switch to nova, which I am experimenting with in #109 (but have not gotten very far yet).