Cointime

扫码下载App
iOS & Android

a16z:构建Cicada,利用时间锁谜题和零知识证明实现链上私密投票

个人专家

所有投票系统都需要完整性和透明度才能真正发挥作用。从表面上看,这使得区块链成为构建这些系统的理想平台 —— 实际上,许多去中心化组织已经采用无许可投票来表达集体意愿,通常是在动用大量资金或调整关键协议参数的情况下。然而,链上投票也存在缺陷,尤其是隐私问题尚待解决,这对 web3 投票系统不利。在目前大多数链上投票协议中,选票和计票都是完全公开的。没有隐私保护,投票结果容易受到操纵和选民激励失衡,可能导致不民主的结果。

正因如此,我们推出了Cicada:一个全新的开源Solidity库,利用时间锁谜题(time-lock puzzles)和零知识证明(zero-knowledge proofs)实现链上私密投票。与现有系统相比,Cicada具有独特的隐私特性,最小化信任假设,并且效率足够高,可以在以太坊主网上运行。

在本文中,我们将探讨投票隐私的现状,并提供关于Cicada工作原理的概要说明。同时,我们鼓励开发者查阅GitHub。Cicada可以通过多种方式进行调整和扩展,以支持不同的投票方案和功能,我们希望与社区共同探讨这些可能性。

私密投票简要探讨

在任何投票系统(链上或其他),我们需要关注多种不同的隐私层次。个人选票的公开程度、实时计票以及选民身份都会以各种方式影响选民激励。所需的隐私属性取决于投票的具体场景。以下是密码学和社会科学文献中经常涉及的一些方面:

  • 选票隐私:无记名投票,又称“澳大利亚式选票”,是为现实世界投票系统设计的,旨在保护个人选民的偏好隐私,减少贿赂和胁迫(在链上环境中,我们可能需要比选票隐私更强的属性——见下文的“无收据”)。选票隐私还能减轻社会期望偏差,即人们根据他人对其选择的看法来投票的压力降低。
  • 实时计票隐私:许多投票系统对实时计票结果进行隐藏,或者在选民仍在投票时不公开各个选项的票数,以避免影响投票率和选民激励。我们在现实世界中已经看到了这种情况。例如,美国晚投票的参议员比早投票的参议员更有可能与他们的政党保持一致。在链上环境中,在代币加权投票中,大鳄可以通过让自己领先(有人可能因认为自己无论如何都会赢而懒得投票),给对手制造虚假的安全感,然后在最后一刻投票决定胜负。
  • 选民匿名:在许多现实世界投票系统中,虽然你的投票是保密的,但你投票的事实通常是公开的。这对于防止选民欺诈至关重要,因为公开有关谁进行投票的记录,可以让人们检查是否有人冒用他们的名义投票。然而,在链上环境中,我们可以在使用加密原语保持匿名的同时防止选民欺诈。例如,使用信标,你可以在零知识情况下证明你是一个尚未投票的合格选民。
  • 无收据:个人选民提供选票的“收据”,以证明他们是如何向第三方投票的,否则可能导致选票被出售。一个密切相关但更强大的属性是抗胁迫性,它可以防止某人强迫选民以某种方式投票。这些属性在去中心化环境中尤为有吸引力,因为在这种环境中,投票权可以通过智能合约市场实现流动。遗憾的是,这些属性也很难实现。实际上,Juels等人认为,在没有可信硬件的情况下,在未经许可的环境中实现这些属性是不可能的。

Cicada主要关注实时计票隐私,不过它可以与零知识成员证明相结合,以实现选民匿名和选票隐私。

Cicada简介:同态时间锁谜题在保护隐私方面的应用

为了实现投票计数的隐私保护,Cicada采用了一种加密原语,据我们所知,此原语以前从未在链上应用过。

首先,时间锁谜题(Rivest, Shamir, Wagner, 1996)是一种加密谜题,其封装了一个秘密,只有在经过预定时间后才能揭示。更具体地说,这种谜题的解密需要通过重复执行一些不可并行计算的操作来完成。时间锁谜题在投票场景中非常实用,因为它可以实现投票计数的隐私保护:用户可以将他们的选票作为时间锁谜题提交,这样在投票期间选票保密,但在投票结束后可以公开。不同于其他大多数私密投票结构,这种方法不依赖计票机构(如选举工作人员清点纸质选票或数字选票)、阈值加密(需要多个受信任方合作解密消息)或任何其他受信任方:任何人都可以解开时间锁谜题,确保在投票结束后公布结果。

其次,同态时间锁谜题(Malavolta Thyagarajan, 2019)具有额外的特性,即在知道密钥、解密谜题或使用后门的情况下,仍可对加密值进行部分计算。特别是,线性同态时间锁谜题允许我们将多个谜题组合在一起,生成一个新的谜题,其封装了原始谜题加密的秘密值之和。

正如论文作者所指出的,线性同态时间锁谜题是一种非常适合私密投票的原语:选票可以被编码为谜题,然后通过同态方式组合它们,从而得到一个包含最终投票计数编码的谜题。这意味着只需进行一次计算,就可以揭示最终的投票结果,而无需为每张选票单独解决一个谜题。

新结构:效率与权衡

要确保链上投票方案切实可行,我们还需要考虑更多因素。

首先,攻击者可能试图通过提交编码错误的选票来操纵投票结果。例如,我们可能希望每张选票的时间锁谜题都编码一个布尔值:“1”表示支持提案,“0”表示反对。热衷于提案的支持者可能会尝试编码“100”,从而增加他们的有效投票权。

为了防止这种攻击,我们可以让选民在提交选票时附上一份证明选票有效性的零知识证明。尽管零知识证明在计算上可能较为昂贵,但为了降低选民参与成本,证明应该是:(1)客户端易于计算,(2)链上易于验证。

为了让证明尽可能高效,我们使用了定制的sigma协议,这是一种针对特定代数关系设计的零知识证明,而非通用证明系统。这实现了极快的证明时间:在普通笔记本电脑上使用Python生成选票有效性证明仅需14毫秒。

虽然这个sigma协议的验证过程在概念上很简单,但它需要进行一些大量的模幂运算。Malavolta和Thyagarajan的线性同态方案采用了Paillier加密,因此这些模幂运算会在某些RSA模数N下以N^2为模进行。对于合理大小的N,模幂运算在大多数EVM链上的成本非常高(数百万gas)。为了降低成本,Cicada采用了指数ElGamal加密,它仍提供加法同态,但在较小的模数(N而非N^2)下工作。

使用ElGamal的一个缺点是,在解密计数的最后一步需要暴力破解离散对数(请注意,这是在链下完成并在链上有效验证)。因此,它仅适用于预期的最终票数较小的情况(例如小于2^32,约430万票)。在最初基于Paillier的方案中,无论票数大小如何,都可以有效地进行解密。

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

匿名性与选民资格

如前所述,Cicada 为投票过程提供了隐私保护——通过时间锁定谜题属性在投票期间保密地进行计票。然而,每张选票本身也是一个时间锁定的谜题,它们在相同的公共参数下被加密。这意味着,就像可以解密投票总数(通过执行必要的计算)一样,每张选票也可以被解密。换言之,Cicada 仅在投票期间确保选票的隐私——如果有人好奇地想要解密特定选民的选票,他们可以这样做。解密任何个人选票的成本与解密最终投票总数一样高昂,因此,天真地想要完全解密拥有 n 个选民的选票需要 O(n) 的工作量。但是,所有这些选票可以并行解密(假设有足够多的计算机),所花费的时钟时间与解密最终投票总数所需的时间相同。

对于某些选票来说,这可能是不可接受的。虽然我们对投票过程中的暂时性隐私保护感到满意,但我们可能希望选票的隐私保护无限期地持续。为了实现这一目标,我们可以将 Cicada 与匿名选民资格协议相结合,通过零知识组成员证明实例化。这样,即使选票被解密,它所揭示的信息也仅仅是有人以这种方式投票——而这一点我们已经从投票总数中了解到了。无需计票机构在设计 Cicada 时,我们的一个主要目标之一是避免依赖计票机构:许多私人投票方案需要一个半信任的计票机构(或权力委员会,通过安全的多方计算进行协调)来接收和汇总选票。在区块链环境中,这意味着这些方案不能仅通过智能合约实施,而需要一些人为干预和信任。

在大多数方案中,计票机构的诚实性不被信任(他们无法操纵选票计数),但他们的活跃度是可信的——如果他们离线,就无法计算最终结果,从而使投票结果无限期地延迟。在某些方案中,他们还被信任以维护隐私——即他们知道每个人的投票方式,但预计会在不泄漏此信息的情况下公布投票结果。

尽管在许多现实世界的场景中,计票机构是一个合理(且必要)的假设,但在区块链环境中,它们并不理想,我们的目标是尽可能减少信任并确保抗审查性。

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

有可能调整 Cicada 以支持不同的投票方案(例如代币加权投票、二次投票)——更复杂的方案对于以太坊主网来说计算成本可能过高,但它们在 L2s 上可能是实用的。考虑到这一点,我们欢迎您为 Cicada 的未来发展提供贡献、分叉和建议。

致谢:Cicada 是与 Joseph Bonneau 共同开发的。感谢 Andrew Hall 提供关于投票隐私历史背景的信息。同时要感谢 Robert Hackett 对本文的反馈。特别感谢 Stephanie Zinn 的编辑工作。

评论

所有评论

推荐阅读

  • 美联储卡什卡利:需要更加关注实际通胀

    美联储卡什卡利表示,美联储正在关注经济中的潜在需求以降低通胀;需要更加关注实际通胀;住房市场的韧性一直都超过预期;当前,我非常注重住房问题对于美国通胀的影响;重要问题是目前政策的限制程度如何。 美联储卡什卡利表示,我们可能需要将利率在当前水平再维持一段时间,以弄清通胀的走向;美联储的资产负债表缩减进展顺利。

  • 美司法部:攻击以太坊区块链盗取2500万美元加密货币的两兄弟被捕

    5月16日消息,美国司法部南区检察官办公室宣布 Anton Peraire-Bueno 和 James Peraire-Bueno 两兄弟因涉嫌利用以太坊区块链的漏洞,在大约 12 秒内盗取价值约 2500 万美元的加密货币而被捕。 据起诉书称,这两名嫌疑人在美国一所著名高校学习数学和计算机科学,利用他们的专业知识操纵和篡改了以太坊区块链的交易验证和添加协议,以此欺诈性地获取受害者的加密货币。这是有史以来首次发生此类攻击事件。两人被指控合谋实施电信欺诈、电信欺诈以及合谋洗钱,每项罪名最高可判处 20 年监禁。美国司法部副部长莫纳科表示,尽管被告策划了数月并在几秒内实施了这一复杂且前所未见的欺诈行为,但仍难逃法网。

  • 美国众议院推翻有争议的SEC规则的决议可能会在参议院通过

    多位知情人士透露,美国众议院提出的一项决议有望在参议院投票表决中获得通过。该决议旨在撤销美国证券交易委员会(SEC)此前发布的员工会计公告121(SAB 121)。 SAB 121 要求企业将持有的加密资产记录在自己的资产负债表上,但批评者认为这一规定过于严苛,实质上阻碍了主要托管机构和公司为客户持有加密资产。上周,美国众议院已投票决定推进这一决议。 消息人士称,参议院可能在当地时间周四上午晚些时候就该决议进行投票,目前该决议在参议院「处于有利地位」,预计将有多名民主党议员投票支持。如果该决议最终获得通过并由总统拜登签署,SEC 将被禁止发布任何类似的指引。不过白宫此前曾威胁称,一旦决议在参议院获得通过,拜登将行使否决权。

  • DeFi协议Shogun开发商Intensity Labs完成690万美元种子轮融资

    DeFi协议Shogun的开发商Intensity Labs在种子轮融资中筹集了690万美元。Intensity Labs表示,Polychain Capital和DAO5共同领投此轮融资,Arrington Capital、Arthur Hayes的家族办公室Maelstrom和Build-a-Bera参与其中。Cobie、Ansem、Ser Shokunin和Meltem Demirors等天使投资人也参与了本轮融资。

  • 区块链软件即服务解决方案AfriDex完成500万美元Pre-Seed轮融资,Endeavor Ventures领投

    总部位于英国伦敦的区块链软件即服务解决方案AfriDex宣布完成500万美元Pre-Seed轮融资,Endeavor Ventures领投,African Crops Limited、Oldenburg Vineyards和Hank Oberoi参投。AfriDex目前主要专注于农业市场,通过全面的链上解决方案为供应链参与者提供支持和保护,利用区块链技术实现可追溯性、无摩擦支付、防欺诈交易、经过验证的认证、简化税收和补贴管理。

  • Bitget Wallet推出1000万美元生态系统基金,拟于本季度发布BWB代币

    Bitget Wallet宣布与Onchain Layer共同推出1000万美元生态系统基金,该生态系统基金以 Bitget Wallet 的原生代币BWB计价,该代币计划于本季度发布,据悉BWB是该交易所同名自我托管钱包的原生代币,类似于Trust Wallet 代币 (TWT),新基金将加速 Bitget Onchain Laye 的开发并支持项目构建。

  • 俄克拉荷马州通过“比特币权利”法案,保护数字资产自我保管权和挖矿权

    俄克拉荷马州州长Kevin Stitt周一签署了一项广泛的“比特币权利”法案,保护了俄克拉荷马人自我保管数字资产的权利。该法案还使俄克拉荷马居民在家和工业规模上挖掘加密货币合法化。该法案HB3594由共和党州议员Brian Hill提出,并由共和党州参议员Bill Coleman在参议院提出。该法案的签署是加密货币倡导者的一大亮点,因为联邦监管机构一直在通过对加密货币公司和开发人员的执法行动来监管加密货币行业。

  • 专注于零知识证明的区块链Gevulot完成600万美元种子轮融资,Variant领投

    专注于零知识证明的区块链Gevulot完成600万美元种子轮融资,Variant领投,RockawayX、Volt Capital 和 Stake Facilities 以及 Polygon Labs 首席执行官 Marc Boiron 和 Manta Network 创始人 Shumo Chu 等个人支持者参与。 Gevulot 没有透露其估值。 Gevulot 计划将资金分配给其L1区块链的推出,该区块链使开发人员能够利用ZK 证明并将计算任务委托给先进的硬件运营商网络。

  • 中科大首次实现以器件无关量子随机数产生器,消除非交互式零知识证明安全隐患

    中国科学技术大学潘建伟院士等研究者首次实现一套以器件无关量子随机数产生器作为熵源,以后量子密码作为身份认证的随机数信标公共服务,将其应用到零知识证明领域中,消除了非交互式零知识证明中实现真随机数的困难所带来的安全隐患,提高了非交互式零知识证明的安全性。非交互式零知识证明广泛应用于数字签名、区块链和身份认证等领域,由于真随机数生成器难以实现,通常会使用确定性的伪随机数算法来替代。 据了解,此次研究工作首次将量子非局域性、量子安全算法和零知识证明3个不同的领域结合起来,大幅提升了零知识证明的安全性,其中构建的面向公众的随机数服务在密码学、彩票业和社会公益等领域有着重要的应用潜力。

  • 零知识加密公司Toposware融资500万美元,Polygon联创参投

    零知识加密技术公司Toposware宣布完成500万美元的战略种子延期融资,投资者包括Evolution Equity Partners、Triatomic Capital、K2 Access Fund和Polygon联合创始人Sandeep Nailwal。 新闻稿称,最新一轮融资的目的是吸引主要风险投资公司和行业领导者加入,他们在制定全球标准、扩大无处不在的产品以扩大市场份额以及调整目标市场领域的准入和效用方面拥有直接经验。