A16z 发布以太坊匿名投票系统
风险投资基金 Andreessen Horowitz,也称为 A16z,发布了一个 Solidity 库,可用于以太坊上的匿名投票。该图书馆名为“Cicada”,可防止个别选民的选择在投票结束前被知晓。根据 A16z 工程师 Michael Zhu 5 月 24 日的博客文章,当与 Semaphore 等零知识组成员系统结合使用时,它还可以使选民的身份永久不可知。
朱说,Cicada 依赖于时间锁谜题,这是一种允许用户加密只能在特定时间段过去后才能解密的秘密值的密码学。
这些谜题自 1996 年就已存在。但在 2019 年之前,它们会要求用户在时间段过去后透露其秘密值。在投票系统中,这可能会导致用户提交选票然后下线,从而导致所有选票无法统计。
2019 年,密码学家 Giulio Malavolta 和 Aravind Thyagarajan提出了“同态”时间锁谜题的概念。这允许将谜题加在一起产生一个最终的谜题,这个谜题比单个谜题的总和更容易解决。最终难题的解决方案仅揭示了各个值的总和,而没有揭示构成该总和的各个值。
根据 A16z 帖子,Cicada 使用这些同态拼图,即使用户下线也可以计算选票。
当试图将 Malavolta 和 Thyagarajan 的系统转移到区块链时,A16z 研究人员遇到了创建公平投票系统的障碍:每个选择都需要编码为布尔值“1”或“0”。这意味着攻击者可以尝试通过错误编码投票来增加他们的投票权——例如,将“100”编码为他们的价值。
该帖子称,为了解决这个问题,Cicada 要求选民在每张选票的同时提交选票有效性的零知识证明。证明表明投票编码正确,但没有透露投票内容。
Cicada 仅在进行民意调查时防止选票被知道。一旦“投票结束”或时间锁定期结束,任何人都可以通过暴力破解谜题来确定投票的内容。然而,A16z 建议可以通过将 Cicada 与零知识组成员系统(如 Semaphore、Semacaulk 或零知识状态证明)相结合来解决这个问题。在这种情况下,暴力破解谜题只会揭示投票是由合格选民投票的,但不会揭示用于证明选民资格的凭据。
例如,Zhu 提供了一个使用 Cicada 生成的样本合约的链接,该样本合约也依赖 Semaphore 来证明选民资格。
长期以来,投票系统一直是去中心化自治组织 (DAO) 的组成部分,DAO 是经常管理区块链应用程序的管理机构。但在大多数情况下,DAO 使用代币来代表选票,这意味着如果个人用户持有大量代币,他们可以产生巨大的影响力。例如,5 月 22 日,攻击者通过对恶意提案进行额外投票控制了 Tornado Cash ,用它来耗尽治理合约的所有资金。攻击者后来提出将控制权交还给用户。
Waves 创始人 Sasha Ivanov认为,如果要避免此类治理攻击,DAO 必须转向更民主的投票系统。
微信扫描关注公众号,及时掌握新动向
2.本文版权归属原作所有,仅代表作者本人观点,不代表比特范的观点或立场
2.本文版权归属原作所有,仅代表作者本人观点,不代表比特范的观点或立场