Aragon最新研究:通过zk-Rollups进行安全的链下投票

本文来自Aragon,原文作者:NateWilliams&PauEscrich,由Odaily星球日报译者Katie辜编译。

本文提出了一个概念,利用zk-SNARKs来实现治理的下一个前沿方向:无gas费经过验证绑定的链上治理。

背景

作为领先的数字治理项目,AragonLabs在研究和创新治理模式方面投入了大量资金。我们已经确定了各种显示出潜力的Layer2治理解决方案,但也存在一些技术问题。我们已经能够在我们专门的投票区块链——Vochain上实现无gas手续费的投票过程,并设计和实现了一种使用以太坊存储证明的方法,将基于ERC-20代币的统计从以太坊跨链到Vochain。不过到目前为止,将跨链结果转到以太坊的可能性一直是一个开放性的研究问题。

为此,AragonLabs一直在进行一项新设计的实验,该设计将允许链下投票过程的结果跨链到以太坊,而不使用主观预言或任何其它可信组件。

该提议背后的核心创新是:我们所知的任何系统都无法在链下组织投票过程,并基于该过程的结果在以太坊上棉信任地执行操作。此建议的用例可能包括基于结果执行绑定操作的所有治理流程,例如对资产分配或智能合约更改的DAO投票。这些治理流程目前必须在以太坊主网上进行,这会给每个投票者带来大量的gas费用。或者投票可以在链下进行,但要相信外部组件会准确、诚实地将结果转发回以太坊。

Mask Network已收购社交管理协议RARA团队:4月4日消息,Mask Network宣布已收购社交管理协议RARA背后团队,该团队将继续为RARA构建应用程序和开发人员工具。Mask Network将集成RARA,目前仍处于私人测试阶段,支持开发者为所有Web3应用程序添加带有反应、评论和标签的NFT的实时和历史评论、根据每个人的喜好个性化社交信息和NFT推荐等等。[2023/4/4 13:44:02]

我们的提议将允许完全在链下进行的投票过程,在以太坊上以与链上治理相同的完整性执行结果,成本仅为链上治理的一小部分。

投票协议概念验证要求

在设计技术解决方案之前,我们定义了研究方案的参数:

投票协议的要求是:

免许可;

抗审查;

能够在以太坊上绑定结果;

不产生gas手续费的投票者;

免于代币跨链;

尽可能简单;

可与ERC-20/ERC-777和NFT一起用于投票。

作为概念验证设计,我们接受以下限制:

没有用户匿名:投票可以绑定到一个以太坊地址;

并非没有收据:购买选票是可能的;

Marathon:不会竞标破产的Compute North资产,可收回约2200万美元投资:金色财经报道,比特币矿企Marathon首席执行官Fred Thiel 已确认该公司不会竞标破产的Compute North资产,而将选择竞购得克萨斯州280兆瓦风力发电设施的股份。据此前相关报道,Marathon曾向Compute North投资了3130万美元,据悉有2200万美元可能会作为存款完全收回,但有大约800万美元的投资已经被减记核销。(The Block)[2022/12/9 21:32:51]

不是为处理全国范围的选举而设计的:只针对DAO或ERC-20/NFT持有者。因此,应该设置最大普查规模;

对中继者没有明确的激励模式。

理想的提案

根据该提案的设计,当创建一个新的投票过程时,组织者向以太坊提交一个交易,指定ERC-20代币的合约地址,用于投票者普查。此地址的存储根哈希在指定的区块高度上成为此进程的普查根。任何持有给定代币的人都可以通过提供代币余额的MerkleProof证明来证明他们的资格。然后,他们可以通过将证明和签名发送到zk-SNARK汇总中继者进行投票,后者将计算最终结果的证明。

存在的潜在的问题是,理论上计算结果的zk-SNARK证明的参与者可以通过决定排除投票来审查结果。我们通过允许任何人提交新的投票来解决这个问题:如果他们检测到协调者没有将其包含在内,任何用户都可以生成并提交包含他们投票的汇总。

Paradigm任命Georgios Konstantopoulos担任首席技术官:11月25日消息,Paradigm任命Georgios Konstantopoulos担任新首席技术官,负责设定 Paradigm 的技术愿景和战略、帮助内部工程团队成长、驱动和交付内部软件。Paradigm表示,加密这样的新市场中需要构建大量专有软件,包括帮助管理财务和运营需求的系统,以及用于交易、投票、质押、铸造 NFT 和以其他方式参与链上的加密原生工具。

Georgios此前担任Paradigm的研究合伙人,将继续担任此职位帮助团队的投资组合工作。此前,Georgios 是一名独立顾问和研究员,专注于密码学、信息安全和机制设计,他在塞萨洛尼基亚里士多德大学获得了电子与计算机工程专业工程硕士学位。[2021/11/25 7:09:39]

我们的提案将运用zk-SNARKS于以下目的:

验证一个地址之前没有通过默克尔树累加器投票;

通过存储证明验证用户拥有代币;

计算一批选票的部分结果;

验证选票签名。

根据上述模式,我们可以发现两个主要问题:

问题1:ERC20存储证明验证对SNARK不友好

ERC-20存储证明在SNARK中验证是非常复杂的。这部分是由于它们使用了递归长度前缀(RecursiveLengthPrefix,RLP)解析和多个Kecmack-256哈希验证,这两种方法在最先进的SNARK汇总技术中计算效率都很低。这个问题很难解决,所以目前我们使用optimistic验证来解决这个问题。

加密基金Paradigm已至少投资21家初创公司和协议:Paradigm是专注于加密的基金,由Fred Ehrsam和Matt Huang于2018年创立。正如Paradigm的公开投资组合显示,其关注领域包括DeFi协议、基础设施提供商、为机构客户提供金融服务的公司以及研发团队。总体而言,Paradigm已经向5个垂直领域的至少21家初创公司和协议进行了投资。(The Block)[2020/11/7 11:55:43]

问题2:ECDSA/Secp256k1签名验证对SNARK不友好

我们可以用来验证用户签名的一种当前加密标准是ECDSA,该标准使用来自以太坊签名的BabyJubJub密钥,使用该签名作为原始私钥,允许用户恢复其地址。由于此方法依赖于用户签名,因此很容易受到恶意代理的攻击,这些代理会用户在他们的Web3钱包中对欺诈性交易进行签名。此漏洞存在于浏览器钱包用于签署交易的任何地方。一个潜在的解决方案可能是使用web地址作为派生路径来派生私钥。

另一个挑战是证明每个代币所有者的以太坊地址批准了BabyJubJub公钥,以便在投票过程创建的区块高度进行投票。我们通过一个“单例”智能合约来实现这一点,该合约将以太坊地址映射到BabyJubJub公钥,用户必须通过标准交易将他们的密钥添加到智能合约中。地址到密钥的映射可以通过optimistic的存储欺诈证明来实现。因为预计这些授权密钥将在不同的投票过程中使用多次,此解决方案还通过可重用设计解决数据可用性问题。

动态 | Paradex宣布完成向0x协议V2的迁移:据sludgefeed消息,Coinbase旗下交易平台Paradex宣布完成向0x协议V2的迁移。新协议将是平台的关键基础设施。[2018/10/10]

总之,我们可以在SNARK中处理大多数验证,但不包括:

确认一个地址之前没有通过默克尔树累加器→SNARK进行投票;

通过存储证明→Optimistic验证用户是否有代币;

计算部分投票结果→SNARK;

验证投票签名→SNARK。

用户

创建一个源自以太坊签名的BabyJubJub密钥,并将其注册到投票者注册处智能合约。

检索其账户的投票信息和存储证明,在投票包上生成签名,并将其转发给一个或一组中继者。

投票智能合约

注册投票进程,包括:ERC-20智能合约地址,ERC-20地址的槽位索引→平衡映射,投票进程启动块的状态根哈希,计算计票的进程参数。

通过zk-Rollup监听新投票的注册,SNARK将证明:

结果计算;

投票签名是由BabyJubJub密钥决定的;

保持投票累加器更新;

保持投票者名单的更新。

允许任何人质疑上次投票登记舞弊的证据。但必须具备以下条件之一:

存储证明,证明投票人的以太坊地址没有代币;

存储证明,证明投票人的以太坊地址没有链接到一个BabyJubJub密钥;

证明BabyJubJub密钥已经投票。

中继者

阶段0:在以太坊上创建选举进程,并从可用中继器列表中选择一个中继器。选举组织者需要支付选举费用。组织者提供EVM字节码,这些字节码需要在DAO智能合约的选举之后执行,具体取决于结果。

阶段1:投票开始。任何人都可以向所选的协调器发送投票包。协调器将选中的结果分批卷起来,构建一个zk-SNARK证明,将这个证明和结果上传到以太坊,收集用户投出的选票,验证它们,并将它们广播给其它中继者。

阶段2:检测未加入投票的协调者可以卷起自己的投票,并向投票智能合约发送zk-SNARK有效性证明。此外,如果他们检测到投票添加错误,他们可以发送欺诈证明,以证明之前添加的结果是无效的,产生该结果的协调者将被削减。

阶段3:当达到投票日期限制时:

上传的结果的总和被认为是有效的,奖励将在协调者和包含更多投票的参与者之间分配。

任何人调用EVM字节码执行,使用最终结果作为输入。

线路和合约

zk-SNARK将汇总投票名单。zk-SNARK证明是基于给定的投票列表、普查根、选举标识符和聚合结果而有效的。

zk-SNARK的输入:

哈希输入是为了减少SNARK验证的gas成本;

私人的选举标识符;

计算的投票结果;

当前的空符根;

更新了的空符根;

批量中的投票数;

投票值和对应的BabyJubJub密钥签名。

用于上传协调这结果的智能合约功能调用的输入为:

选举标识符;

该批中投票者公钥的列表;

更新了空符根;

计算这批的投票结果;

SNARK证明。

概念实施的证明

我们已经实施了最小可行性的智能合约和线路,从而检查解决方案的成本和可行性。该概念证明仅包括用户注册、投票汇总和舞弊证明验证。

我们的测试产生了以下gas成本:

用户密钥注册表部署:258536

注册:68956

投票部署:6673,159

新投票:25989

累计汇总:291801

舞弊证明1:574574

舞弊证明2:908822

未来的研究

在这个研究的基础上,我们想更深入地探讨以下想法:

通过SNARKs验证标准kecak/ECDSA/Sec256k1签名。我们相信很快,PLOOKUP将能够验证这些方案,这将带来两种可能性:

证明BabyJubJub密钥是从Secp256k1密钥派生出来的。

验证投票签名本身。

在SNARK内部验证存储证明。我们认为这种复杂的线路可以很容易地通过一个zkVM集成,尽管成本可能是巨大的。我们担心以太坊客户端会退出存档节点,会优先考虑更高的gas费用限制,所以另一个研究领域是尝试使用EIP1186以外的方法进行存储证明。

为了计算计数,嵌入一些操作码在zkVM中执行,使通用可编程投票线路可以运用。

在浏览器中生成投票证明,通过批处理混合,并递归聚合结果,类似于zk.money协议。这将增加投票过程的隐私。

允许在浏览器级别以分布式方式计算SNARKs,即使它们的计算代价很高。这节省了对高可见性服务器的依赖,而且完全实现P2P,将所有权力赋予投票者。

在网络级别的投票协议中嵌入隐私和混合。

找到一个合理的、与以太坊2.0完全互操作的加密经济学模型。

生成一个独特的证明,并可以很容易地验证。这为任何可编程L1和L2对任何以太坊投票结果做出反应打开了可能性。长期目标是能够在任何链上投票,并在任何其它链上验证结果。这可能成为某种通过SNARKs交叉rollup/链存储证明验证的黄金标准。

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

银河链

[0:62ms0-1:752ms