zk-snark 如果电路中有循环逻辑的话,如何设置CRS

在拜读barryWhiteHat的zk-rollup实现源码中看到,在生成零知识证明的proof函数中,构造电路并生成验证的key. 正常逻辑不是应该是预先设置好电路,genKeys生成电路的验证key ,然后在roll-up合约中硬编码? https://github.com/barryWhiteHat/roll_up/blob/master/src/roll_up_wrapper.cpp

但是这样的话,coordinator每次接收的交易数量不固定,因此在电路中会循环检查交易,但循环的次数又不同.这样是不是意味着每次的电路逻辑都变换,需要生成不同的CRS. 那么这种情况下的zk-rollup感觉是无法接受的.

因此想知道若电路中有循环逻辑的话,应该如何处理这种情况

请先 登录 后评论

最佳答案 2020-01-09 15:44

barryWhiteHat 的zk-rollup实现只是一个poc的版本,确实存在此问题.matter-lab和loop-ring的rollup实现CRS是固定的.

请先 登录 后评论

其它 0 个回答

  • 1 关注
  • 0 收藏,1655 浏览
  • 杨闯 提出于 2019-12-25 18:33