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

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

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

背景

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

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

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

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

投票协议概念验证要求

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

投票协议的要求是:

免许可;

抗审查;

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

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

免于代币跨链;

尽可能简单;

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

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

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

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

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

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

理想的提案

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

DeFi借贷协议OpenLeverage发起将协议部署至Arbitrum的提案:2月7日,据官方消息,DeFi 借贷协议 OpenLeverage 发起将协议部署至 Arbitrum 的提案,提案称,OpenLeverage 作为多链无许可保证金交易协议,应部署在 Arbitrum 上,以帮助用户获得更多的交易机会。[2023/2/7 11:52:16]

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

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

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

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

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

验证选票签名。

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

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

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

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

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

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

总之,我们可以在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:15ms0-8:820ms