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

原文标题:《BuildingCicada:Privateon-chainvotingusingtime-lockpuzzles》

作者:MichaelZhu,a16z?

编译:Lynn,MarsBit

所有无论以何种有意义的方式运作的投票系统都依赖于完整性和透明度。从表面上看,这使得区块链成为构建这些系统的理想平台——事实上,许多去中心化的组织已经接受了无许可投票来表达集体意图,通常是在挥舞大量财富或调整关键协议参数的情况下。但是链上投票也有缺点,隐私仍未被探索和开发,对Web3投票系统不利——在目前使用的大多数链上投票协议中,选票和投票结果是完全公开的。如果没有隐私,投票结果很容易被操纵和选民激励错位,可能会导致不民主的结果。

这就是为什么我们要发布Cicada:一个新的、开源的Solidity库,利用时间锁谜题和零知识证明来实现私人链上投票。与现有的系统相比,Cicada具有新颖的隐私属性,最大限度地减少了信任假设,并且足够高效,可以在以太坊主网上使用。

在这篇文章中,我们调查了投票隐私的情况,并提供了关于Cicada如何工作的高层次描述。我们还鼓励开发者查看?GitHub仓库——Cicada可以通过许多方式进行调整和扩展,以支持不同的投票方案和功能,我们希望与社区合作,探索这些可能性。

a16z过去24小时向SolidLizard和Solidly V2两个协议注入资金:金色财经报道,据链上分析师@0xsurferboy在社交媒体上发布的数据显示,a16z在过去24小时内一直在向SolidLizard和Solidly V2两个协议注入资金。1天前,a16z的投资组合中SolidLizard的锁定资金为200万美元,Solidly为0美元,就在约14小时前,a16z买入并在WETH-USDC池中又增加了150万美元,APR为58%-145%,695枚SLIZ被锁定,APR约为130%。而在大约4小时前,a16z又向USDC-USDT Solidly V2池中增加了520万美元,这一系列操作迅速将SolidLizard锁仓量推升到6030万美元并跻身Arbitrum链上锁仓量排名前十,而一周前SolidLizard锁仓量仅为1200万美元,目前增幅达到400%。[2023/2/20 12:18:00]

私人投票的简要调查

在任何投票系统中,有许多不同层次的隐私需要考虑。个别选票的披露、运行中的计票和选民身份都会以不同方式影响选民的积极性。哪些隐私属性是必要的,取决于投票的背景。在密码学和社会科学文献中经常出现的几个:

a16z Crypto总法律顾问:Kraken与SEC达成和解不会影响其他交易平台:2月10日消息,a16z Crypto总法律顾问Miles Jennings针对Kraken与SEC达成和解一案发表评论称:质押对生态系统来说非常重要,质押即服务项目既合法,也允许更多人参与区块链技术。我们认为这一和解协议将不会对已制定计划不涉及证券法的交易平台产生任何影响。

作为Web3的重要投资者和正在建设下一代互联网的企业,a16z对Gensler主席继续证明他只知道如何通过零星的执法案件进行监管感到失望。距离美国证券交易委员会(SEC)上一次发布与加密货币相关的指导意见已经过去了四年,其主席继续专注于上头条,而不是根据SEC的核心使命保护投资者。现在是他优先考虑规则和指导的时候了,这些规则和指导将使市场更加清晰,并积极主动地保护公众。[2023/2/10 11:58:45]

选票隐私:秘密选票,也被称为“澳大利亚选票”,是为现实世界的投票系统开发的,作为保持个人选民的偏好的一种方式,并减轻贿赂和胁迫。选票隐私还可以减轻社会期望偏差——某人基于他人对其选择的看法而投票的压力较小。

正在进行中计票的隐私:许多投票系统在选民仍在投票时隐藏正在进行中的计票,或每个选项已经投了多少票,以避免影响投票率和选民激励。我们已经在现实世界中看到了这种情况;例如,较晚投票的美国参议员比较早投票的参议员更有可能与他们的政党保持一致。而在链上:在代币加权投票中,鲸鱼可以通过让对手保持领先来哄他们的虚假安全感,然后在最后一刻投出自己的选票来左右结果。

James Gwertzman将退出风投公司A16z和Games Fund One:金色财经报道,A16z普通合伙人James Gwertzman将离开风险投资公司A16z和Games Fund One。Gwertzman帮助领导了6亿美元的Games Fund One。A16z已成为web3开发人员和平台的最大投资者之一。去年5月,A16z宣布了其6亿美元的Games Fund One。在宣布这一消息时,A16z表示Gwertzman将帮助领导专注于web3游戏的基金。[2023/1/19 11:19:42]

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

无收据性:个人选民提供其选票的“收据”,以证明他们是如何向第三方投票的,否则可能导致卖票。一个密切相关但更强大的属性是抗胁迫,它可以防止有人胁迫选民以某种方式投票。这些属性在去中心化的环境中特别有吸引力,因为投票权可以通过智能合约市场实现流动性。不幸的是,它们也很难实现——事实上,Juels等人指出,在没有可信硬件的情况下,这在无许可的环境下是不可能的。

a16z Crypto建议开发人员在部署ERC-4626前使用其编写的标准属性进行测试:10月28日消息,a16z Crypto编写了代币化资金库标准(ERC-4626)的标准属性,并针对约100个ERC-4626 Vault测试了该属性,发现许多Vault未能遵循标准要求。

a16z Crypto表示,ERC-4626的创建旨在使协议整合更加容易,但调整现有Vault并不简单,每一个ERC-4626 Vault都必须准确执行标准的描述要求,这种复杂性很可能导致安全漏洞。因此 a16z编写了ERC-4626标准属性以捕捉要求中容易被忽视的细节差异,建议开发人员在部署前进行测试以检查潜在问题,Vault集成商也可以在将集成前检查给定的Vault是否符合标准。

根据介绍,ERC-4626于3月正式推出,目前支持该标准的协议包括 Balancer、Maple Finance、Yearn Finance V3、Convex等。[2022/10/28 11:52:25]

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

Web 3支持者、a16z合伙人Chris Dixon将Twitter名称换成cdixon.eth:金色财经报道,Web 3支持者、a16z合伙人Chris Dixon将Twitter名称换成cdixon.eth,此前他与前Twitter首席执行官Jack Dorsey就Web 3问题发生了激烈争论,但他并未取关和屏蔽Jack Dorsey。[2021/12/24 8:01:59]

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

为了实现正在进行中计票的隐私,Cicada利用了以前从未在链上使用过的密码学基元。

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

其次,一个同构的时间锁谜题具有额外的属性,即在知道秘密密钥、解密谜题或使用后门的情况下,对加密值的一些计算是可能的。特别是,一个线性同态的时间锁谜题允许我们将谜题组合在一起,产生一个新的谜题,封装了原始谜题的秘密值的总和。

正如论文作者所指出的,线性同态的时间锁谜题是一种特别适合于私人投票的基元:选票可以被编码为谜题,并且它们可以被同态地组合起来,以获得一个编码最终计票的谜题。这意味着只需要一次计算就可以揭示出最终结果,而不是为每张选票解决一个独特的谜题。

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

要使投票方案在链上实用,还需要考虑几个问题。首先,攻击者可能会试图通过投一个不正确的编码的选票来操纵投票。例如,我们可能希望每张选票的时间锁谜题都编码为一个布尔值:“1”表示支持被投票的提案,“0”表示反对。一个热心的提案支持者可能会试图编码,例如“100”来扩大他们的有效投票权。

我们可以通过让选民在提交选票本身的同时提交一份关于选票有效性的零知识证明来防止这种攻击。不过零知识证明的计算成本很高——为了尽可能降低选民参与的成本,证明应该是可有效计算的客户端和可有效验证的链上证明。

为了使证明尽可能高效,我们使用了定制的?sigma协议——为特定代数关系设计的零知识证明,而不是通用的证明系统。这使得证明者的时间非常快:用Python生成一个选票有效性证明,在一台现成的笔记本电脑上需要14ms.

虽然该sigma协议的验证器在概念上很简单,但它需要相当一部分大的模幂。Malavolta和Thyagarajan的线性同态方案使用?Paillier加密,因此这些求幂将对某些RSA模N以N^2为模执行。对于合理大小的N,在大多数EVM链上,取幂非常昂贵。为了降低成本,Cicada使用?指数ElGamal——指数ElGamal仍然提供加性同态,但在更小的模数上工作。

使用ElGamal的一个缺点是解密计数的最后一步需要暴力破解离散日志。因此,它仅适用于预期的最终票数相当小的情况。在最初的基于Paillier的方案中,无论其大小如何,计数都可以被有效地解密。

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

匿名和选民资格

如上所述,Cicada提供了运行计票隐私——时间锁定谜题属性在投票期间保持计票的私密性。然而,每个单独的选票也是一个时间锁难题,在相同的公共参数下加密。这意味着就像可以解密计数一样,每张选票也可以。换句话说,Cicada仅在投票期间保证选票隐私——如果好奇的观察者希望解密特定选民的选票,他们可以这样做。解密任何个人选票与解密最终计票一样昂贵,因此天真地需要O(n)的工作来完全解密有n名选民的选票。但是所有这些选票都可以并行解密,花费的挂钟时间与解密最终计票所需的时间相同。

对于某些选票,这可能是不可取的。虽然我们对临时运行计票隐私感到满意,但我们可能希望无限期投票隐私。为实现这一点,我们可以将Cicada与匿名选民资格协议结合起来,通过零知识组成员身份证明进行实例化。这样,即使选票被解密,它所揭示的只是某人以这种方式投票——我们已经从计票中知道了这一点。

在我们的存储库中,我们包含一个使用?Semaphore?进行选民匿名的示例合约。但是请注意,Cicada合约本身没有对如何确定或执行选民资格做出任何假设。特别是,您可以将Semaphore替换为例如Semacaulk或ZK状态证明。

统计当局

我们在设计Cicada时的首要任务之一是避免需要统计机构:许多私人投票结构需要一个半信任的统计机构接收和汇总选票。在区块链环境中,这意味着这些方案不能仅由智能合约执行,需要一些人为干预和信任。

在大多数结构中,计票当局在完整性方面不受信任,但在活性方面值得信任——如果他们离线,则无法计算最终结果,从而无限期地拖延投票结果。在某些结构中,他们也被信任维护隐私——也就是说,他们了解每个人如何投票,但预计会在不透露此信息的情况下公布投票结果。

尽管在许多现实世界的场景中,统计当局是一个合理的假设,但它们在区块链环境中并不理想,我们的目标是最大限度地减少信任并确保审查阻力。

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

还有机会调整Cicada以支持不同的投票方案——更复杂的方案对于以太坊主网来说可能计算成本太高,但它们在L2上可能是实用的。考虑到这一点,我们欢迎您就下一步将Cicada带到哪里做出贡献、分叉和建议。

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

银河链

[0:0ms0-1:852ms