神奇的零知识证明,既能保守秘密,又能让别人信你!

什么是零知识证明(ZK Proof)?Web2.0通往Web3.0的入口技术 零知识证明(Zero-Knowledge Proof)也叫做最小泄露证明,能充分证明自己是某种权益的合法拥有者,又不把有关的信息泄漏出去,即给外界的 “知识” 为“零”。无论是L2与L1、链上链下、Web2.0与Web3.0,都可以利用零知识证明来传递信用,因此零知识证明作为一种有效的技术实现不同生态之间的共识传递,成为Web2.0通往Web3.0的入口技术。 阅读详情

某人声称他解决了哥德巴赫猜想,但是怕别人抄袭,不能暴露细节,怎么在不公布细节的情况下让大家相信他确实证明了哥德巴赫猜想?

看起来似乎不可能,但是确实有一种方法,叫做“零知识证明”,来解决信任的问题。

零知识证明的定义是:证明者(prover)能够在不向验证者(verifier)提供任何有用的信息的情况下,使验证者(verifier)相信某个论断是正确的。

定义干巴巴的,太无趣了,举两个例子来消化一下(例子的来源参见文末链接)。

1

假如你手里有这么一幅图,里边是成百上千只企鹅:

1f8fcaf7002977b4a6a2189cfa025d27.png

但是,其中藏着一只和企鹅有点儿像的海鹦鹉:

23cceebf66913cc7197a04e0ed660167.png

你知道这个海鹦鹉藏在别的地方,但是你不想告诉别人具体的位置。

那么问题来了:你如何在不透漏具体位置的情况下,向别人证明你的确知道海鹦鹉的位置呢?

一个非常简单的办法是,你拿一个板子,上面留个孔,把图片放到板子后面,并且让海鹦鹉对准那个孔。

8ab001fd16450b014a55e04165840df8.png

这样当别人通过洞往里边看的时候,他就会看到海鹦鹉。

a57bf47eb57e92d748225567759c6233.png

但重点是:你没有泄露海鹦鹉的位置,别人就知道图片中确实有一只海鹦鹉。

这就是零知识证明。

2

上面的例子有点简单,再来看个复杂一点儿的数独游戏。

数独规则非常简单,玩家需要根据9×9盘面上已知的提示数字,推理出所有剩余空格的数字,并满足每一行、每一列、每一个粗线宫(3*3)内的数字均含1~9,不重复。

20b0270187a9dbed0a1e4044d293ff6e.png

假设张大胖和何小痩都喜欢玩数独游戏,他们经常互相出数独难题考对方。

有一天,张大胖给何小痩出了一个数独难题,何小痩怎么都做不出来,于是他找到了张大胖。

何小痩:胖哥,你是不是作弊了,出了一道无解的数独?

张大胖:哈哈,是你的水平不行吧,这个数独是有解决方案的。

何小痩:我不信,你把答案告诉我。

张大胖:我不告诉你答案,但是我会用零知识证明我确实知道答案。

张大胖怎么用零知识证明呢?

他让何小痩转过身去,然后做了九九八十一张卡片,卡片上写上1~9,按照正确答案的方式摆到了桌子上。

对于那些提示数字,他把卡片数字朝上,对于需要填数的地方,他把卡片数字朝下,让何小痩看不到正确答案。

4a6d51847114088a5efa985d4ba3f478.png

何小痩转过身来,他失望地发现,张大胖并没有给他答案。

张大胖:答案就在桌子上,你可以检查一下是不是正确,可以以行的方式、以列的方式,或者以3*3方块的方式。

何小痩选择用行的方式。

张大胖把每一行的卡片都装到了一个不透明的袋子中,摇了摇,确保完全混合,然后交给何小痩。

ef16c4c99b9eeb1e6e730b386ac01e22.png

何小痩打开了每个袋子进行检查,果然,每个袋子中的卡片都是1~9 ,完全符合数独的规定。

795d1cadb5aca89496b70d0279f71dde.png

何小痩:这能证明啥?我也可以把1~9放入这些行,也会出现这种结果。

张大胖:可是,我不会读心术,事先并不知道你要选择以行的方式来验证啊?

何小痩要求重新测试,这次他选择了列验证,依然是正确的。

用3*3方格验证,依然挑不出毛病。

何小痩心想:难道这小子运气极好,每次都能猜对我的验证方式,从而摆上合适的数字?这不可能!那张大胖确实有非常大概率(这点很重要)知道正确答案!

在验证的过程中,何小痩没有获得关于答案的任何知识,张大胖成功地实施了零知识证明。

3

零知识证明还有很多例子,如阿里巴巴和四十大盗、地图涂色验证、色盲游戏等等,感兴趣的可以到网上搜一下。

零知识证明是由S.Goldwasser、S.Micali及C.Rackoff在20世纪80年代初提出的,距今有30多年了,具体有什么用处呢?我们可以畅想一下:

我想贷款,银行要求月收入5000以上,但我不想透露我的工资具体是多少,这时候零知识证明就排上用场。

为了核控制、防核扩散以及核裁军,国际检查机构需要一种方法,既能确认某个国家提交的核武器信息的真实性,又不用暴露核设施的敏感信息,正好是零知识证明的用武之地。

在安全领域和区块链中,零知识证明已经有了应用:

比我(刘欣)有一个公钥和私钥,你安全地拿到了我的公钥,但是从来没见过我,有一天我们两个见面了。

我说:我就是刘欣

你可能不相信,万一有人冒充呢?

我可以生成一个随机的字符串,用我的私钥加密,然后发给你。

你用公钥解密,如果得到的字符串相同,你就知道我肯定是刘欣了。

比特币上每一笔交易都是透明的,谁给谁转了多少钱都是公开可查的。但是,通过零知识证明技术实现的隐私币,例如 Zcash 就可以达成隐藏交易信息,但是同时能让全网验证交易合法性的效果。

总之,零知识证明第一次把证明的正确性和证明的知识解耦开来,这种思想范式的转变是一个巨大的创新,拓展了人类的智力边界。

参考资料:

1. Computer Scientist Explains One Concept in 5 Levels of Difficulty

https://www.youtube.com/watch?v=fOGdb1CTu5c

里边讲述了企鹅图片的例子。更有趣的是他分别对小学生、中学生、大学生、研究生、专家等五个级别的人讲述零知识证明,非常有趣,强烈推荐。

2. The Incredible Machine

https://medium.com/qed-it/the-incredible-machine-4d1270d7363a

其中不但讲述了数独的例子,还构造了一个证明的机器,感兴趣的可以深入了解一下。

(完)

点击下方图片,查看更多精彩

cd9e24f2d04687378837425abe567dfd.png

db53e5d3ae2fa37f245e039e4dbac719.png

7aba39a0cbb1be150cd08431d459a98e.png

71abf9f240788d3b7c7445d63af5a44b.png

d0ffd9c137b195fd3624e9df99e8c2d5.png

零知识证明(Zero—Knowledge Proof) 零知识证明(Zero—Knowledge Proof),是指一种密码学工具,允许互不信任的通信双方之间证明某个命题的有效性,同时不泄露任何额外信息。 阅读详情

相关推荐

零知识证明:应用和具体用例

零知识证明(Zero-KnowledgeProofs,ZKPs)是应用密码学中令人兴奋的突破,将在各个行业中解锁新的用例,从Web3到供应链再到物联网。通过在不揭示信息的情况下验证其真实性,ZKPs可以增强数字系统的隐私、安全性和效率。本文将探讨ZKPs的基础知识和正在出现的潜在用例。

ChainlinkO的博客 3167

【 BlockChain 】零知识证明

【 BlockChain 】零知识证明 一、零知识证明起源 “零知识”的概念最早在80年代由麻省理工学院的研究人员 Shafi Goldwasser,Silvio Micali 和 Charles Rackoff 所提出。当时这些人正在研究与交互证明系统相关的问题——即一种理论系统,使得甲方(证明者)可以和乙方(验证者)交换信息,并借此说服乙方接受(通过验证)某个数学论述为真 [作者注1]。 在Goldwasser等人之前,这个领域的研究工作主要聚焦在加强证明系统的可靠性(Soundness)。也就是说原先

qq_40392981的博客 2万+

最全最细的零知识 (ZK) 证明解读

零知识 (ZK) 证明就像三箭资本的 Su Zhu 和 Kyle Davies一样,他们出生于上世纪八十年代,但直到最近才成为热门话题。

qq_32193015的博客 2102

零知识证明(zero-knowledge proof)

零知识证明(zero-knowledge proof) 在密码学中,零知识证明(zero-knowledge proof)或零知识协议(zero-knowledge protocol)是一种方法,通过该方法,一方(the prover, 证明者)可以向另一方(the verifier, 证明者)证明他们知道值x,而无需传达任何信息,除了他们知道值x。零知识证明的本质是,通过简单地揭示信息来证明某人...

Carl_Zhang 2万+

USB PD快充功率监测仪:高精度嵌入式USB电压电流测量终端

USB供电已从数据接口演进为关键电源总线,尤其在PD快充场景下,工程师亟需对5V–20V宽压范围内的实时电压、电流及瞬时功率进行精准捕获。其底层原理依赖高共模抑制比的高边电流检测与分压采样+ADC数字化处理,结合LDO低噪声供电保障模拟链路精度。该类设备的技术价值在于以低成本实现协议无关的‘电气层可视化’,规避商用ASIC测试仪的黑盒局限,支撑PD充电验证、电源设计调试与教学实验等工程实践。本文介绍的开源USB表即基于N32G430 MCU与INA199电流检测芯片,覆盖USB-C输入/输出双通道监测,具备

weixin_42174098的博客 207

从URDF到Gazebo:一个完整的ROS2机械臂仿真项目实战与避坑指南

本文提供了一个完整的ROS2机械臂仿真项目实战指南,详细讲解了从URDF建模、ROS2 Control配置、MoveIt2集成到Gazebo仿真的全流程。文章重点分享了URDF惯性参数设置、Gazebo插件选择、MoveIt2配置修正等关键步骤的避坑经验,帮助开发者快速搭建可用的六轴机械臂仿真环境,实现从静态模型到物理仿真的跨越。

weixin_29279153的博客 275

零知识证明

是一方(证明者)向另一方(检验者)证明某命题的方法,特点是过程中除“该命题为真”之事外,不泄露任何信息。因此,可理解成“零泄密证明”。

欢迎来到我的博客 592

转义序列字符(\0,\n,\r,\t,\v,\a,\f,\b,\\,\‘,\“,\?)详解,转义字符对应的全称,输出结果和对应的ASCII码值详解;

转义序列字符(\0,\n,\r,\t,\v,\a,\f,\b,\\,\',\",\?)详解,转义字符对应的全称,输出结果和对应的ASCII码值详解;

南城花开过的博客 3万+

零知识证明基础

零知识证明的基本概念和例子

hxb002131的博客 3277

GROMACS+PLUMED联合安装避坑指南:为什么你的plumed patch总是失败?

本文深入解析GROMACS与PLUMED联合安装中补丁失败的常见原因,并提供详细的避坑指南。针对版本兼容性、环境配置和编译选项等关键问题,给出从源码选择、环境搭建到手动合并补丁的完整解决方案,帮助用户成功整合这两个强大的分子动力学工具,实现增强采样模拟。

weixin_29302047的博客 288

告别电压瓶颈:手把手教你用SVPWM过调制算法提升电机驱动性能(附Simulink仿真)

本文详细介绍了如何利用SVPWM过调制算法提升电机驱动性能,解决电动汽车高速运行时的电压瓶颈问题。通过过调制I区和II区的算法实现细节,包括相角补偿与跳变控制,结合Simulink仿真演示,帮助工程师和研究者平衡电压增益与谐波失真,提升系统效率与动态响应。

weixin_30315723的博客 392

什么是零知识证明?

零知识证明是能够在不披露声明本身的情况下,验证声明有效性的一种方法。“证明者”是试图证明声明的一方,而“验证者”则负责验证声明。零知识证明在 1985 年的一篇论文“交互式证明系统的知识复杂度(opens in a new tab)”中被首次提出,它给出了至今仍被广泛使用的零知识证明的定义:零知识协议是一种方法,通过这种方法,一方(证明者)可以向另一方(验证者)证明某事是真实的,除了证实特定声明之外,不会透露任何信息。多年来,零知识证明一直在发展,目前已经在现实世界中得到应用。

weixin_42811529的博客 2694

<IBM AIX> 《HACMP 实用手册和命令 HA切换手册》 - 鸿篇巨制,全网最全

操作命令检查磁盘预留策略要将磁盘预留策略更改为 no_reserve集群状态实用程序查看集群状态是否正常SMIT System Management (C-SPOC)Cluster ServicesShow Cluster Services 面板上的选项或 lssrc 命令查看资源组、资源组对应的VG、资源组对应的APPLICATION SERVER# ./cldispsmit常用命令F3退出F4列表Esc+6或者F6查看命令Esc+7或者F7选择多项检查状态。

Else 的博客 3363

浅谈零知识证明

零知识证明是实现隐私保护的密码学方案。曾被称为密码学领域的一颗皇冠,用于在不泄露具体秘密情况下对问题一种正确证明方法。尤其是在金融领域实现数据隐私保护方面的创新业务场景里实现落地应用。 我们今天就从零知识证明的基本概念、研究进展、实现原理方面做一些简单阐述。 一、零知识证明概述 零知识证明(Zero-Knowledge Proof, ZKP)是现代密码学中的一类经典协议,用于在不泄露关于某个命题任何信息的情况下证明该命题的正确性。近年来,随着区块链等新兴技术的发展以及隐私计算需求的兴起,零知识证明技术再次成

jambeau的博客 2万+

【100%通过率】华为OD机试真题 Java&Go 实现【水库蓄水问题】【2022.11 Q4 新题】

给定一个长度为 n 的整数数组height。数组的元素表示山的高度,选择两个元素作为水库的边界,求蓄水量的最大值并输出蓄水量最大时的边界下标(蓄水量相同时输出下标较近的)。

MISAYAONE的博客 1万+

23 RAG 为什么答不准:召回、分块、排序的常见坑

RAG 答不准时,不要先怪模型。本文把常见失败拆成召回不到、召回不准、分块不完整、排序靠后、上下文污染和生成不忠实六类,并给出从 Top-K 检查到评估集的排查流程。

老于的笔记的专栏 246

零知识证明(Zero—Knowledge Proof)

零知识证明概念 零知识证明(Zero—Knowledge Proof),是由S.Goldwasser、S.Micali及C.Rackoff在20世纪80年代初提出的。它指的是证明者能够在不向验证者提供任何有用的信息的情况下,使验证者相信某个论断是正确的。 通俗的来讲,就是既证明了自己想证明的事情,同时透露给验证者的信息为“零”。 零知识证明实质上是一种涉及两方或更多方的协议,即两方或更多方完成一项任务所需采取的一系列步骤。证明者向验证者证明并使其相信自己知道或拥有某一消息,但证明过程不能向验证者泄漏任

培根芝士的专栏 3934

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

安全多方计算之五:零知识证明(从入门到入土。。)

零知识证明(Zero Knowledge Proof)由S.Goldwasser、S.Micali 及 C.Rackoff于1985年首次提出,是一种用于证明者在不泄露任何其他信息的情况下证明其掌握知识正确性的密码学协议,广泛应用于 隐私保护、隐私激素、区块链等领域。

聚集机器学习、信息安全 1万+

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

现代密码学(五)——零知识证明

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

Quincy678的博客 4902

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

区块链之零知识证明(zk-SNARK从小白到明白)

零知识证明:从小白到明白 如今,知识快餐业发达,区块链这么火的领域自然不会落下。经过一轮轮扫盲,共识、工作量证明、闪电网络等等概念对普罗大众已不再陌生,甚至各种解构、比喻、引申,将术语炒得比本义还玄乎。然而,如果不理解甚至没听说过零知识证明,那你基本还属于区块链小白。 之所以这么说,原因有二。其一, 零知识证明是代数数论、抽象代数等数学理论的综合应用,与闪电网络一类的精巧设计不同,属于硬技术。...

跨链技术践行者 2万+

零知识证明原理

零知识证明由四部分组成:多项式问题的转化,随机挑选验证,同态隐藏以及零知识。需要零知识证明的问题先转化为特定的NP问题,挑选随机数,设置参数,公布CRS。证明者,在求得证据的情况下,通过CRS计算出证据。验证者再无需其他知识的情况下可以进行验证。

nobugnomoney的博客 1366

区块链上的隐私保护——零知识证明

一、什么是零知识证明 “零知识证明”的定义是:证明者能够在不向验证者提供任何有用的信息的情况下,使验证者相信某个论断是正确的。 举个简单的例子: A要向B证明自己拥有某个房间的钥匙,假设该房间只能用钥匙打开锁,而其他任何方法都打不开。这时有2个方法:   (一)A把钥匙出示给B,B用这把钥匙打开该房间的锁,从而证明A拥有该房间的正确的钥匙。   (二)B确定该房间内有某一物体,A用自己拥有的钥匙打...

vivian_ll的博客 5716

什么是零知识证明?Tokenview

零知识证明 zero-knowledge proofs,简写为 ZKPs。零知识证明是20世纪80年代初由计算机科学家Goldwasser和Micali等人共同提出的一项技术,它主要是指证明者能够在不向验证者提供任何有用信息的情况下,使验证者相信某个论断是正确的。零知识的性质完备性 completeness:如果证明方和验证方都是诚实的,并遵循证明过程的每一步,进行正确的计算,那么这个证明一定是成...

Tokenview的博客 1744
上一篇: 他把互联网“存”了起来!
下一篇: 漫画 | 再见Postman ! 一站式协作ApiPost更香!
码农翻身
码农翻身 《码农翻身》作者 《码农翻身》作者
博客等级 码龄8年 3万+粉丝 1084原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值