零知识证明技术
零知识证明 金融应用场景

零知识证明金融应用场景随着金融科技的快速发展,金融领域出现了越来越多的新技术和新应用。
其中,零知识证明技术是一种非常有前景的技术,它可以在保护用户隐私的同时,提高金融交易的效率和安全性。
本文将从零知识证明的基本原理、金融应用场景以及未来发展趋势等方面进行详细介绍。
一、零知识证明的基本原理零知识证明(Zero-Knowledge Proof,简称ZKP)是一种密码学技术,它可以证明某个命题为真,同时不泄露任何有关这个命题的信息。
具体来说,零知识证明的基本原理是通过构造一种难以被攻破的数学问题,来证明某个命题的正确性。
在这个过程中,证明者不需要向验证者透露任何有关这个问题的信息,而验证者也可以通过验证这个问题的正确性来确认命题的真实性。
因此,零知识证明技术可以在不暴露任何隐私信息的情况下,完成安全的交易验证。
二、零知识证明在金融领域的应用场景1. 匿名交易在传统的金融交易中,为了确认交易的真实性,通常需要对交易双方的身份信息进行验证。
然而,在某些情况下,交易双方可能不希望透露自己的身份信息,例如进行慈善捐款、购买敏感商品等。
这时,零知识证明技术可以帮助交易双方在不暴露身份信息的情况下完成交易。
具体来说,交易双方可以使用零知识证明技术来证明自己拥有足够的资金或者达成某个交易条件,而无需透露自己的身份信息。
2. 银行信用评估在银行信用评估中,通常需要对客户的个人信息、财务状况等进行评估,以确定客户是否有资格获得贷款或信用卡等金融产品。
然而,客户的个人信息涉及隐私问题,如果这些信息被泄露,将会对客户造成严重的影响。
因此,零知识证明技术可以帮助银行在不暴露客户隐私的情况下,对客户的个人信息进行评估。
具体来说,客户可以使用零知识证明技术来证明自己的收入、负债等信息,而无需透露自己的身份信息和具体的财务状况。
3. 区块链交易在区块链交易中,为了保证交易的真实性和可追溯性,通常需要对交易信息进行验证和记录。
然而,区块链交易的公开性和透明度也会导致交易信息的泄露和隐私问题。
互联网安全密码学中的零知识证明技术

互联网安全密码学中的零知识证明技术互联网的快速发展已经成为现代社会不可或缺的一部分。
然而,随着网络的普及,个人隐私和数据安全问题也越来越受到关注。
为了保护用户的隐私与数据安全,互联网安全密码学逐渐崭露头角。
在密码学的研究中,零知识证明技术是一种重要的安全保障手段。
一、什么是零知识证明技术?零知识证明技术,简称ZKP(Zero-Knowledge Proof),是一种密码学中的技术,旨在通过进行证明来验证某个主张的正确性,同时不泄露任何与该主张有关的信息。
换句话说,零知识证明技术可以让证明者向验证者证明某个陈述的正确性,而验证者只会得到“是”或“否”的答案,而不会知道具体的过程和信息。
零知识证明技术的重要性在于,它确保了数据的安全性和用户的隐私,同时在网络中的各方之间建立了信任和合作。
例如,在电子交易中,购买方可以向卖方证明自己具备付款能力,同时不泄露任何与其财务状况相关的信息。
二、零知识证明技术的应用领域1. 隐私保护隐私保护是零知识证明技术被广泛应用的领域之一。
例如,在医疗健康领域,患者可以使用零知识证明技术向医生或医疗机构证明自己的身份和疾病情况,而不必泄露自己的个人信息。
这种方式既保护了患者的隐私,又实现了有效的医疗协作。
2. 身份认证零知识证明技术也可以应用于身份认证领域。
传统的身份认证方法往往需要用户提供个人信息来验证身份,但这会引发用户隐私泄露的风险。
零知识证明技术可以通过证明你拥有某个特定属性,如成年身份或大学学位,而不必泄露任何关于自己的其他信息。
这种方式可以有效保护用户的隐私,减少身份盗窃等问题的发生。
3. 数字货币和区块链在数字货币和区块链领域,零知识证明技术被广泛运用于实现交易的匿名性。
通过使用零知识证明技术,用户可以证明自己拥有足够的资金进行交易,而无需透露自己的真实身份和资产信息。
这可以有效地保护用户的交易隐私,并增强数字货币的使用安全性。
三、零知识证明技术的算法现代密码学中,零知识证明技术具体使用了一些算法来实现。
零知识证明

在最小泄露协议中零知识证明需要满足下述两个性质。 (1)正确性。P无法欺骗V。换言之,若P不知道一个定理的证明方法,则P使V相信他会证明定理的概率很低。 (2)完备性。V无法欺骗P。若P知道一个定理的证明方法,则P使V以绝对优势的概率相信他能证明。 在零知识协议中,除满足上述两个条件以外,还满足下述的第三个性质。 (3)零知识性。V无法获取任何额外的知识。 我们把性质(1)和(2)称为零知识证明的正确性和完备性,而性质(3)称为零知识性。
设P表示掌握某些信息,并希望证实这一事实的实体,设V是证明这一事实的实体。假如某个协议向V证明P的 确掌握某些信息,但V无法推断出这些信息是什么,我们称P实现了最小泄露证明。不仅如此,如果V除了知道P能 够证明某一事实外,不能够得到其他任何知识,我们称P实现了零知识证明,相应的协议称作零知识协议。
性质
引入
顾名思义,零知识证明就是既能充分证明自己是某种权益的合法拥有者,又不把有关的信息泄露出去——即 给外界的“知识”为“零”。其实,零知识证明并不是什么新东西,早在16世纪的文艺复兴时期,意大利有两位 数学家为竞争一元三次方程求根公式发现者的桂冠,就采用了零知识证明的方法。当时,数学家塔尔塔里雅和菲 奥都宣称自己掌握了这个求根公式,为了证明自己没有说谎,又不把公式的具体内容公布出来(可能在当时数学公 式也是一种技术秘密),他们摆开了擂台:双方各出30个一元三次方程给对方解,谁能全部解出,就说明谁掌握 了这个公式。比赛结果显示,塔尔塔里雅解出了菲奥出的全部30个方程,而菲奥一个也解不出。于是人们相信塔 尔塔里雅是一元三次方程求根公式的真正发现者,虽然当时除了塔尔塔里雅外,谁也不知道这个公式到底是个什 么样子。从这个故事,我们可以初步了解零知识证明的概念。
属性
零知识证明需要满足三个属性。 1、如果语句为真,诚实的验证者(即:正确遵循协议的验证者)将由诚实的证明者确信这一事实。 2、如果语句为假,不排除有概率欺骗者可以说服诚实的验证者它是真的。 3、如果语句为真,证明者的目的就是向验证者证明并使验证者相信自己知道或拥有某一消息,而在证明过程 中不可向验证者泄漏任何有关被证明消息的内容。 零知识证明并不是数学意义上的证明,因为它存在小概率的误差,欺骗者有可能通过虚假陈述骗过证明者。 换句话来说,零知识证明是概率证明而不是确定性证明。但是也存在有技术能将误差降低到可以忽略的值。 零知识的形式定义必须使用一些计算模型,最常见的是图灵机的计算模型。
利用zokrate求hash的零知识证明

一、研究背景在当今的信息时代,数据安全和隐私保护已经成为了全球范围内的热门议题。
尤其是在金融、医疗、电子商务等领域,对于数据的安全性和隐私性要求越来越高。
随着区块链技术的快速发展,人们对于数据隐私的保护提出了更高的要求。
在这种背景下,零知识证明技术应运而生,成为了解决数据隐私和安全性问题的重要手段之一。
二、零知识证明概述零知识证明(Zero-Knowledge Proof)是指一种可以证明某个断言是真实的,而不需要透露任何与该断言有关的信息的证明。
简单来说,就是证明者可以证明自己掌握了某种信息,却不会泄漏任何关于这种信息的细节。
这种技术在实际应用中具有广泛的价值,特别是在密码学、计算机安全和区块链技术等领域。
三、 Zokrates介绍Zokrates是一种基于区块链的零知识证明工具,它可以用于构建、编译和部署可验证的智能合约。
Zokrates支持的语言是一种称为Zokrates DSL的专门语言,它允许用户编写和部署零知识证明智能合约,从而实现对数据隐私和安全性的保护。
四、利用Zokrates求Hash的零知识证明1. 编写Zokrates DSL代码我们需要编写Zokrates DSL代码来描述我们需要证明的断言,通常包括输入的数据、证明的信息和断言的真实性。
在求Hash的零知识证明中,我们需要描述输入的数据(即需要进行Hash运算的原始数据)和Hash的结果。
下面是一个简单的Zokrates DSL代码示例:```def m本人n(private field a):field resultHash = sha256(a)return resultHash```在这段代码中,我们定义了一个名为m本人n的函数,输入参数为私有域a,表示原始数据。
然后使用sha256函数计算a的Hash值,并返回结果。
2. 编译Zokrates DSL代码接下来,我们需要使用Zokrates工具对编写好的Zokrates DSL代码进行编译,生成对应的验证智能合约。
zkr 标准

ZKR标准ZKR(Zero Knowledge Recognition)标准是一种密码学标准,旨在提供一种安全、高效、可验证的身份识别方法,同时保护用户的隐私。
以下是关于ZKR标准的详细介绍:1. 概述ZKR标准是一种基于零知识证明(Zero-Knowledge Proof,简称ZKP)的身份识别标准。
零知识证明是一种密码学技术,它允许一个证明者向验证者证明某个陈述的真实性,而无需向验证者透露任何其他信息。
ZKR标准就是利用零知识证明的原理,实现用户身份的自我证明和验证,同时保证用户的身份信息和密码等敏感信息不会被泄露。
2. ZKR标准的特点(1)安全性:ZKR标准采用先进的密码学技术和算法,保证了身份识别的安全性和可信度。
在ZKR系统中,用户的密码和身份信息不会被存储或传输,大大降低了被攻击和泄露的风险。
(2)高效性:ZKR标准采用了高效的零知识证明算法和协议,能够在短时间内完成身份验证过程,提高了系统的性能和用户体验。
(3)可扩展性:ZKR标准支持多种应用场景和平台,可以方便地与其他系统进行集成和交互。
同时,ZKR标准也支持大规模用户和并发请求的处理。
(4)隐私保护:ZKR标准充分考虑了用户的隐私保护需求,采用零知识证明等密码学技术,确保用户的身份信息和密码等敏感信息不会被泄露给其他实体或系统。
3. ZKR标准的实现(1)技术架构:ZKR标准采用分层架构设计,包括应用层、协议层、算法层和数据层。
各层之间相互独立,方便进行升级和维护。
(2)协议流程:ZKR标准定义了一系列的协议流程,包括用户注册、登录、找回密码等操作。
这些协议流程基于零知识证明技术实现,确保了用户身份的合法性和安全性。
(3)算法实现:ZKR标准采用了先进的密码学算法和协议,包括零知识证明算法、加密算法、数字签名算法等。
这些算法的实现保证了系统的安全性和性能。
(4)数据存储:ZKR标准采用了分布式数据存储方案,将用户数据分散存储在多个节点上,确保了数据的安全性和可用性。
零知识证明技术的实际应用与安全性分析

零知识证明技术的实际应用与安全性分析零知识证明技术是一种用于验证某个声明的正确性,同时不泄露任何有关该声明的其他信息的密码学工具。
该技术可被广泛应用于许多领域,例如密码学、网络安全、隐私保护和区块链等。
本文将探讨零知识证明技术的实际应用,并分析其安全性。
一、实际应用1.密码学领域:零知识证明技术可用于验证公钥加密方案的安全性。
例如,可以证明一种加密算法的秘钥长度满足安全要求,而不泄露该算法的具体细节。
2.网络安全:在网络通信中,确保通信的安全性非常重要。
零知识证明技术可以用于验证用户的身份,从而防止恶意用户的欺骗行为。
通过使用零知识证明技术,服务器可以证明其拥有某个秘密,而不需要直接揭示该秘密。
3.隐私保护:在很多情况下,用户不希望将其个人信息披露给他人,同时又需要验证某些声明的真实性。
零知识证明技术可以满足这一需求。
例如,在数字身份验证中,用户可以使用零知识证明技术证明自己的年龄在某个范围内,而不需要透露具体的年龄。
4.区块链:区块链是一种去中心化的分布式账本技术,而零知识证明技术可以用于增强其隐私性和安全性。
通过使用零知识证明技术,参与方可以证明自己满足某个条件,而不需要公开其具体数据。
这在一些隐私敏感的应用中尤为重要,例如匿名交易和身份验证。
二、安全性分析1.完备性:零知识证明技术必须保证如果声明是正确的,那么验证者相信该声明的概率非常高。
这意味着证明者必须能够生成一个有效的证明,并将其传递给验证者。
从理论上来说,完备性要求能够通过一个无限容量的计算设备进行检查。
2.可靠性:零知识证明技术应该确保如果甲方是一个诚实的证明者,那么乙方不会被欺骗相信一个错误的声明。
也就是说,诚实的证明者不会能够通过生成错误的证明来欺骗验证者。
3.零知识性:零知识证明技术应该确保验证者不能从证明者提供的信息中获得任何与声明相关的附加信息。
也就是说,验证者在验证声明的真实性时只能得知声明的真实性,而不能获得与其相关的其他信息。
零知识证明

零知识证明零知识证明是一种密码学中的重要概念,指的是在一个交互式的协议中,证明者可以向验证者证明某个命题的正确性,同时不泄露任何额外的信息,除了证明该命题的正确性。
零知识证明的作用在于提高信息安全性和保护个人隐私。
它可以应用于各种场景,如电子商务中的身份认证、密码协议中的密钥交换等。
零知识证明的基本协议是三个步骤的互动过程:证明者向验证者发送一系列的消息,验证者根据收到的消息进行验证,最后得出结论。
具体步骤如下:第一步,证明者选择一些随机值,并计算出基于这些随机值的证明。
然后,证明者将这些随机值和证明发送给验证者。
第二步,验证者选择一个随机比特值,并发送给证明者。
证明者根据验证者发送的随机比特值来回答验证者的挑战。
第三步,验证者根据证明者的回答验证证明是否正确。
如果验证成功,则可以得出结论。
零知识证明具有如下特点:1. 完备性:如果命题为真,那么验证者能够接受证明者的证明,并得出正确结论。
2. 零知识性:证明者在证明过程中,不泄露任何关于证明技巧的信息。
除了命题正确与否以外,验证者无法获取到任何其他额外的信息。
3. 亮针度:证明者和验证者之间的交互是多轮的,每一轮都是以随机方式选择的,防止攻击者对信息进行分析和破译。
零知识证明的实现基于零知识证明系统,该系统由一个证明者和一个验证者组成。
通常,证明者拥有一些证据,他希望验证者相信这些证据是正确的,而验证者则希望证明者确实拥有这些证据。
在实际应用中,零知识证明可以用于匿名认证、电子投票等场景。
比如在匿名认证中,用户可以向第三方机构证明自己拥有某种身份或资格,同时不需要泄露任何个人信息。
在电子投票中,零知识证明可以用于证明某个投票者投票的正确性,而无需泄露该投票者的具体选择。
总之,零知识证明作为一种强大的密码学工具,可以在保护用户个人隐私的同时实现信息的安全验证。
它在各种场景中具有广泛的应用前景,并将在未来进一步推动信息安全和隐私保护的发展。
零知识证明的定义和作用

零知识证明的定义和作用小伙伴们!今天咱来聊聊零知识证明这个挺有意思的玩意儿哈。
一、零知识证明的定义。
零知识证明呀,简单来说,就是一种特殊的证明方法。
想象一下哈,你想向别人证明你知道某个秘密,但是呢,你又不想把这个秘密具体内容透露出去,这时候零知识证明就派上用场啦。
打个比方吧,就好比你有一把神奇的钥匙,能打开一个特别的宝箱。
你想让别人知道你有这把钥匙,也就是你知道怎么打开宝箱,但你又不想把钥匙给别人看或者告诉别人钥匙长啥样。
那怎么办呢?通过零知识证明的方法,你可以在不展示钥匙的情况下,让别人相信你确实有打开宝箱的能力。
从专业一点的角度来讲呢,零知识证明是一种密码学技术。
它允许证明者在不向验证者透露任何有用信息的情况下,证明某个陈述是真实的。
就好像你在跟别人玩一个猜谜游戏,你能让对方相信你知道答案,但又不把答案直接告诉对方。
这种技术在很多领域都有很重要的应用哦。
二、零知识证明的作用。
1. 保护隐私。
这可是零知识证明一个超级重要的作用哈。
在当今这个信息爆炸的时代,隐私保护变得越来越重要啦。
比如说,你在网上进行一些交易或者登录某些平台的时候,平台可能需要验证你的身份或者确认你有没有某种权限。
传统的方法可能就需要你提供很多个人信息,像身份证号、密码啥的。
但是有了零知识证明,你就可以在不透露这些敏感信息的情况下,让平台相信你是合法的用户。
就好比你去住酒店,不用把家里的钥匙给前台看,就能证明你是这个房间的主人,是不是很酷呀?2. 增强安全性。
在网络安全方面,零知识证明也发挥着巨大的作用哦。
比如说,在区块链技术中,很多交易需要验证身份和交易的合法性。
如果使用传统的验证方法,可能会存在信息泄露的风险,黑客就有可能利用这些漏洞进行攻击。
但是零知识证明可以在不泄露交易细节的情况下,确保交易的合法性和安全性。
这就像是给你的交易上了一把隐形的锁,只有合法的人才能打开,其他人就算知道有这把锁,也不知道怎么开。
3. 提高效率。
零知识证明名词解释 -回复

零知识证明名词解释-回复
零知识证明是一种在不透露任何有用信息的情况下,让验证者相信某个陈述是正确的技术。
它可以用于确保数据的隐私性和安全性。
在零知识证明中,证明者可以向验证者证明他们知道某个秘密,而不需要透露该秘密本身。
这种证明方式可以用于许多应用场景,包括身份验证、数据完整性检查和加密通信等。
零知识证明的基本原理是使用一种称为“交互式证明系统”的协议。
在这个协议中,证明者和验证者通过一系列的交互来完成证明过程。
证明者必须提供足够的证据来证明他们的陈述是正确的,而验证者则需要对这些证据进行检查以确定它们是否有效。
如果证明者能够成功地证明他们的陈述是正确的,那么就可以认为他们确实知道该秘密,但没有透露任何关于该秘密的信息。
零知识证明的一个重要特性是它具有不可伪造性。
这意味着即使证明者知道某个秘密,也不能用这个秘密来伪造其他的证明。
这使得零知识证明成为一种非常安全的技术,可以在保护用户隐私的同时确保数据的完整性和安全性。
第二十三讲-零知识证明技术课件(1)

1.2 交互证明系统和零知识证明协议(续) 评述.
(1) 零知识属性表明一个证明者执行协议 (即使恶意验证者交互)不会透露任何信 息 (即除了特定的声称正确以外的关于他 的秘密知识),这无异于在多项式时间从 公开信息中计算。因此,参与者不会增加 后续冒充成功的机会。
2 Fiat-Shamir鉴别协议
协 议 1Fiat - Shamir鉴别协议 摘 要:证明者A通过执行一个3轮协议t次向验证者B证明 其掌握知识s 。 (1)一次性建立过程. (1.1)信任中心T选择并公布一个RSA型的模n p q,但将 素数p和q保密。 (1.2)每一个声称者A选择一个与n互素的秘密s,1 s n 1, 计算v s2 (modn),并向T登记v作为公开密钥。 (2 ) 协议执行. 如下的步骤循环执行t次(连续且独立)。如果t 次都成功完成,B接受证明认为A掌握秘密s。
如何避免这一情况发生?在很多情况下需
要出示鉴别身份的秘密或口令来完成交易。 任何人在得到这个秘密再附加一些(几乎公 开的)身份信息之后,就可以冒充这个人。 我们需要解决的问题就是使用秘密但在使 用的过程中不留给攻击者任何可以重复使 用的信息。这就产生了零知识证明技术。
本讲提要
零知识证明概念总揽 Fiat-Shamir鉴别协议 Feige-Fiat-Shamir鉴别协议 GQ鉴别协议 Schnorr鉴别协议
2 Fiat-Shamir鉴别协议(续)
评述.(续 ) (2) 答案 y r是独立于 A 的秘密 s,然而答案 y r s (mod n )也没有提供任何关于 s的信息,因为 B 并不知道随机数 r。由 A 产生的信息对 ( x,y )恰 好可以为验证者 B 自己很好的模拟:随机 选择 y, 定义 x y 2或 y 2 /v (mod n )。虽然这并不是 A 建立 信息对的方法,但对 ( x,y )的概率分布实际上与 A 产生的对不可区分,这 就是零知识属性。尽 管可以模拟证明过程, B 并不能冒充 A ,因为 B 并 不能预测实时问题。
高效零知识证明及其应用

高效零知识证明及其应用
高效零知识证明(Efficient Zero-Knowledge Proofs)是一种密码学技术,用于证明某个陈述是正确的,同时不泄露任何关于陈述的具体信息,即不泄露任何有关于证明的知识。
它是一种交互式的协议,其中证明者试图说服验证者某个陈述是真实的,而验证者只会接受正确的陈述,但不能得知任何关于陈述的具体信息。
高效零知识证明具有以下应用领域:
1. 加密货币:在加密货币领域,高效零知识证明用于保护隐私和匿名性。
例如,Zcash就使用了零知识证明技术,允许用户进行匿名交易,同时保持交易的可验证性。
2. 身份认证:高效零知识证明可用于身份认证系统,例如在无需披露敏感信息的情况下证明自己的年龄、资格或其他身份属性。
3. 数据隐私保护:零知识证明可用于验证某些数据的属性而不泄露实际数据本身。
例如,可以证明某个数字在一个范围内而不泄露具体数字。
4. 零知识密码学:高效零知识证明可用于构建各种零知识密码学协议,如零知识交互式证明、零知识证明的紧凑性和零知识证明的可组合性等。
总之,高效零知识证明在保护隐私和数据完整性的同时,提供了一种有效的方式来证明某个陈述的真实性,而不需要披露具
体的信息,因此在密码学、隐私保护和身份认证等领域具有广泛的应用潜力。
zk零知识证明案例

zk零知识证明案例引言随着信息技术的迅猛发展,人们对信息安全和隐私保护的需求越来越高。
在传统的计算模型中,往往需要通过互相交换信息来验证某个事实的真实性,这就会涉及到信息披露的风险。
为了解决这个问题,零知识证明(Zero-Knowledge Proof,zk-SNARKs)技术应运而生。
本文将探讨zk零知识证明案例,介绍zk零知识证明的原理和应用,并通过具体案例解释其工作原理和实际应用。
一、zk零知识证明原理零知识证明是一种加密技术,通过不披露证明中的任何信息,向验证者证明某个事实的真实性。
要实现零知识证明,需要满足以下三个条件:1.决策者:证明者(Prover)需要向验证者(Verifier)证明某个事实的真实性。
2.完备性:如果该事实是真实的,验证者将相信证明者是诚实的。
3.零知识性:证明者可以通过零知识证明向验证者证明某事实的真实性,而不会披露该事实的任何信息。
零知识证明的基本思想是通过在两者之间进行互动交流,使验证者能够验证某事实的真实性,而不需要知道该事实的具体内容。
换句话说,证明者只需向验证者回答问题,而不用透露实际数据。
二、zk零知识证明应用案例1. 匿名投票匿名投票是一个常见的应用场景,在传统的投票过程中,选民需要将自己的选票公开,这就可能导致选民的隐私泄露。
使用zk零知识证明技术,选民可以证明自己的选票有效性,同时不暴露具体的选票内容。
具体实现过程如下: 1. 选民通过zk零知识证明向系统证明自己的选票有效性。
2. 系统可以验证选民的选票有效性,但无法获得选民的具体选择。
3. 借助zk零知识证明技术,系统能够保证匿名性,从而保护选民的隐私。
2. 区块链隐私保护区块链是一种分布式账本技术,具有去中心化、公开透明等特点。
但在某些场景下,用户对于自己的隐私保护非常重视。
使用zk零知识证明技术,可以在区块链交易中保护用户的隐私。
具体实现过程如下: 1. 用户通过zk零知识证明向区块链网络证明自己的交易有效性,但无需披露具体交易内容。
零知识证明技术在区块链中的应用研究

零知识证明技术在区块链中的应用研究1. 简介随着区块链技术的发展,越来越多的关注点集中在了密码学和数据隐私领域。
为了保证区块链网络的安全,保障用户的隐私权利,科学家们引入了零知识证明技术,在实现可追溯性的前提下,保护数据隐私。
2. 零知识证明技术的基本概念零知识证明技术(Zero-Knowledge Proof,ZKP)是一种验证对象是否拥有特定信息的方式,其授权过程不需透露任何关于信息本身的信息。
简单来说,就是在不泄露信息的前提下,验证所要证明的信息是否正确。
在区块链中运用零知识证明技术,可以保护用户的隐私和交易安全。
3. 区块链中的零知识证明技术应用(1)身份验证在区块链中,身份验证是必不可少的一环。
传统的身份验证方式需要用户将个人信息提供给验证机构,身份验证流程中保护个人隐私信息是十分必要的。
而借助零知识证明技术,区块链可以实现基于身份的授权,从而保障用户的隐私。
ZK Rollup作为一种扩容方案被广泛应用项。
(2)交易隐私保护区块链中交易记录是不可篡改、不可删除的,但是传统的区块链技术无法保障交易隐私。
而采用零知识证明技术,则可以在不暴露交易内容详细信息的前提下,完成交易的验证和授权。
通过零知识证明技术,交易可以被更好的保护,不会被不相关的第三方知道。
(3)智能合约智能合约是区块链技术发展中不可或缺的一环,基于智能合约完成的业务交易数字资产交易相对于传统交易方式更具安全性。
智能合约的实现,需要在保护数据隐私的前提下完成交易的验证。
采用零知识证明技术,可以实现智能合约的安全实现。
(4)去中心化身份标识在区块链技术发展的过程中,去中心化身份标识的问题一直存在。
传统身份验证方式中,需要提供身份证明的用户容易产生安全漏洞,而去中心化身份标识可以解决该问题。
但是,去中心化身份标识的推广,需要解决关于隐私的问题。
采用零知识证明技术,可以保障用户隐私的同时,实现去中心化。
4. 总结与展望零知识证明技术作为区块链技术领域内实现隐私保护的重要手段,将会在未来得到越来越广泛的应用。
区块链技术中的零知识证明与隐私保护

区块链技术中的零知识证明与隐私保护引言区块链技术作为一种新兴的分布式账本技术,已经得到了广泛的应用和关注。
它可以帮助解决许多传统金融系统中存在的问题,如信任和透明度。
然而,随着区块链技术的发展,隐私保护和安全性问题也开始引起越来越多的关注。
在这种情况下,零知识证明技术应运而生,为区块链技术的隐私保护提供了一种全新的解决方案。
本文将从零知识证明的基本概念、技术原理和应用场景,探讨零知识证明在区块链技术中的作用以及对隐私保护的重要性。
一、零知识证明的基本概念零知识证明最早由美国加州大学的计算机科学家Shafi Goldwasser、Silvio Micali和Charles Rackoff在1985年提出,指的是一种可以证明某一事实的正确性,却不需要透露具体证明的内容的证明方式。
简而言之,就是证明者可以证明自己知道某一信息,但并不需要透露具体的信息内容。
这种证明方式可以在不泄漏敏感信息的前提下进行认证和交易。
零知识证明除了具有高度的隐私保护特性,还具有以下几个基本特点:1.完备性:零知识证明要求证明者能够在没有任何失实信息的情况下向验证者证明其所宣称的陈述是正确的。
2.可靠性:零知识证明必须能够在合理的时间内得到验证者的认可,验证者不能拒绝合理的正确证明。
3.零知识:证明者可以证明自己知道某一信息的正确性,但不需要透露具体的信息内容。
4.互操作性:零知识证明必须能够适用于不同的场景和应用,而不需要对其进行修改。
二、零知识证明的技术原理零知识证明的实现涉及到很多密码学算法和技术,其中最为重要的是零知识证明系统的设计。
在一个典型的零知识证明系统中,通常包括三个主要角色:证明者(Prover)、验证者(Verifier)和挑战者(Challenger)。
1.证明者(Prover):证明者是一个想要向验证者证明某一信息的正确性的实体。
证明者通常会使用密码学算法和协议,来产生一组信息,向验证者证明自己知道某一信息,但并不需要将具体信息内容透露给验证者。
《零知识证明》课件

在某些情况下,零知识证明可能存在漏洞或被攻击者利用,导致其 安全性受到质疑。
零知识证明的应用前景与展望
密码学领域
零知识证明在密码学领域具有广泛的应用前景,如数字签名、身份认 证等。随着密码学的发展,零知识证明将发挥更加重要的作用。
安全计算
在安全计算领域,零知识证明可用于保护数据的隐私性和完整性,为 安全计算提供强有力的支持。
03
零知识证明的实现 技术
哈希函数
哈希函数是一种将任意长度的数据映射 为固定长度散列值的算法。
在零知识证明中,哈希函数用于将证明内容 摘要进行加密,以便验证者可以验证证明的 真实性,而无需了解证明的具体内容。
常用的哈希函数包括SHA-256和 SHA-3等。
概率算法
01
概率算法是一种允许一定概率错误的算法,但在大量
应用
在数字身份认证、电子支付等领域有广泛应用。
零知识证明的扩展形式
定义
零知识证明的扩展形式是指将零知识证明与其他密码学技 术相结合,以实现更加强大和灵活的证明功能。
01
特点
扩展形式的零知识证明可以支持更广泛 的证明场景和需求,例如可验证加密、 可验证计算等。
02
03
应用
在云计算、区块链等领域有广泛应用 。
零知识证明的原理
总结词
零知识证明基于复杂的数学工具,如概率论和图论,来实现 其功能。
详细描述
零知识证明依赖于概率论和图论中的一些复杂数学工具,如 概率性验证、零知识协议等。这些工具使得证明者能够在不 泄露任何信息的情况下向验证者证明某个声明是真实的。
零知识证明的应用场景
总结词
零知识证明在多个领域都有广泛的应用,如加密货币、区块链、隐私保护等。
《零知识证明》课件

目录
• 零知识证明概述 • 零知识证明的原理 • 零知识证明的常见算法 • 零知识证明的挑战与未来发展 • 案例分析
01
零知识证明概述
定义与特点
定义
零知识证明是一种密码学技术,其中 一方(证明者)能够向另一方(验证 者)证明某个声明是真实的,而对方 却无法获得任何有关该声明证明的信 息。
01
定义
非交互式零知识证明系统是一种单向协议,其中证明者能够向验证者证
明他知道某个秘密信息,而无需与验证者进行交互。
02 03
工作原理
非交互式零知识证明系统使用密码学技术和数学工具,通过单向信息传 输的方式,使验证者能够验证证明者知道某个秘密信息,而无法获得该 秘密信息的任何有用信息。
应用
非交互式零知识证明系统在数字货币、电子投票等领域有广泛应用。
金融交易
在金融交易中,零知识证明可用于验证交易的有效性和合法性, 降低交易风险。
物联网安全
在物联网领域,零知识证明可用于设备认证和数据传输加密,提 高物联网系统的安全性。
05
案例分析
区块链中的零知识证明应用
零知识证明在区块链中主要用于验证交易的有效性和合法性,同时保护交易方的隐 私。
具体应用包括:验证交易是否来自正确的账户、交易金额是否正确、交易是否被双 重花费等。
03
零知识证明的常见算法
零知识证明的加密算法
加密算法概述
介绍常见的零知识证明加密算法,如环签名、盲签名 等。
加密算法原理
详细解释这些算法的工作原理,包括加密和解密过程 。
加密算法的应用场景
分析这些算法在现实生活中的应用,如数字签名、电 子投票等。
零知识证明的交互协议
区块链中的零知识证明算法

区块链中的零知识证明算法引言随着区块链技术的发展,我们逐渐意识到数据的隐私和安全问题变得越来越重要。
在传统的区块链中,所有的交易信息都是公开的,包括发送方、接收方和交易金额等细节。
然而,很多场景下,我们希望能够保护交易的隐私性,即不暴露任何有关交易细节的信息,同时也不影响交易的合法性验证。
为了解决这个问题,零知识证明(Zero-Knowledge Proof,简称ZKP)成为了一种被广泛研究和应用的隐私保护技术。
什么是零知识证明?零知识证明是一种特殊的加密策略,它可以让你向别人证明一些事实的真实性,但不需要提供任何关于该事实内容的任何零碎信息。
这意味着,除了事实本身以外,证明者几乎没有其他信息可以泄露给观察者或验证者。
零知识证明的应用原理在区块链中,零知识证明可以被用来证明一些交易是有效的,而不需要公开任何交易的具体内容。
具体来说,基于零知识证明的算法可以将交易的合法性证明转化为一个数学问题,而这个问题只有交易发起者才会知道如何解决。
然后,交易发起者可以使用零知识证明将解决方案提供给验证者,以证明交易的合法性,而不需要提供任何交易细节。
零知识证明的基本算法目前,有很多种零知识证明的算法存在,比如零知识SNARKs、零知识STARKs等。
其中,零知识SNARKs是应用最为广泛的零知识证明算法之一零知识SNARKs(Succinct Non-Interactive Argument of Knowledge)是一种高度压缩和高效的零知识证明算法,它可以将复杂的计算过程转化为一个简短的证明。
与其它证明算法不同,零知识SNARKs不需要进行交互,只需要证明者生成一个证明,并将其发送给验证者即可。
零知识SNARKs的工作原理可以分为三个主要步骤:1.创建证明:证明者根据交易信息和一些随机数生成一个证明。
2.验证证明:验证者接收到证明后,使用公开的交易信息和证明来验证交易的合法性。
3.验证结果:验证者根据验证的结果来判断交易是否有效,如果有效则将其添加到区块链中。
零知识证明的原理

零知识证明的原理零知识证明是一种密码学协议,用于证明某个陈述是正确的,而不需要透露任何额外的信息。
简单来说,就是证明者可以告诉验证者自己知道某个答案,但不会说出具体是什么。
这种方法可以确保保护隐私和保持安全性,是密码学领域中非常重要的研究领域之一。
首先,我们需要了解几个基础概念:1. 证明者:指要进行加密操作的人或系统。
2. 验证者:指要验证加密结果的人或系统。
3. 陈述:指证明者需要证明的某个事实或状态。
4. 零知识证明:指证明者向验证者证明某个陈述是正确的,而不需要提供额外的信息。
零知识证明的原理可以用一个经典的例子进行解释。
假设一个人想让另一个人相信他知道他的密码,而另一个人不想知道密码的真实值。
那么怎么才能让相信者相信他真的知道密码呢?首先,推荐者会把盒子里的东西给到确认者,并告诉确认者盒子里的内容是自己的密码。
然后,验证者挑选一个颜色的贴纸,将其放入盒子中,并将其封上。
随后,确认者要求推荐者打开盒子并核对盒子里的贴纸颜色。
如果贴纸颜色是之前确认者选择的颜色,证明者证明了他知道密码,但透露了密码的值。
如果验证者选择了不同的颜色,证明者则没有透露密码的值,但验证者不确定证明者是否真的知道密码。
在这个例子中,尽管最后结果的贴纸颜色并没有透露出密码的真实值,但证明者仍然证明了他知道密码。
这正是零知识证明的基础思想:证明者无需透露不必要的信息,只需要证明一些特定的事实即可。
在实际应用中,零知识证明的核心原理是将陈述表示为数字。
这些数字由证明者构造,验证者可以使用这些数字进行验证。
当需要证明某件事时,证明者将这些数字传递给验证者,以证明陈述的正确性。
关键点在于数字不会透露其背后的信息,因为它们经过了特殊的加密算法。
常见的零知识证明算法包括Schnorr证明、Fiat-Shamir证明和Bulletproofs证明。
这些算法在实际应用中都各有优劣,可以根据不同的需求和应用场景来选择。
总之,如果需要证明某个陈述是真实的,但不想透露任何额外的信息,那么零知识证明就是最好的选择。
零知识证明的实现方式

零知识证明的实现方式零知识证明是一种加密技术,可用于验证某个主体拥有某种信息,而不泄露该信息的具体内容。
它可以在不揭示任何有关证明的信息的情况下,向验证者证明某个声明的真实性。
在零知识证明中,证明者只需向验证者证明某个陈述是正确的,而无需向验证者透露任何与陈述有关的具体信息。
这种技术在安全性和隐私保护方面具有重要意义。
零知识证明的实现方式有多种,下面将介绍其中的两种常见方式:零知识证明的交互协议和零知识证明的非交互协议。
零知识证明的交互协议是一种通过多轮的交互来实现的证明方式。
在这种协议中,证明者和验证者之间进行多次的交互,通过相互发送和处理信息来完成证明过程。
这种方式的一个典型应用是基于加密技术的零知识证明协议,其中证明者和验证者共同利用加密算法,通过加密和解密的过程来完成证明。
在这个过程中,证明者可以向验证者证明某个陈述的真实性,而验证者无需获得陈述的具体信息。
零知识证明的非交互协议是一种只需要一轮交互的证明方式。
在这种协议中,证明者只需向验证者发送一条消息,验证者通过对这条消息进行处理来完成证明过程。
这种方式的一个典型应用是基于哈希函数的零知识证明协议,其中证明者通过将陈述的哈希值发送给验证者来完成证明。
验证者可以通过对这个哈希值进行验证来确认陈述的真实性。
零知识证明的实现方式可以根据具体的应用需求和安全要求选择。
交互协议适用于需要多轮交互的场景,可以实现更复杂的证明过程,但也会增加通信成本和计算复杂度。
非交互协议适用于需要简单快速的证明过程,通常适用于基于哈希函数的应用场景。
零知识证明是一种重要的加密技术,可以在不泄露具体信息的情况下向验证者证明某个陈述的真实性。
它的实现方式有多种选择,可以根据具体需求和安全要求来选择适合的方式。
无论是交互协议还是非交互协议,都可以实现安全可靠的零知识证明。
在实际应用中,我们可以根据具体情况选择合适的方式来保护数据的安全和隐私。
零知识证明在保密通信中的应用

零知识证明在保密通信中的应用在当今数字化的时代,信息的安全传输和保护变得至关重要。
保密通信作为保障信息机密性、完整性和可用性的关键手段,不断面临着新的挑战和需求。
零知识证明作为一种强大的密码学技术,在保密通信领域发挥着越来越重要的作用。
零知识证明,简单来说,就是一种方法,能够让一方(证明者)向另一方(验证者)证明某个陈述是真实的,同时不泄露除了该陈述为真之外的任何有用信息。
这就好像你能向别人证明你知道一个密码,但是不需要真的把密码告诉他们。
在保密通信中,零知识证明有着广泛的应用场景。
比如在身份验证方面,传统的身份验证方法可能需要用户提供大量的个人信息,这些信息在传输和存储过程中存在被窃取或泄露的风险。
而零知识证明可以让用户在不暴露敏感信息的情况下,向服务提供商证明自己的身份。
举个例子,假设一个在线银行系统需要验证用户的身份。
用户可以通过零知识证明来向银行证明自己知道账户的密码,而无需直接将密码发送给银行。
银行作为验证者,能够确认用户确实知道正确的密码,但却无法得知密码的具体内容。
在数据隐私保护方面,零知识证明也能大显身手。
当企业需要共享数据进行合作分析时,可能担心数据中的敏感信息被对方获取。
通过零知识证明技术,可以在不暴露原始数据的前提下,证明数据满足某些特定的条件或属性。
比如说,一家医疗研究机构想要与另一家机构合作,共同分析某种疾病的数据。
但出于隐私法规和患者保密的要求,不能直接分享患者的详细医疗记录。
这时,就可以利用零知识证明,证明这些数据符合特定的统计特征,比如患者的平均年龄、某种症状的出现频率等,而无需透露具体的患者信息。
另外,零知识证明在区块链技术中也有着重要的应用。
区块链作为分布式账本技术,其交易的安全性和隐私性是大家关注的重点。
通过零知识证明,可以在不暴露交易细节的情况下,证明交易的有效性和合规性。
比如说,在一个基于区块链的供应链金融系统中,供应商和采购商之间的交易可以通过零知识证明来保证交易的真实性和保密性。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.2 交互证明系统和零知识证明协议(续) 由于任何有能力冒充A的一方都等同于知道 A的秘密知识(M可以在多项式时间内来计算 它),正确属性保证了协议确实提供了对知 识的证明–知识等价于询问的正确应答。正 确属性因此阻止了不诚实的证明者使诚实 的验证者相信知识的可能。
1.2 交互证明系统和零知识证明协议(续) 定义3 (零知识属性) 一个知识证明的协议 有零知识属性,如果协议可模拟如下功能: 存在一个平均多项式算法(模拟器),它可 以不和真实的证明者交互就可以产生一些 证明必要的交互消息。这些消息副本与同 真实的证明者交互产生的结果不可区分。
许多年前,有报道称小偷在一个超市中放 置假的ATM机。当人们将银行卡插入机器 并输入鉴别身份的秘密时,机器将这些信 息记录下来并反馈消息说机器不能接受这 种类型的银行卡。小偷接下来就可以制造 假的银行卡,并使用得到的身份鉴别秘密 信息到真的ATM机上提取现金。
如何避免这一情况发生?在很多情况下需 要出示鉴别身份的秘密或口令来完成交易。 任何人在得到这个秘密再附加一些(几乎公 开的)身份信息之后,就可以冒充这个人。 我们需要解决的问题就是使用秘密但在使 用的过程中不留给攻击者任何可以重复使 用的信息。这就产生了零知识证明技术。
1.3 零知识证明协议的一般结构(续) 根据协议设计,只有知 道秘密知识的合法 A才
有能力回答所有根据公 开证据提出的问题,而 回答一个问题,并不能 帮助分析A的秘密知识。 B接着选择一个问题提交 给A,A做出回答,而 B检查是否正确。协议是 一个循环执行过程,如 果需要,就可以通过控 制循环次数降低欺骗成 功 的概率。
1.2 交互证明系统和零知识证明协议(续) 定义1 (完备属性) 一个交互证明(协议)是完备 的,如果给定一个诚实的证明者和认证者, 协议就能以压倒的概率获得成功(也就是,验 证者接受证明者的宣称)。 评论. 完备性可以看作是协议在诚实的参与者 执行的情况下的一般要求。对压倒的概率的 定义依赖具体应用,但通常隐含失败的概率 无实际意义。
2 Fiat-Shamir鉴别协议(续)
评述. (续) (2) 答案y r是独立于A的秘密s,然而答案y r s (mod n)也没有提供任何关于 s的信息,因为 B并不知道随机数 r。由A产生的信息对 ( x, y )恰 好可以为验证者 B自己很好的模拟:随机 选择y, 定义x y 2或y 2 /v (mod n)。虽然这并不是 A建立 信息对的方法,但对 ( x, y )的概率分布实际上与 A产生的对不可区分,这 就是零知识属性。尽 管可以模拟证明过程, B并不能冒充A,因为B并 不能预测实时问题。
本讲提要
零知识证明概念总揽 Fiat-Shamir鉴别协议 Feige-Fiat-Shamir鉴别协议 GQ鉴别协议 Schnorr鉴别协议
1 零知识证明概念总揽
1.1 思想
1.1 思想(续) Peggy知道这个洞穴的秘密。她想对Victor 证明这一点,但她不想泄露咒语。下面是 她如何使Victor相信的过程: (1) Victor站在A点。 (2) Peggy一直走进洞穴,到达点C或点D。 (3) 在Peggy消失在洞穴中之后,Victor 走 到点B。
2 Fiat-Shamir鉴别协议
协 议 1Fiat - Shamir鉴别协议 摘 要:证明者A通过执行一个 3轮协议t次向验证者B证明 其掌握知识s 。 (1) 一次性建立过程 . (1.1)信任中心T选择并公布一个 RSA 型的模n p q,但将 素数p和q保密。 (1.2)每一个声称者 A选择一个与n互素的秘密s, 1 s n 1, 计算v s 2 (mod n),并向T登记v作为公开密钥。 (2) 协议执行. 如下的步骤循环执行 t次(连续且独立)。如果t 次都成功完成, B接受证明认为 A掌握秘密s。
1.4 零知识协议VS. 非对称协议(续) (4) 没有证明的假设:许多零知识协议 (“证 明知识”)本身依赖于和非对称技术一样的 未经证明的假设(例如,分解的困难)。 (5) 零知识基与零知识:虽然有着严谨的理 论支持,许多基于零知识概念的技术在实 践中缺少形式化的零知识和/或正确属性的 支撑,导致这一切的是出于效率或其它原 因的参数选择问题。事实上,许多这类概 念是渐进的,并不能直接应用到实用协议 中来。
1.2 交互证明系统和零知识证明协议(续) (3) 零知识属性(定义3)不能保证协议是安 全的 (也就是,获得秘密知识的可能性可 以忽略)。同样,正确属性(定义2)也不能 保证协议安全。这两个属性只有在攻击 者面临计算困难问题的时候才有意义。
1.3 零知识证明协议的一般结构
A B:证据 A B :提问 A B:回答 以上描述了一大类三次 交互零知识协议的一般 结构:证明者随机的选 择一个在事先定义的集 合上的元素做一个秘密 承诺,并从中计算相关 的公开证据。这提供了 一个每一次协议执行的 随机性,并限定了 A在本次协议执行中所能 回答 问题的集合,因此,也 就限定了将来的可能答 案。
3 Feige-Fiat-Shamir鉴别协议(续)
协 议 2Feige - Fiat - Shamir鉴别协议(续) (2.3) A向T通过非密码手段 (例如, 照片) 认证自己的身份, 这样T就 将(v1, . . . ,vk;n)登记为A的公开密钥,当然只有 A知道自己的秘 密密钥( s1, . . . ,sk )。这是一次性的建立过 程。 (3) 协议执行. 下面的步骤执行 t 次;B将接受A的身份,如果全部 t轮都能成功。假定 B知道A的真实公开密钥 (v1, . . . ,vk;n)。 (3.1) A选择一个随机整数 r, 1 r n 1, 并计算x r 2 (mod n),并 发送x (证据) 给B。 (3.2)B发送给A(提问)一个k比特向量(e1, . . . ,ek )。 (3.3) A计算并发送给B (答案):y r j 1 s j j (modn) (r和定义在提
1.4 零知识协议VS. 非对称协议 (1) 使用不退化:协议具有零知识属性因此不 会因为重复使用而降低安全性并可阻止选择 消息攻击。这可能是零知识技术在实践中最 吸引人之处。 (2) 无需加密:许多零知识技术都不需要使用 加密算法。 (3) 效率:虽然一些零知识基技术非常有效, 但是具有零知识属性的协议通常比没有零知 识属性的非对称协议需要更多通信和计算开 销。更为有效的实用零知识基方案通常源于 交互证明的特性,而不是它的零知识特性。
2 Fiat-Shamir 鉴别协议(续)
协 议 1Fiat - Shamir鉴别协议(续) (2.1) A选择一个随机数 (承诺) r, 1 r n 1,并且 发送(证据) x r 2 (modn) 给B。 (2.2)B随机的选择一个 (问题)比特e 0 或者e 1, 并 发送e给A。 (2.3) A计算并发送给B (回答) y,y r (如果e 0)或 者y r s (modn) (如果e 1)。 (2.4)如果 y 0,B 拒绝证明,否则,验证 了 y2 x v e (modn)就可以接受证明。 (根据e,得y 2 x 或者 y 2 x v (modn),由于v s 2 (modn)。注意验证y 0 是为了排除r 0的情况。 )
1.2 交互证明系统和零知识证明协议 零知识证明协议是交互证明系统的一个实 例,这里一个证明者和一个验证者交互多 轮。证明者的目标是让认证者相信声称的 正确性,例如,声称掌握一个秘密。验证 者要么接受证明要么拒绝证明。这与传统 的数学概念的证明有所不同,交互游戏的 证明是随机而不是绝对的。由于这个原因, 一个交互证明常常被称为协议证明。
1.2 交互证明系统和零知识证明协议(续) 评述. (1) 零知识属性表明一个证明者执行协议 (即使与恶意验证者交互)不会透露任何信 息 (即除了特定的声称正确以外的关于他 的秘密知识),这无异于在多项式时间从 公开信息中计算。因此,参与者不会增加 后续冒充成功的机会。
1.2 交互证明系统和零知识证明协议(续) (2) 考虑一个观查者C观测证明者A与验证者 B (B C)一个零知识证明协议交互过程,且 B确定了A掌握某个知识。向B证明的过程并 不能给C任何担保。(事实上,A和B可能事 先串通应答内容来欺骗 C。) 相似情况,记 录零知识证明协议的交互也不能进行回放。 这就是零知识属性的基本思想,即证明过 程可以由验证者单独模拟完成。
1.1 思想(续) (4) Victor向Peggy喊,要她: (4.1) 从左通道出来,或者; (4.2) 从右通道出来. (5) Peggy答应了,如果有必要她就用咒语打 开密门。 (6) Peggy和Victor重复第(1)到第(5)步n次。
1.1思想(续) 评述. 协议使用的技术叫做分割选择技术(cut and choose),因为它类似如下将任何东西等分的 经典协议: (1) Peggy将东西切成两半。 (2) Victor给自己选择一半。 (3) Peggy拿走剩下的一半。 Peggy最关心的是第(1)步中的等分,因为 Victor可以在第(2)步选择他想要的那一半。
1.2 交互证明系统和零知识证明协议(续) 用于鉴别的交互证明可以被形式化为知识证 明。 证明者A掌握某个秘密s,并通过正确 的回答验证者B所提出的问题(涉及的是公开 已知的输入和协商一致的函数)使其相信确 实掌握秘密s,当然,回答这些问题需要秘 密s。注意证明掌握秘密s不同于证明s存在。 一个交互证明是知识证明如果证明满足完备 性和正确性属性。
第十六讲 零知识证明技术
Peggy:“我知道联邦储备系统计算机的口令, McDonald的秘密调味汁的成分,以及Knuth第5卷 的内容。” Victor:“不,你不知道。” Peggy:“我知道。” Victor:“你不知道!” Peggy:“我确实知道!” Victor:“请你证明这一点!” Peggy:“好吧,我告诉你!”她悄悄地说出了口 令。 Victor: “太有趣了!现在我也知道了。我要告诉 《华盛顿邮报》。”