In order to perform zkrollups of transactions, the zk-SNARKs has to be able to verify the validity of offline transactions.
Zokrates is a toolbox to generate zk-SNARKs on ethereum, however it has been proofed that it can be also used to generate zk-SNARKs on tezos:
- ZoKraTez: How to play Zero Knowledge Proofs using ZoKrates and Tezos - DaiLambda, Inc.
- niki_blu / Bachelorarbeit · GitLab
The only issue preventing Zokrates to be able to create zk-rollups on Tezos, is the fact, that Zokrates stdlib only support signature verification using the baby jubjub
curve which is based on the bn128
used by ethereum. Adding support for the jubjub
curve (suggested by Zcash and based on the bls12_381
) in the zokrates stdlib (ZoKrates/zokrates_stdlib/stdlib/ecc at develop · Zokrates/ZoKrates · GitHub) would solve the problem