Aragon最新研究:通过zk-Rollups进行安全的链下投票_合约招商_数字货币代理_海外数字货币招商代理_数字货币招商_元宇宙代理加盟

数字货币代理_海外数字货币招商代理_数字货币招商_元宇宙代理加盟
数字货币平台火爆招募数字货币合约代理

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

更新时间:2021-10-17 18:18:01点击:155

这篇文章是由Aragon、原文作者: Nate Williams Pau Escrich、Odaily星球日报译者Katie辜编译的。

本文提出了利用zk-SNARKs实现治理下一个前沿方向的概念:免gas资费经验证后连接起来的链上治理。

背景

作为主要的数字治理项目,Aragon Labs在研究和创新治理模式上投入了大量资金。 我们确定了各种显示潜力的第2层治理解决方案,但也存在一些技术问题。 我们已经在我们专用的投票区块链——Vochain上实现了无gas手续费的投票过程,设计并实现了使用Ethereum Storage proof的方法,从EtherEum到VO chaage Proof统计基于ERC-20令牌但是,迄今为止,将跨越链条的结果转移到以太坊的可能性是一个开放的研究问题。

因此,Aragon Labs继续进行新设计的实验,以使链投票过程的结果能够交叉链入以太网,而无需使用主观预言和其他可信组件。

这个提案背后的中心创新是,我们知道的任何系统都无法在链条下组织投票过程,而是棉根据该过程的结果在以太网上可靠地执行操作。 此建议的用例可能包括根据结果执行绑定操作的所有治理过程。 例如,对资产分配或智能合约更改进行DAO投票,但不限于此。 这些治理过程现在必须在以太网主网络上进行,每个投票者都要花很多gas费用。 或者投票可以在链条下进行,但请相信外部组件会准确诚实地将结果转发给以太坊。

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

在设计

投票协议概念验证要求

技术解决方案之前,定义了研究方案的参数:

投票的要求是:

免除许可; 对检查的抵抗; 可以将结果绑定到以太网上; 免除不产生gas手续费的投票者令牌的交叉链; 尽可能简单(没有侧链); 可与ERC-20/ERC-777和NFT一起用于投票。 作为概念验证设计,接受以下限制:

没有用户匿名性:投票可以绑定到以太坊的地址。并不是没有收据。 购买选票是可能的,不是为了处理全国范围的选举而设计的。 仅适用于DAO或ERC-20/NFT持有者。 因此,必须设定最大的人口普查规模(取决于性能和成本)。 对中转者(relayers )没有明确的激励模型。

理想的提案

根据该提案的设计,新的投票流程完成后,主办者向以太坊提交交易,指定ERC-20令牌的合同地址用于投票者调查。 该地址的直吉鲁散列(Storage Root Hash )将在指定块的高度为该过程的调查根) census root。 持有给定令牌的任何人都可以通过提供令牌余额的Merkle Proof证明(EIP-1186 )来证明资格。 然后,他们可以通过将证明和签名发送给zk-SNARK摘要中继人进行投票,后者计算最终结果的证明。

潜在的问题是,理论上计算结果的zk-SNARK证明,“协调员”的参加者可以通过决定排除投票来审查结果。 除了协调员之外,任何人都可以提交新的投票,从而解决这个问题。 如果检测到不包括协调员,任何人都可以生成并提交包含自己投票的摘要。

我们的提案是利用zk-SNARKS以以下目的进行的。

验证选票上的签名,该签名用于存储在验证单个地址之前未在“默克尔树”累加器中投票的证书,并计算选票上用于验证用户是否拥有令牌的部分结果。

根据上述模型,有两个主要问题。

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

ERC-20存储证书在SNARK上的验证非常复杂。 这是因为使用了递归长度前缀(RLP )分析和多个Kecmack -256散列验证。 这两种方法在最先进的SNARK统计技术中计算效率都很低。 因为这个问题很难解决,所以我们现在用optimistic验证来解决这个问题。

目前可用于验证

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

用户签名的加密标准之一是ECDSA。 此标准使用BabyJubJub密钥从以太网签名中提取,并使用此签名作为原始私钥,以便用户恢复地址。 由于这种方法依赖于用户的签名,所以容易受到恶意代理的攻击,这些代理会欺骗用户并在自己的Web3钱包上签名欺诈性交易。 这个漏洞存在于浏览器钱包用来签署交易的地方。 一种潜在的解决方案是使用网址作为派生路径派生私钥。

另一个挑战是,证明每个令牌的所有者的以太网地址可以批准BabyJubJub公钥,并以投票过程中创建的块的高度进行投票。 要实现这一点,请使用“单实例”智能合约。 该合同将从太郎的地址映射到BabyJubJub公钥,用户必须通过标准交易向智能合约添加密钥。 地址到密钥的映射可以通过optimistic的存储欺诈证书实现。 由于这些许可证密钥预计将在不同的投票过程中多次使用,因此该解决方案还通过可重复使用的设计解决了数据可用性问题。

总之,SNARK可以处理大部分验证,但不包括以下内容:

在确认一个地址之前,使用默克尔树(Merkletree )累加器SNARK保存未投票的证书(Storage proof )Optimistic验证用户是否有令牌计算部分投票结果 验证投票签名SNARK。

用户

创建基于以太坊签名的BabyJubJub密钥,并在投票人注册处(Voter Registry )智能合约中注册。 获取该账户的投票信息和存储证书,在投票包中生成签名,并将其传输给一个或一组中继器(relayers )。 注册投票过程,包括

投票智能合约

ERC-20智能合约地址、ERC-20地址的时隙比特索引平衡映射、投票过程启动块的状态根散列、投票的过程参数。

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

计算结果; 投票签名由BabyJubJub密钥决定。维持投票累加器的更新。维持投票者名单的更新。 允许任何人怀疑上次投票登记作弊的证据。 但是,需要以下条件之一:

证明存储证书BabyJubJub密钥已被投票,该密钥用于证明投票者的以太坊地址未链接到BabyJubJub密钥,该证书用于保存证明投票者的以太坊地址没有令牌的证书。 这个钥匙在“被投票的”默克尔的树上。

中继者(Relayer)

阶段0 :在以太坊创建选举进程,从可用中继器列表中选择中继器。 选举组织者必须支付选举费用。 主办者将根据结果提供在DAO智能合约选举后必须运行的EVM字节码。 阶段1 :投票开始。 任何人都可以向选定的协调员发送投票包。 可以使用HTTPs或libp2p进行传输。 协调人将汇总所选结果并创建zk-SNARK证书,将该证书和结果上载到以太网上,收集、验证用户投票的选票,然后广播给其他中继人。 阶段2 )检测未参加投票的协调人可以卷起自己的投票,向投票智能合约发送zk-SNARK有效性证明。 另外,如果检测到投票添加错误,也可以发送欺诈证书,以证明以前添加的结果无效,生成该结果的协调员将减少。 如果达到阶段3:投票日期限制:上传结果(协调员和任何第三方)的总和被认为有效,报酬将在协调员和参与者之间分配,包括更多投票。 任何人通常都由协调员调用并执行EVM字节码,并将最终结果用作输入。

线路和合约

zk-SNARK总结投票名单。 zk-SNARK证明基于给定的投票列表、人口普查路线、选举标识符(electionId )以及聚合结果是有效的。

zk-SNARK的输入:

哈希输入是为了削减SNARK认证的gas成本; 计算私人选举标识符投票结果的当前空符路线; 更新的空符根; 批次内的投票数; 投票值和对应的BabyJubJub密钥的签名。 用于上传用于调整此结果的智能合约功能调用的输入如下。

选举标识符; 更新了此批中投票者的公钥列表空符号根; 计算这些投票结果的SNARK证明了。 为了检查

概念实施的证明

解决方案的成本和可行性,我们实施了最小可行性的智能合约和线路。 这个概念证明只包括用户注册、投票摘要和验证舞弊证明。

测试产生了以下gas成本:

用户注册表导入: 258536注册: 68956投票导入: 6673,159新投票: 25989累计统计: 291801非法证书1:574574 (未注册BabyJubJub密钥)非法证书2:908822 (账户ERC-20)

在SNARKs中验证标准kecak/ECDSA/Sec256k1签名。 相信很快,PLOOKUP就能验证这些方案。 这带来了两种可能性。babyjubjub密钥证明是从Secp256k1密钥派生出来的。 验证投票本身。 在SNARK内部验证存储证书。 这样复杂的线路,成本可能很高,但我相信可以通过zkVM轻松整合。 由于担心以太网客户端退出归档节点,会优先考虑更高的gas费用限制,因此另一个研究领域是尝试用EIP1186以外的方法进行存储证明。 为了计算计数,嵌入了几个操作码并通过zkVM执行,使得通用可编程投票线路可以运用。 在浏览器中生成投票证书,进行批处理混合,然后递归聚合结果。 类似于zk.money协议。 这将提高投票过程的隐私。 即使SNARKs的计算成本很高,也可以在浏览器级别分散计算。 这消除了对可见服务器的依赖,完全实现了P2P,并将所有权限授予投票者。 在网络级投票协议中嵌入隐私和混合。 我们找到了与以太坊2.0完全互通的合理的加密经济学模型。 可以生成唯一的证书并轻松进行验证。 这开辟了可编程L1和L2对以太坊的投票结果做出反应的可能性,无论它们是否为以太坊虚拟机——EVM。 长远的目标是在任何链条上投票,并在其他链条上验证结果。 这可能会成为通过SNARKs交叉滚动/链存储证明验证的黄金标准。

官方微信