DAOrayaki DAO研究奖金池:

资助地址:DAOrayaki.eth

投票进展:DAO Committee 3/0

通过研究种类:ZK, PLONK, Governance

原文作者:Eric Zhang, Felix Cai

翻译者:DAOctor @DAOrayaki

原文:PLONK-Based MACI

一直以来,MACI (最小化抗共谋基础设施)是 DoraHacks.io 上的一个有效的工具。该工具使社区治理具有抗共谋性和促使Grant DAO 分配更加公平。

在 2022 年期间, DoraHacks 上一些主要的活动采用了 MACI工具。其中,包括 ETHDenver22[1]、OpenSea Hackathon 评审[2]和 Dora Grant DAO 轮次[3]。DoraHacks-MACI [4]是用于支持这些社区治理事件的开源存储库。

DoraHacks-MACI是在MACI 1.0[5]的基础上建立的,并做了一些改变和简化。DoraHacks MACI和MACI 1.0都使用Groth16来创建零知识证明。Groth16[6]的安全性依赖于创建通用参考字符串(CRS)的过程,称为可信设置[7]。但并不是通用的(即如果有一个电路变化,CRS必须再次产生)。

在实践中,我们使用两阶段的可信设置。第一阶段与电路无关(例如永续TAU(Perpetual Powers of Tau)[8]),第二阶段与电路有关。

使用基于 Groth16 的 MACI 意味着每次电路发生变化时,我们都需要重新进行第二阶段的可信设置。事实上,电路总是在或大或小的变化:高级逻辑更新以及包括错误修复在内的小迭代。另一方面,严格的可信设置仪式既昂贵又耗时。如果一个可信的设置没有被公开证明,整个系统就不能完全可信,因此,我们不能运行高风险的 MACI 回合。以上的特性导致基于 Groth16 的 MACI 无法扩展。

PLONK[9] 为通用电路提供简洁的验证。通过产生结构化参考字符串 (SRS) 的单阶段可信设置,所有达到一定规模的电路都可以使用同一个SRS。

将DoraHacks-MACI从Groth16转移到PLONK并不是一件难事。最近的一轮ETH研究资助[10]已经使用MACI-PLONK来验证投票[11]。MACI-PLONK[12]用PLONK取代了Groth16的证明验证系统。因此,PLONK 可信设置只需要单阶段 SRS 生成。这是一个比较:

DAOrayaki |基于PLONK的MACIDAOrayaki |基于PLONK的MACI

MACI 规模:最多 5^4 个用户,5^2 个选项,每批 25 条消息。在配备 AMD Ryzen 5 5600X 6 核处理器 3.70 GHz 的 PC 上进行基准测试。

在相同条件下,基于 PLONK 的 MACI 生成的证明比 Groth16 大得多。然而,MACI 投票轮次通常跨越数天或数周,此时,产生的更大证明的链外开销在可接受范围。另一方面,验证消息的Gas fee只增加了约 50%。因此,在链上采用基于 PLONK 的 MACI 是没有障碍的。

下一步:(1)我们可以在 DoraHacks.io 上逐步采用 MACI-PLONK,以便更多的社区和生态系统可以使用 MACI 来做决策:常规的资金或治理决策;(2) 准备一个可信启动仪式并为所有 MACI 事件(达到一定的电路大小)生成 SRS。

参考文献

  1. ETHDenver22:https://dorahacks.io/grant/ethdenver22/top
  2. OpenSea Hackathon 评审:https://dorahacks.io/grant/opensea/proof
  3. Dora Grant DAO 轮次:https://dorahacks.io/dora
  4. DoraHacks-MACI:https://github.com/dorahacksglobal/qf-maci
  5. DoraHacks-MACI是在MACI 1.0:https://medium.com/privacy-scaling-explorations/a-technical-introduction-to-maci-1-0-db95c3a9439a
  6. Groth16:https://eprint.iacr.org/2016/260.pdf
  7. 可信设置:https://zkproof.org/2021/06/30/setup-ceremonies
  8. 永续TAU(Perpetual Powers of Tau):
    https://github.com/weijiekoh/perpetualpowersoftau
  9. PLONK:https://eprint.iacr.org/2019/953.pdf
  10. ETH研究资助:https://dorahacks.io/grant/ethre
  11. 使用MACI-PLONK来验证投票:https://dorahacks.io/grant/ethre/proof
  12. MACI-PLONK:https://github.com/dorahacksglobal/maci-plonk