The conversations, as usual, start with a discussion on which proof system is more suitable. The initial focus is on the issue of trusted setup. It is then mentioned that trusted setup might not be a significant problem, and the trend leans towards using Groth16 protocol because of its widespread implementation. Gnark library is initially recommended. Later, the "SuccintLab" announcement is shared (probably around the time the project was announced via tweet). It is indicated that the Succint library could also be used for Groth16 and Plonky2. Kobi then makes some recommendations (added below). It seems for now they are likely to go with Groth16. There are mentions of Halo2 and Plonky2 (both of them don't require a trusted setup), but I assume since privacy doesn't seem to be a high priority at this stage, using a trusted setup doesn't seem to be an issue for them

Libraries:

https://github.com/Consensys/gnark

https://github.com/succinctlabs/gnark-plonky2-verifier

Hackmd writeups:

https://hackmd.io/@succinct/SJ4LeWyop

https://hackmd.io/xRlEU2WPQtmXhN00GQSSTQ?view#

Penumbra Presentation

2023-07_Modular_Summit_Shielded_Transactions_Are_Rollups.pdf

https://www.youtube.com/watch?v=VWdHaKGrjq0

Ethan tweet: https://twitter.com/buchmanster/status/1782165877229519317

sidebar.

<aside> đź’ˇ the aleo/zexe idea is that you

  1. make circuits that certify smart contract executions and then you apply them to blobs of data (“records”) that are bound to those proof statements (ie the contract hash is the verification key)
  2. then you make what contract is executing private by wrapping the verification in another snark
  3. then you have some system for letting people figure out how to sync all the data they can view [unclear if this happened]

ethan’s PoC is basically doing (1) but with a cosmos account instead of a zexe “record”

</aside>

<aside> 💡 Kobi Gurkan, [23.04.2024 12:04] Gnark apparently uses a legosnark-like construction It wouldn’t be a big lift to change it to be compatible with other ones

If it’s just format conversion in some cases, should also be reasonable to do - dcbuilder and I have done something of that sort

</aside>

Adding a zk account type to the SDK (v0.50) using gnark (groth16 and bn254):