深入浅出零知识证明(一):Schnorr协议

       最近在学习零知识证明,因为内容很多并且难度也大,想根据自己的学习路线做一系列总结,这是第一篇文章,主要介绍零知识证明的一些重要概念和思想,可以对零知识证明有直观的理解,然后讲解一个经典简洁的零知识证明安全协议Schnorr协议。

       本篇文章主要包含四个方面,首先来总体介绍一下零知识证明,然后以地图三染色问题为例,体现零知识证明思想,然后分析交互式Schnorr协议和非交互式Schnorr协议。

1.零知识证明概述

     ·简介

       零知识证明(Zero-Knowledge Proof),是由S.Goldwasser、S.Micali及C.Rackoff在20世纪80年代初提出的。证明者能够在不向验证者提供任何有用的信息的情况下,使验证者相信某个论断是正确的。零知识证明实质上是一种涉及两方或更多方的协议,即两方或更多方完成一项任务所需采取的一系列步骤。

    ·概念

      “P”表示 “证明者(Proofer)”:作为零知识证明的参与方,他在证明命题真实性的同时,不会泄漏任何相关信息。

      “V”表示 “验证者(Verifier)”:作为零知识证明的另一参与方,验证证明者提出的命题以及对应的证明是不是正确。

      “承诺阶段(Commit)”:证明者针对命题做出承诺,并等待验证者提出挑战并进行验证。

      “挑战阶段(Challenge)”:验证者选择随机数,对提出的承诺进行挑战。

      “回应挑战阶段(Response)”:证明者将收到的随机数并结合给出的承诺,返回挑战的回应。

      “验证阶段(Verify)”:验证者验证,挑战的回应是否正确,错误的话那就证明失败,如果成功就可进行下一次挑战,直到可以相信的概率达到验证者接受的条件,这样就证明成功。

    ·性质

       在零知识证明中,需要满足三个性质:

       正确性。没有人能够假冒P使这个证明成功。如果不满足这条性质,也就是P不知道“知识”,再怎么证明,V也很难相信P拥有正确的知识。

       完备性。如果P和V都是诚实的,并证明过程的每一步都进行正确的计算,那么这个证明一定是成功的。也就是说如果P知道“知识”,那么V会有极大的概率相信P。

       零知识性。证明执行完之后,V只获得了“P拥有这个知识”这条信息,而没有获得关于这个知识本身的任何信息。

    ·应用

       数据的隐私保护:在隐私场景中,根据零知识性,不泄漏交易的接收方,发送方,交易余额等细节的前提下,证明区块链上的资产转移是有效的。再比如买保险的时候,保险公司需要了解是否患有某种疾病,但是我不想让保险公司知道我的全部病历信息,那我可以证明给保险公司看,我没有相关疾病就足够了。

        计算压缩与区块链扩容:在当前的区块链架构中,同样的

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值