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

a16z:详解ZK链上投票项目Cicada工作原理

币灵灵财经 2024-11-06 10:45 1171

投票隐私性概述

·选票隐私性:秘密投票,也称为「澳大利亚式选举」(Australian ballot),是为了保护现实世界投票系统中个别选民的隐私,并减少贿赂和胁迫的一种方式(在链上环境中,我们可能需要比秘密投票更强大的机制,具体请参见下文的「无收据性」)。选票隐私性还可以减少社会期望偏差——人们不太会因为其他人对其选择的看法而投票。

·计票隐私性:许多投票系统在选民投票期间隐藏持续的投票统计,即每个选项收到的投票数量,以避免对投票率和选民激励产生影响。我们在现实世界中已经看到了这种情况:例如,较晚投票的美国参议员比较早投票的参议员更可能与他们的政党保持一致。而在链上的 Token 加权投票中,巨鲸可以通过让对手保持领先来维持他们的虚假安全感(有些人可能懒得投票,因为他们觉得这些人无论如何都会赢),然后在最后一刻投出自己的选票来左右结果。

·选民匿名性:在许多现实世界的投票系统中,你的选票是保密的,但是你是否投票通常可以被其他人知晓。这可以作为防止选民欺诈的保护措施,因为公布谁投票的记录可以让人们检查是否有人以他们的名义投票。然而,在链上,我们可以使用密码原语防止选民欺诈,同时保持匿名性——例如,使用 Semaphore,你可以用零知识的方式证明自己是一个合格的选民,并且尚未投票。

·无收据性:选民不应该向第三方提供选票的「收据」,以证明他们的选票如何投给了某个人,否则可能导致选票出售。抵抗胁迫(coercion-resistance)是另一个与之密切相关的属性,防止某人被迫以某种方式投票。在去中心化环境中,这些属性尤其吸引人,因为通过智能合约市场,投票权可以变得流动起来。不幸的是,这些属性非常难以实现。事实上,Juels 等人指出,这些特性在没有可信硬件的无许可设置中是不可能实现的。

Cicada 专注于持续的投票统计隐私,但是(正如我们后面将讨论的那样),它可以与零知识群组成员证明结合使用,以实现选民匿名性和选票隐私性。

Cicada:利用同态时间锁谜题实现计票隐私性

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

全新体系:效率与权衡

选择 RSA 模数 N 还涉及权衡。我们的方法使用了 1024 位的模数以提高 gas 效率。尽管这远高于已公开因子分解的最大 RSA 模数(为 829 位),但它低于通常推荐用于 RSA 加密或签名的 2048 位大小。然而,在我们的应用中,我们不需要长期安全性:一旦选举结束,如果未来 N 被分解,就不会有风险。在时间锁过期后,假设统计结果和选票将变得公开,因此使用相对较小的模数是合理的。(如果因子分解算法改进,这也可以很容易地在将来进行更新。)

匿名性和选民资格 选票统计机构

结语

Cicada 探索了链上投票隐私领域的众多方向,与其他团队正在进行的研究互为补充。如上所述,Cicada 与 Semaphore、ZK 存储证明和流量限制无效化器(rate-limiting nullifier)等匿名群组成员技术相辅相成。Cicada 还可以与 Nouns Vortex 团队提出的optimistic proof checker相结合,以减轻选民的 gas 负担。