bg

Broearn

https://discord.gg/jya9XgaTyHhttps://t.me/broearn_browserhttps://twitter.com/broearn
下载 App
Broearn事件 > 详情

什么是零知识证明-详解

发布时间 2023-08-08 19:32:32

零知识证明是密码学领域中一个引人入胜的概念,因其增强安全性和隐私的潜力而备受关注。在数据泄露和隐私问题普遍存在的日益数字化的世界中,零知识证明提供了应对这些挑战的强大工具。本文旨在全面理解零知识证明,探索其在各个领域的定义、应用和意义。

在当今互联和数据驱动的社会中,在允许安全交互的同时保护敏感信息至关重要。零知识证明为实现这一微妙平衡提供了一种创新方法。通过使一方能够在不透露任何额外信息的情况下向另一方证明声明的知识,零知识证明有可能发展区块链技术、身份验证系统和安全通信等领域。

什么是零知识证明

零知识证明是一种数学协议,允许一方验证另一方而不会泄露任何超出声明有效性的信息.

零知识证明是一种数学协议,允许一方说服另一方验证陈述的真实性,而不会透露任何超过陈述有效性的信息。本质上,零知识证明使证明者能够建立给定事实或主张的知识,而不会透露该知识是如何获得的。

零知识证明的起源

Shafi Goldwasser、Silvio Micali和Charles Rackoff于1985年首次提出了零知识证明的概念。这是密码学领域的一项改变游戏规则的创新,允许在不泄露敏感信息的情况下验证信息。从那时起,零知识证明的重要性越来越大,并在各个领域找到了各种用途,包括区块链技术、安全认证系统和安全计算。

零知识证明的重要性

零知识证明是应用密码学的一个突破,因为它们有望提高个人的信息安全性。考虑一下你如何向另一方(例如,服务提供商)验证索赔(例如,“我是X国家的公民”)。你必须出示“证据”来支持你的主张,例如国家护照或驾照。

然而,这种策略也有缺点,最明显的是需要更多的隐私。与第三方在线服务交换的个人身份信息(PII)存储在可以被黑客攻击的中央数据库中。随着身份盗窃成为一个重大问题,人们越来越渴望新的隐私保护方法来传递敏感信息。

零知识证明的重要性在于,它们可以消除提供信息以验证声明有效性的要求。零知识协议将断言(一个'见证')作为输入,并简明地证明其事实。该证明确保声明是真实的,而不会泄露创建它所需的信息。

回到我们之前的例子,零知识证明是你验证你的公民身份要求所需要的唯一证据。验证者需要检查证明的特定方面是否有效,以确信基本陈述是真实的。

零知识证明如何运作?

零知识证明如何运作?

零知识证明允许你证明一个命题的真实性,而不暴露其内容或你是如何得到事实的。零知识协议依赖于将一些数据作为输入并产生“真”或“假”作为输出的算法。

零知识协议的要求

零知识协议必须满足以下要求:

完整性

如果输入是真实的,零知识协议总是返回“真”。因此,如果基本命题为真并且证明者和验证者诚实地行事,则证据可以被接受。

健全度

如果输入有错误,理论上不可能欺骗零知识协议返回“真”。因此,欺骗性证明者不能欺骗诚实的验证者相信无效语句是真实的(除非有很小的概率)。

零知识

验证者对陈述除了真假之外一无所知(他们对断言“一无所知”)。这个标准也排除了验证者从证明中推断出原始输入(陈述的内容)。

零知识证明的3个要素

零知识证明包括见证、挑战和回应

证人

证明者使用零知识证明来证明对某些机密信息的了解。证据的“见证人”就是秘密信息,证明者对见证人的假定了解产生了一系列问题,这些问题只有知道信息的一方才能回答。因此,证明者通过随机选择一个问题,计算答案,并将其传递给验证者来开始证明过程。

挑战

验证者从集合中随机选择另一个问题,并要求证明者回答。

回应

证明者接受查询,计算答案,并将其返回给验证者。证明者的响应允许验证者确定前者是否真的可以接触到证人。验证者选择更多的问题来问,以确保证明者不会不假思索地猜测并偶然获得正确的答案。通过多次重复这种交换,证明者伪造证人知识的机会大大减少,直到验证者满意为止。

“交互式零知识证明”的结构如上所述。证人、挑战和响应也是“零知识证明的3个要素”中描述的零知识证明的一部分。早期的零知识协议使用交互式证明,这需要证明者和验证者之间的来回通信来检查陈述的真实性。

2种类型的零知识证明

2种类型的零知识证明

通常有两种类型的零知识证明。它们是交互式零知识证明和非交互式零知识证明。

1)交互式零知识证明

交互式零知识证明(ZKPs)需要证明者和验证者之间的交互。证明者和验证者来回通信,证明者向验证者发送一系列消息。根据前面的语句,验证者向证明者发送一条质疑消息,证明者回答类似。重复此方法,直到验证者确定断言为真。

ZKP比非交互式的更安全,因为验证者可以根据证明者的行为调整其挑战,从而降低成功攻击的风险。缺点是它们消耗更多时间并且需要更多计算资源。

以下是一些交互式零知识证明算法:

Schnorr协议-Schnorr协议是一种零知识交互式证明,允许证明者展示与公钥关联的私钥的知识,而无需展示私钥本身。这种机制用于数字签名,证明者必须证明私钥的所有权,而无需向验证者披露。

·Zcash协议-Zcash协议是一种交互式零知识证明,允许用户在不透露发送者、接收者或交易金额的情况下证明交易的存在。Zcash加密货币使用该协议来确保交易隐私和匿名性。

2)非交互式零知识证明

非交互式零知识证明(非交互式ZKPs)不需要证明者和验证者进行交互。证明者根据陈述构建解释并将其传递给验证者,验证者对其进行验证。证明是通过散列信息并采用加密技术生成可以使用公钥确认的证据来生成的。

非交互式ZKP比交互式ZKP更快,使用的计算资源更少。尽管如此,它们的安全性较低,因为验证者无法使其挑战适应证明者的行为。

以下是一些非交互式的零知识证明算法实例:

菲亚特-沙米尔变换——菲亚特-沙米尔变换是一种非交互式零知识证明,允许证明者在不与验证者沟通的情况下证明证人对陈述的理解。当选民希望证明他们的投票在不暴露姓名的情况下成功记录时,这种类型的证明通常用于电子投票系统。

防弹-防弹是比特币交易中用于验证范围证明的非交互式零知识证明。范围证明证明隐藏值落在特定范围内。防弹在计算资源有限的设置中特别有效,因为它们可以创建比其他非交互式协议更小的证明。

索尼克-索尼克是一种非交互式零知识证明技术,用于验证对机密数据的计算,例如区块链系统中智能合约所做的计算。它以其可扩展性和效率而闻名,使其适合大规模应用。

Groth16-Groth16是一种非交互式零知识证明技术,常用于匿名凭证系统和私人比特币交易等隐私保护应用,因其出色的效率和安全性而以大规模应用而闻名。

·极光-极光是一种非交互式零知识证明技术,用于验证加密材料上的计算。当许多方需要对敏感数据执行计算而不相互披露数据时,它很有帮助。

零知识证明的例子

零知识证明的例子

匿名支付

零知识证明用于隐藏加密货币交易并保护隐私。使用信用卡进行的支付经常对多方可见,包括支付提供商、银行和其他相关方(例如政府当局)。虽然金融监控可能有助于发现非法活动,但它也侵犯了普通人的隐私。

公共区块链上的交易进行匿名处理也在使用零知识证明。Tornado Cash就是一个例子,它是一种分散的、非托管的服务,允许用户在以太坊上进行私人交易。Tornado Cash采用零知识证明来隐藏交易细节并确保财务隐私。

身份保护

个人信息在当前的身份管理系统中处于危险之中,个人可以使用零知识证明来确认自己的身份,同时保护敏感数据。

在去中心化身份识别的背景下,零知识证明特别有用。去中心化身份识别(也称为自我主权身份')允许个人管理对个人标识符的访问。在不披露您的税务ID或护照信息的情况下证明您的公民身份是零知识证明技术支持去中心化身份的一个很好的例子。

身份验证

使用在线服务需要确定您的身份并获得使用这些网站的授权。这通常需要提供个人信息,如姓名、电子邮件地址、出生日期等。您可能还需要记住长密码以保持访问权限。

然而,零知识证明可以使平台和用户的身份验证更加容易。一旦利用公共输入(如证明用户平台成员资格的数据)和私人输入(如用户的详细信息)构建了防ZK,用户可以在访问服务时提交它来验证他们的身份。这改善了用户体验,并使企业无需保留大量用户数据。

可验证计算

零知识证明技术用于改进区块链架构的另一个应用是可验证计算。可验证计算允许我们将计算委托给另一个实体,同时确保可验证的结果。实体提交结果并验证程序是否正确执行。

可验证的计算对于在保持安全性的同时提高区块链处理速度至关重要。理解这一点需要理解以太坊建议的扩展解决方案之间的差异。链上扩展选项,如分片,需要对区块链的基础层进行重大更改。然而,这种方法非常复杂,实现缺陷可能会危及以太坊的安全模型。

链下扩展解决方案不需要更改以太坊协议。相反,他们依靠外包计算方法来提高以太坊基础层的吞吐量。

可验证计算在这里发挥作用。当一个节点在以太坊之外执行交易时,它会提交一个零知识证明来验证其有效性。这个证据(称为有效性证明)确保交易是真实的,允许以太坊将结果应用于其状态,而无需等待任何人对其提出质疑。

Validium和零知识汇总是链下扩展技术,利用有效性证明来实现安全的可扩展性。这些协议在链下执行数千笔交易,并向以太坊提供证据进行验证。一旦证明系统得到验证,这些结果可以立即实现,允许以太坊处理更多交易,而无需增加基础层的计算量。

减少链上投票中的贿赂和勾结。

区块链投票方法有许多优点:它们是完全可审计的,对攻击是安全的,不受审查,不受地理限制。然而,即使是链上投票技术也容易受到串通。

合谋,被定义为“通过欺骗、欺骗和误导他人来协调限制公开竞争”,可以是一种用贿赂影响投票的恶意行为者。例如,爱丽丝可能被鲍勃贿赂在投票中投票给选项B,尽管她更喜欢选项A。

贿赂和共谋限制了任何使用投票作为信号机制的过程的有效性(特别是当用户可以展示他们如何投票时)。这可能会产生深远的影响,主要是当投票分配稀缺资源时。

例如,二次融资技术依靠捐赠来衡量几个公益项目中对特定选项的偏好。每笔捐赠都被视为对特定项目的“投票”,获得最多票数的项目从匹配池中获得更多资金。

使用链上投票将二次融资暴露在串通中:因为区块链交易是公开的,贿赂者可以检查受贿者的链上行为,以发现他们是如何“投票”的因此,二次融资不再是根据社区的总体偏好分配现金的有效方法。

幸运的是,像MACI(最小反合谋基础设施)这样的新兴方法使用零知识证明来使链上投票(例如,二次融资机制)免受贿赂和阴谋的影响。MACI是智能合约和脚本的集合,使中央管理员(“协调员”)能够在不披露每个参与者如何投票的情况下汇总投票和计票结果。即便如此,仍然有可能确定投票被正确计算或特定个人参与了投票阶段。

使用零知识证明的项目

使用零知识证明的项目

1)zkSync

ZK已经克服了可扩展性问题,尽管他们的过程仍然备受争议。例如,大多数验证器无法验证总交易量。因此,审查、DD-S和中心化的问题变得更加紧迫。

Zk Sync将使验证交易的新方法变得可行。将有验证者和监护人,验证者被分配批处理交易和提交安全债券的职责,这些债券总是超过他们验证的TX。它以这种方式保护交易。与此同时,为了确保验证者不会流氓并控制网络,作为多数代币持有者的监护人随机选择验证者。

这些守护者不需要在高端计算系统上执行计算。他们可以选择用一台简单的笔记本电脑控制网络的一部分,由于缺乏访问障碍,验证过程完全分散。此外,他们没有资格削减。因此,更多的人将加入完全分散的生态系统。这就是ZKSyncs如何为主链提供真正的去中心化、安全性和可扩展性。

2)Starknet

与以太坊链的可组合性是一个重大挑战,阻碍了ZK技术在企业运营中的采用。由于其去中心化、安全性和防黑客的记录,大多数企业都信任以太坊网络。然而,他们确实担心将他们的活动放在主链上。StarkNet是一种通用ZKP,能够在其生态系统上更快地部署dApp。StarkNet通过使用2级密码证明和当前代数来促进计算完整性。

此外,StarkNet提供与以太坊相同级别的可组合性,允许开发人员加速开发过程并根据需要创建复杂的解决方案。StarkNet还提供真正的匿名性,不允许从公钥中推断出用户的身份,并支持多调用或单个调用中的许多交易来结算账目。因此,从链下计算层到主要父链以太坊的数据流大大减少。

3)Miden

成立于2021年的Miden已经在产生新闻。Miden作为一家基于STARK的ZKP,打算提供1000到2000TPS,一旦以太坊分片上线,将增加到20000TPS。

Polygon Miden基于Miden虚拟机,可以运行任何软件。MidenVM专为STARK设计,允许在商用硬件上快速创建证明,使用GPU和/或FPGA可以更快地创建证明。它还旨在隐藏ZK证明的所有密码复杂性,并遵循大多数开发人员都会认识到的一组架构原则(例如,堆栈机、读写内存、普通32位整数)。

MidenVM的设计以安全性为其指导原则之一。目标是大大简化智能合约的静态分析,并防止许多类型的问题在VM级别发生,例如,通过禁用EVM上可用的各种危险功能。Miden试图在Solidity级别与以太坊兼容,尽管没有一对一地模拟EVM。因此,开发人员将能够使用Miden部署绝大多数Solidity智能合约,而无需进行任何更改。除了一流的Solidity兼容性之外,Miden还将支持从其他安全和以区块链为中心的语言进行编译,例如Mobile和Sway。

4)Loopring

Loopring通过为交易者提供完全非托管和极其匿名的设置,在简化密码货币交易方面发挥了重要作用。该项目还打算利用ZKP来解决流动性、可扩展性和用户体验问题。Loopring在其运营模式下提供ZKP的混合模型,以便扩展DEX或去中心化交易所。订单消息将在Loopring Hybrid ZKP模型中在链下处理,而结算将在链上实时进行,没有延迟。

Loopring将使用ZKP将证明他们已经进行了一些复杂计算的信息带到主链。Merkle树将显示整个交易历史,智能合约将对其进行检查,以将实时数据集传送到主链进行交易记录。

Loopring试图通过实施快速、高效、负担得起且本质上完全非托管的订购机制来彻底改变通过DEX进行的交易。此外,Loopring提出了独立的交易所合约,该合约将使交易完全隐藏,为用户提供足够的隐私;因此,允许不同的DEX利用ZKP模型进行交互,以传达信息并进行交易。他们可以通过使用相同的交易所合约来做到这一点,这将增加流动性并根据需要加快结算速度,以扩展去中心化交易所。

零知识证明的优势

零知识证明的3个优势

零知识证明(ZKP)对隐私和密码学有许多好处。以下是一些显著的好处:

隐私和安全

ZKPs的一个基本好处是能够维护隐私。证明者可以使用零知识证明来证明命题的真实性,而不会泄露任何底层信息或敏感数据。这使得隐私保护交易和交互成为可能,在这些交易和交互中,无需披露个人信息或创建透明交易即可获得准确性证明。

通过提供数学和密码保证,ZKPs提高了信任和安全性。它们使验证者能够确认声明的真实性,而不依赖可能不可信或受损的来源。这在验证复杂计算的完整性或各方之间的信任受到限制时尤其重要。

效率和可扩展性

零知识证明的有效性和可扩展性有了很大的提高。随着新协议和优化的开发,ZKP可以以更低的计算和资源需求来实现。这使得它们有可能用于更多的应用,如去中心化系统和公共区块链网络。

数据最小化

通过零知识证明,减少了各方之间需要披露的信息量。由于只需要确认正确性,因此降低了数据泄露或泄漏的风险,从而可以隐藏不需要的信息。

零知识证明的缺点

零知识证明的3个缺点

虽然零知识证明(ZKP)有很多好处,但也有一些缺点和需要记住的事情。零知识证明的一些主要缺点如下:

计算复杂度

零知识证明经常需要复杂的数学计算和加密过程。计算开销可能很大,导致更长的处理时间和更多的资源使用。因此,使用ZKP并验证它们可能需要计算量,这可能会使它们在某些情况下不太有用。

可信设置

一些零知识证明技术需要一个可信的设置步骤,该步骤会生成一组初始设置。这提供了一个可能的风险,因为设置过程中的妥协或恶意行为可能会危及整个系统的安全和隐私保证。维护一个安全可信的环境可能很困难,需要仔细的管理和透明度。

泄露错误数据

即使零知识证明没有揭示实际数据,它也可能泄露一些信息或提供统计见解,在某些情况下可以用来概括敏感细节。拥有足够专业知识和资源的对手可能能够从证明中提取部分或间接信息,从而危及隐私。

结论

零知识证明(Zero-知识证明)已经成为一种改变游戏规则的加密工具,有可能改变多个领域的隐私、安全和信任。尽管ZKP具有计算复杂性和实施障碍,但它在数据最小化、隐私保护、机密性、信任和效率方面提供了相当大的好处。

ZKPs允许在不泄露敏感信息的情况下验证声明,从而让个人和公司在日益联系和数据驱动的世界中保护他们的数据和隐私。ZKPs的计算开销和可信设置要求是必须妥善管理的障碍,尽管当前的研发计划正在解决这些限制。

总的来说,零知识证明在解决隐私问题、提高安全性和在广泛应用中建立信任方面有着巨大的前景。随着技术进步和我们对ZKP理解的增长,它们将在改变敏感信息处理方式、保护隐私权和鼓励数字领域创新方面发挥关键作用。

 

推荐资讯