a16z :Cicada 利用时间锁谜题和零知识证明实现链上投票
编译:Lynn,MarsBit
所有无论以何种有意义的方式运作的投票系统都依赖于完整性和透明度。从表面上看,这使得区块链成为构建这些系统的理想平台——事实上,许多去中心化的组织已经接受了无许可投票来表达集体意图,通常是在挥舞大量财富或调整关键协议参数的情况下。但是链上投票也有缺点,隐私仍未被探索和开发,对 Web3 投票系统不利——在目前使用的大多数链上投票协议中,选票和投票结果是完全公开的。如果没有隐私,投票结果很容易被操纵和选民激励错位,可能会导致不民主的结果。
在这篇文章中,我们调查了投票隐私的情况,并提供了关于 Cicada 如何工作的高层次描述(正式的证明即将到来)。我们还鼓励开发者查看GitHub 仓库——Cicada 可以通过许多方式进行调整和扩展,以支持不同的投票方案和功能,我们希望与社区合作,探索这些可能性。
在任何投票系统(链上或其他)中,有许多不同层次的隐私需要考虑。个别选票的披露、运行中的计票和选民身份都会以不同方式影响选民的积极性。哪些隐私属性是必要的,取决于投票的背景。在密码学和社会科学文献中经常出现的几个:
Cicada 专注于正在进行中计票隐私,但(正如我们在后面讨论的)它可以与零知识组成员证明联合,以达成选民的匿名性和选票隐私。
为了实现正在进行中计票的隐私,Cicada 利用了(据我们所知)以前从未在链上使用过的密码学基元。
其次,一个同构的时间锁谜题(Malavolta Thyagarajan, 2019)具有额外的属性,即在知道秘密密钥、解密谜题或使用后门的情况下,对加密值的一些计算是可能的。特别是,一个线性同态的时间锁谜题允许我们将谜题组合在一起,产生一个新的谜题,封装了原始谜题的秘密值的总和。
要使投票方案在链上实用,还需要考虑几个问题。首先,攻击者可能会试图通过投一个不正确的编码的选票来操纵投票。例如,我们可能希望每张选票的时间锁谜题都编码为一个布尔值:“1”表示支持被投票的提案,“0”表示反对。一个热心的提案支持者可能会试图编码,例如“100”来扩大他们的有效投票权。
为了使证明尽可能高效,我们使用了定制的sigma协议——为特定代数关系设计的零知识证明,而不是通用的证明系统。这使得证明者的时间非常快:用 Python 生成一个选票有效性证明,在一台现成的笔记本电脑上需要 14ms.
使用 ElGamal 的一个缺点是解密计数的最后一步需要暴力破解离散日志(请注意,这是在链下完成并在链上有效验证)。因此,它仅适用于预期的最终票数相当小的情况(例如小于 2^32,或大约 430 万票)。在最初的基于 Paillier 的方案中,无论其大小如何,计数都可以被有效地解密。
如上所述,Cicada 提供了运行计票隐私——时间锁定谜题属性在投票期间保持计票的私密性。然而,每个单独的选票也是一个时间锁难题,在相同的公共参数下加密。这意味着就像可以解密计数(通过执行必要的计算)一样,每张选票也可以。换句话说,Cicada 仅在投票期间保证选票隐私——如果好奇的观察者希望解密特定选民的选票,他们可以这样做。解密任何个人选票与解密最终计票一样昂贵,因此天真地需要 O(n) 的工作来完全解密有 n 名选民的选票。但是所有这些选票都可以并行解密(假设有足够多的机器),花费的挂钟时间与解密最终计票所需的时间相同。
在我们的存储库中,我们包含一个使用Semaphore进行选民匿名的示例合约。但是请注意,Cicada 合约本身没有对如何确定或执行选民资格做出任何假设。特别是,您可以将 Semaphore 替换为例如 Semacaulk 或 ZK 状态证明(如此处和此处所建议的)。
我们在设计 Cicada 时的首要任务之一是避免需要统计机构:许多私人投票结构需要一个半信任的统计机构(或授权委员会,通过安全的多方计算进行协调)接收和汇总选票。在区块链环境中,这意味着这些方案不能仅由智能合约执行,需要一些人为干预和信任。
尽管在许多现实世界的场景中,统计当局是一个合理(且必要)的假设,但它们在区块链环境中并不理想,我们的目标是最大限度地减少信任并确保审查阻力。
还有机会调整 Cicada 以支持不同的投票方案(例如代币加权投票、二次投票)——更复杂的方案对于以太坊主网来说可能计算成本太高,但它们在 L2 上可能是实用的。考虑到这一点,我们欢迎您就下一步将 Cicada 带到哪里做出贡献、分叉和建议。
(责任编辑:理财)
-
鼎晖以2亿的价格换取了俏江南10%股权,并与张兰签署了对赌协议,如果俏江南不能在2012年实现上市,张兰则需要花高价从鼎晖投资手中回购股份。...[详细]
-
狼人杀手机端应用的推出更加推波助澜。...[详细]
-
俄羅斯主要銀行將被要求在明年 7 月前為客戶提供數位盧布交易管道
一个像SharedCount这样的网站可以快速向你反馈你的网站在社交媒体上的表现如何。...[详细]
-
1991年圣诞节前夕,张兰怀揣着打工挣来的2万美元和创业梦,乘上了回国的飞机。...[详细]
-
我觉得这都是片面的,我认可的是运营就是经营,但这同样是个很大的词,而经营就是得用心、用脑慢慢去做的一件事。...[详细]
-
对大多数公司来说,少量买盘就可以带飞股价,少量卖盘就可以砸个大坑。...[详细]
-
所以,要说百度不是“套路王”,你能信? 晓枫说,游走在科技与人文之间,新浪创事记、虎嗅、百度百家、砍柴网、搜狐、艾瑞、品途等专栏作者,联系请加个人微信angaoeng。...[详细]
-
Kozmo的初衷建立外卖产业,但公司没能撑过互联网泡沫1.0。...[详细]
-
2007年,俏江南销售额已高达10亿元左右。...[详细]
-
10月31日建信高端医疗股票A净值下跌0.08%,今年来累计下跌9.05%
一、什么是运营 既然我写的是运营招数,按理来说首先要下定义,但我真的不知道。...[详细]