币灵灵财经
首页 > 币圈新闻 > 文章正文

a16z:Cicada如何利用时间锁谜题和ZK证明实现链上投票

币灵灵财经 2024-11-19 11:37 1446

私人投票的简要调查

选票隐私:秘密选票,也被称为「澳大利亚选票」,是为现实世界的投票系统开发的,作为保持个人选民的偏好的一种方式,并减轻贿赂和胁迫(在链上设置,我们可能需要一个比选票隐私更强大的属性——见下文的「无收据性」)。选票隐私还可以减轻社会期望偏差——某人基于他人对其选择的看法而投票的压力较小。

选民的匿名性:在许多现实世界的投票系统中,你的投票是不公开的,但你投了票的事实往往是公开的。这对于防止选民欺诈很重要,因为公布投票者的记录可以让人们检查是否有其他人以他们的名义投票。然而,在链上,我们可以防止选民欺诈,同时使用加密基元保留匿名性——例如,通过 Semaphore,你可以在零知识中证明你是一个还没有投过票的合格的选民。

Cicada 专注于正在进行中计票隐私,但(正如我们在后面讨论的)它可以与零知识组成员证明联合,以达成选民的匿名性和选票隐私。

介绍 Cicada: 来自同态时间锁难题的计票隐私

首先,时间锁谜题(Rivest, Shamir, Wagner, 1996 )是一个加密谜题,它封装了一个秘密,只有在一些预定的时间过后才能被揭示——更具体地说,这个谜题可以通过重复进行一些非平行计算来解密。时间锁定谜题在投票的背景下对于实现运行统计的隐私很有用: 用户可以将他们的选票作为时间锁谜题提交,这样他们在投票过程中是保密的,但在投票后可以被揭露。与其他大多数私人投票结构不同的是,这使得运行统计隐私不需要依赖统计机构(如选举工作人员计算纸质或数字选票)、阈值加密(几个受信任方必须合作解密一个消息)或任何其他受信任方:任何人都可以解决一个时间锁谜题,以确保投票后结果被揭示。

一个新的结构:效率和权衡

选择 RSA 模数 N 也涉及权衡。 我们的实现使用 1024 位模数来提高 gas 效率。虽然这远高于有史以来公开分解的最大 RSA 模数(829 位),但低于 通常推荐的大小为 2048 位,用于 RSA 加密或签名。但是,我们的应用程序不需要长期安全性:一旦选举结束,如果将来考虑 N 就没有风险。假定计票和选票在时间锁定期满后公开,因此使用相对较小的模数是合理的。 (如果分解算法改进,这也可以在未来轻松更新。)

匿名和选民资格

统计当局

Cicada 探索了链上投票隐私领域的众多方向之一,并补充了其他团队正在进行的大部分研究。如上所述,Cicada 与信号量、ZK 存储证明和限速无效器等匿名组成员技术密切相关。Cicada 还可以集成 Nouns Vortex 团队提出的 optimistic 证明检查器,以减轻选民的 gas 负担。