什么是零知识证明(ZK Proof)?Web2.0通往Web3.0的入口技术

news2025/1/9 2:55:20

古老的难题

女:你爱我吗?
男:爱!
女:怎么证明?
男:……

零知识证明的定义

零知识证明(Zero-Knowledge Proof)也叫做最小泄露证明,能充分证明自己是某种权益的合法拥有者,又不把有关的信息泄漏出去,即给外界的 “知识” 为“零”。

例子

假设A有一个带密码锁的盒子,他想在不告诉B真正密码的情况下,又让B相信A知道这个盒子的密码。那么他要怎么做呢?

A让B写了一个全世界只有B自己知道的秘密,B写下了一张“我的小狗叫Bob”的字条放入盒子中。A通过正确的密码打开盒子后获取了此信息并告知B。在这个交互过程中,B并没有得知任何此前自己不知道的信息(盒子的密码),但A还是成功的让B相信了A知道密码。

零知识证明的发展

零知识证明第一次问世是在 1985 年麻省理工学院的一篇研究论文中提出的一种加密方法,是可信计算广泛使用的密码学算法之一。其中一位作者 Silvio Micali 后来创立了 Algorand 区块链。

作者在论文中提到,证明者(prover)有可能在不透露具体数据的情况下让验证者(verifier)相信数据的真实性。

像许多技术一样,零知识证明首先吸引的是理论上的关注,然后它才在进一步发展和完善后最终找到了实际用途。

最早的零知识证明是交互式(interactive)的。为了证明什么,你必须和验证者玩一个游戏。他们就像测谎测试一样,整个过程就像是一个仪式,其中一方提问,另一方回答,直到真相被确定。

而零知识证明最近(和更先进的)的实现是非交互式的。你现在可以生成一个东西,一个数据来作为你的零知识证明,你可以把它提交给验证者,而不需要几轮的沟通。这些新的零知识证明不太像游戏/文件/协议,而更像是一种不可伪造的物品,它可以由验证者生成并提交给验证者。

零知识证明目前有多种实现方式,如zk-SNARKs(简洁非交互式零知识证明)、zk-STARKs(简洁全透明零知识证明)和 BulletProofs(防弹证明)。

零知识证明三个性质

  • 完备性(Completeness):若一个证明方确实掌握了某论断的答案,则他肯定能找到方法向验证方证明他手中掌握的数据的正确性,即真的假不了。
  • 可靠性(Soundness):若一证明方根本不掌握某论断的答案,则他无法(或只能以极低概率)说服验证方他手中所谓答案的准确性,即假的真不了。
  • 零知识性(Zero-knowledgeness):验证方除了知道证明的结果外,对其他信息一无所知。

零知识证明的用途

在当前,零知识证明有两个最主要的用例:隐私和扩展性

隐私

隐私计算是零知识证明的一个重要的应用领域。隐私是信息泄露所导致的问题,若想保护隐私,则必须通过密码学的解决方案对链上数据进行加密,让链上的不同交易之间找不出关联性。零知识证明可以验证计算而不会暴露有关输入和计算本身的任何信息,保证链上数据隐私。

在 Web3.0 中至关重要的一点是用户自身真正掌握身份和数据所有权。但当前区块链上所有的信息都是公开的,通过一些手段可以轻易得获取用户的信息(当然这本身也是区块链网络共识的特性)。

(1)金融:如抵押贷款申请人可以证明他们的收入在可接受的范围内,而不透露他们的确切工资。

(2)在线投票:零知识证明允许选民匿名投票,并验证他们的投票是否包含在最终计票中。

(3)身份验证:零知识证明可用于对用户进行身份验证,而无需交换密码等机密信息。以太坊上的Polygan ID就是采用了零知识证明的验证方案,它既帮助了用户在基于区块链的Web3平台上保护他们的隐私,同时满足监管要求的KYC验证规范,用户可以自由选择何时以及共享哪些数据。

(4)机器学习:零知识证明可以让机器学习算法的所有者说服其他人了解模型的结果,而无需透露关于模型本身的任何信息。

(5)区块链:比特币和以太坊等区块链能保证链上数据的透明性使人人都可以验证链上交易。这意味着参与者几乎没有了隐私,可能导致数据的非对称性,而零知识证明可以帮助保护区块链参与者的隐私权。

扩展性

若常用的区块链平台中产出新区块的验证时间很长,可直接更改为一人(节点)验证并生成证明,网络中的其他参与者都掌握快速验证该证明的方法,而不需要每个参与者都花费大量的时间来直接进行验证。

将零知识证明和区块链的一致共识结合起来,则可以降低网络成本,一台设备即可运行计算,链上用密码学的方法验证其可靠性而非重复参与计算,并且在成本昂贵的区块链网络上,验证计算的正确性要比重复计算便宜得多。

区块链依旧负责网络的共识和安全,而一些计算的工作则可以交给零知识证明,在区块链网络外部完成。整体上,不仅提升了扩展性,这种方法依旧有着区块链网络的安全性和共识。

零知识证明代表项目

ZK Rollup是基于「零知识证明」验证方式落实Rollup技术的layer2解决方案。

以zkSync2.0与StarkNet为代表的zk-Rollup路径,被普遍视为 Layer2扩容的终极方案。以至于以太坊创始人Vitalik认为,zk-Rollups将会成为扩容的最终方案。而目前更为流行的 op-Rollup可能只是作为在zk-Rollups技术尚不成熟时的过渡方案而存在。

ZK-SNARKs技术的代表项目zkSync

zkSync 是基于 ZK Rollup 架构的低成本且无需信任扩容协议,用于在以太坊上进行可扩展的低成本支付。主要通过零知识证明和数据可用性保障用户资产安全来保证用户的资产安全。

所有资金都由主链上的智能合约持有,而计算和存储则在主链外进行。为了提升效率,不是单独验证每个交易,而是将交易“汇总”到单个项目(汇总块,即Rollup),然后对其进行验证,同时批准所有交易。

zkSync的主要架构分为链上和链下,即 L1 和 L2;L1 的核心为zkSync智能合约,主要负责存款、提款、交易验证,也就是以太坊主链上账户的最终状态维护。

L2 分为 L1 交互(Watcher、Sender)、L2 状态维护(Mempool、Block Proposer、State Keeper、Block Commiter)、零知识证明系统。

zkSync具有证明慢、验证快,证明体积小的特点。

zkSync成为行业最为看好的L2解决方案。

zk-STARKs技术代表项目StarkWare

StarkWare 是一家建立零知识证明扩展技术的公司,该公司由 Eli Ben-Sasson 创立,他是一个真正的零知识证明专家。

Eli 共同发明了 STARKs(简洁全透明零知识证明),并且他还是 Zcash 的创始科学家。他们有两个主要产品:

  • StarkEx:允许应用程序各自建立自己独立的、有权限的零知识证明系统。例如,dYdX 和 Immutable 已经使用 StarkEx分别为永续交易和 NFT 建立了自己的特定应用零知识证明项目。但这些应用是孤立的 ,各项目之间没有兼容性,所以一个 StarkEx项目不能直接与另一个项目进行“对话“。
  • StarkNet:一个较新的产品,它像一个通用的区块链。任何开发者都可以创建一个智能合约并将其部署在 StarkNet 上,但它不像StarkEx 那样需要许可。项目之间是完全可组合的,所有交易都在以太坊上的 rollup 和结算。

通过Volition系统解决DA(数据可用性)问题。(DA非常重要,有了它,用户才能在区块链浏览器上看到自己的交易具体是如何发生的)Volition允许用户可以在rollup 方案 (链上数据可用性,更昂贵) 和validium方案 (链下数据可用性,更便宜) 之间自由选择。

在 validium 方案中,链下DA由中心化的 “数据可用性委员会” 提供保证,委员会由一些有声望的加密实体组成。虽然不够去中心化但费用更低。用户仍可自由选择,这其实是一个折中的方案。

StarWare具有证明快、验证快,但证明体积大等特点。

总结

无论是L2与L1、链上链下、Web2.0与Web3.0,都可以利用零知识证明来传递信用,因此零知识证明作为一种有效的技术实现不同生态之间的共识传递,成为Web2.0通往Web3.0的入口技术。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/75529.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Docker】第四章 容器管理

4.1 创建容器常用选项 指令 描述 -i, --interactive 交互式 -t, --tty 分配一个伪终端 -d, --detach 运行容器到后台 -a, --attach list 附加到运行的容器 --dns list 设置DNS服务器 -e, --env list 设置环境变量 --env-file list 从文件读取环境变量 -p, --p…

知识点14--搭建k8s本地测试集群

首先要做安装前的准备: 1、最少三台节点,CentOS 7系统,每台不低于4核4G资源,并配置host域名 [roothdp1 ~] cat /etc/hosts 192.168.88.186 hdp1 192.168.88.187 hdp2 192.168.88.188 hdp32、所有节点保证时间同步、并做SSH互信 …

离散数学与组合数学-数理逻辑-01命题与联结词

文章目录1. 命题与联结词1.1 命题1.2 常用联结词1.3 命题公式1.4 命题的等值演算与推理等价关系式基本等价式1. 命题与联结词 1.1 命题 命题:我们对确定对象做出的陈述句称为命题(propositions and statements 命题或陈述)。当判断为真时&a…

《小猫猫大课堂》2—开启C语言的世界,喵!

更新不易,麻烦多多点赞,欢迎你的提问,感谢你的转发, 最后的最后,关注我,关注我,关注我,你会看到更多有趣的博客哦!!! 喵喵喵,你对我…

学不会的python之正则表达式详解(re模块)

本篇博客介绍了正则表达式与在python中的应用(re模块),及一些在开发中常见的模式示例。参考书籍《python核心编程(第三版)》 学不会的python之正则表达式正则表达式(模式)简介正则应用搜索与匹配注意特殊符号与字符择一匹配匹配单个字符注意问题起始、结尾、单词边界…

天津教育杂志天津教育杂志社天津教育编辑部2022年第35期目录

卷首语《天津教育》投稿:cn7kantougao163.com 强化教学保障意识 助力基础教育又好又快发展 本刊编辑部; 1 本刊视线_关注 家校协同下的青少年心理健康问题探讨 袁玉萍; 4-6 本刊视线_学校体育 中学体育课程主体活动教学模式的实施 张强;李聚虎; 7-9 本刊…

Python制作粒子烟花,提前开始跨年?

前言 跨年倒计时20天?我已经开始整烟花了,虽然不是很好看吧,但是也能将就看看 😥 这个的背景图,音乐,还有文字都是可以自己修改的哦 效果展示 导入库 import random import pygame as py import tkinte…

CENTOS上的网络安全工具(十五)cascade的部署

这一篇,我们尝试在CentOS上安装并运用一款“小众”安全工具——Cascade。这个工具给人的感觉只是作为验证ATT&CK理念的一个存在,而且由于其运转还需要依托CAR,所以对数据的处理停留在主机log类的层面,可能暂时还不太受安全公司…

【Lilishop商城】No3-3.模块详细设计,会员信息(会员基本信息)、店铺设置(店铺信息、配送模板)的详细设计

仅涉及后端,全部目录看顶部专栏,代码、文档、接口路径在: 【Lilishop商城】记录一下B2B2C商城系统学习笔记~_清晨敲代码的博客-CSDN博客 全篇会结合业务介绍重点设计逻辑,其中重点包括接口类、业务类,具体的结合源代码…

Briefings in Bioinformatics2021 | 从头药物设计的深度生成模型的综合性评估

论文标题:Comprehensive assessment of deep generative architectures for de novo drug design 论文地址:Comprehensive assessment of deep generative architectures for de novo drug design | Briefings in Bioinformatics | Oxford Academic 一…

JMeter的三种参数化方式

一、 用户定义的变量 1.线程组-配置元件添加用户定义的变量 2.引用变量 ${变量} 二、 csv Data Set config (1)csv Data Set config之.CSV 1.造.csv格式文件的数据 2.设置CSV数据文件 3.消息体数据,引用变量名.{变量名} 4.设置线程组&…

关于Elasticsearch查询(match、match_phrase、query_string和term)

由上图看出, QueryBuilder 是整个查询操作的核心,决定了查询什么样的数据和期望得到什么结果这些核心的问题。 QueryBuilder 只是一个接口,需要具体的实体类才可以。那么如何创建 QueryBuilder 的实例呢?有两种方式 通过 QueryB…

AOP开发明确的的事项

12.2. AOP开发明确的的事项 12.2.1、需要编写的内容 编写核心业务代码(目标类的目标方法) 编写切面类,切面类中有通知(增强功能方法) 在配置文件中,配置织入关系,即将哪些通知与哪些连接点进行结合 12.2.2、AOP 技…

什么是MinIO

本文为joshua317原创文章,转载请注明:转载自joshua317博客 什么是MinIO - joshua317的博客 什么是MinIO? MinIO 是一款高性能、分布式的对象存储系统. 它是一款软件产品, 可以100%的运行在标准硬件。即X86等低成本机器也能够很好的运行MinIO。 MinIO提…

容灾演练月报 | 福莱特集团核心系统完成“跨云”容灾切换演练

11月,美创科技携手福莱特集团、金华银行、稠州银行、慈溪市卫健委及医疗行业等总计19家用户完成容灾切换演练,其中完成2次灾难切换,有效验证了各用户单位容灾系统的可靠性及高可用性! 本月典型案例:福莱特集团 福莱特集…

CANoe.DiVa简单配置

🍅 我是蚂蚁小兵,专注于车载诊断领域,尤其擅长于对CANoe工具的使用🍅 寻找组织 ,答疑解惑,摸鱼聊天,博客源码,点击加入👉【相亲相爱一家人】🍅 玩转CANoe&…

RK3588核心板显示资源分配实操竟如此简单!飞凌嵌入式

前言 眼睛作为人类最重要的感觉器官,通过“视觉”帮助我们接收了大部分的外界信息,“视觉效果的好坏”直接影响着我们日常生产和生活质量的高低,因此“显示能力”成为了评价产品优劣的一项重要指标。在影音、游戏、智慧办公、工业自动化和交通…

OpenAI ChatGPT微信接入教程

OpenAI ChatGPT微信接入教程 OpenAI ChatGPT 接入 个人WeChat(微信),让AI互动更方便! 准备工作 Ⅰ,OpenAI 账号,参考ChatGPT注册试用全攻略 Ⅱ,微信账号(需要绑定支付方式,需支持网页登录&am…

JVM篇之牛刀小试(三)年轻代参数优化探索

前言 在JVM 篇之 牛刀小试 (一)我们谈到了关于年轻代参数的问题,就是当我没有设置-Xmn的时候,gc时间居然比我设置了500m的时候,时间还短,然后当时我就停止了探索。 后来我在公司飞书文档写了一篇文章分享&…

Java的注解和注解解析器是什么,运行方法如何,架构师必会知识体系

文章目录什么是[元数据](https://so.csdn.net/so/search?q元数据&spm1001.2101.3001.7020)(metadata)什么是注解(Annotation)?元注解自定义注解注解处理器什么是元数据(metadata) ​ 元数据由metadata译来,所谓的元数据就是“关于数据的数据”,更通俗的说就是…