古老的难题

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

零知识证明的定义

零知识证明(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的入口技术。

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

  1. 走进web(关于web、web1.0、web2.0、web3.0)

    走进web (关于web.web1.0.web2.0.web3.0) 什么是web web1.0 web2.0 web3.0 (关于web.web1.0.web2.0.web3.0)) 什么是web ...

  2. 从Web2.0到Web3.0

    本文为Cdot Network创始人& Random Capital合伙人刘毅,在万向区块链蜂巢学院第十二期活动"技术改变世界:即将到来的Web3.0时代"上的演讲内容&l ...

  3. 盘古开源:分布式存储如何打通Web2.0和Web3.0的存储鸿沟?

    21世纪初,我们逐步迈入了Web2 .0的阶段,网络有了更多的交互性,我们可以随时发布自己的博客视频.随着互联网在生活的各个方面快速渗透,我们生活中的很多活动转到了线上,并带来大数据的一个爆发. 而网 ...

  4. WEB发展简史,Web1.0到Web3.0的发展历程

    WEB World Wide Web 万维网,通常指的是网页和网站,现在已经是互联网的代名词,也是互联网中重要的核心部分.到目前为止,web发展已经有将近30年的历史了,万维网也经历了web1.0到w ...

  5. Web1.0、Web2.0、Web3.0、Web4.0、Web5.0、Web6.0

    Web是大家所熟知的,百度上的解释为:web(World Wide Web)即全球广域网,也称为万维网,它是一种基于超文本和HTTP的.全球性的.动态交互的.跨平台的分布式图形信息系统. 计算机专业的 ...

  6. web1.0、web2.0与web3.0

    文章目录 web1.0 web2.0 web3.0 对比 专栏目录请点击 web1.0 web1.0也就是第一代互联网,他的中文名叫做全球广域网,也叫做万维网,他的英文名叫做 Word Wide We ...

  7. web1.0 和 web2.0 以及 web3.0的发展史

    Web1.0:出现于20世纪90年代和21世纪初.当时的互联网是静态.只读的HTML页面.用户之间的互联也相当有限.Yahoo.新浪和搜狐等,内容为主,少交互 web1.0时代是一个群雄并起,逐鹿网络 ...

  8. 区块链:通往 Web3.0 的高速公路(下)

    谁是幕后推手? Web3.0 的核心技术是区块链公链技术.作为元宇宙和 Web3.0 的底层技术,只有掌握了区块链技术才能实现 Web3.0. 区块链和比特币并非新兴概念.早在2008年10月31日, ...

  9. 零知识证明(zero-knowledge proof)

    零知识证明(zero-knowledge proof) 在密码学中,零知识证明(zero-knowledge proof)或零知识协议(zero-knowledge protocol)是一种方法,通过 ...

最新文章

  1. 山石网科-Hillstone-IPsec V_P_N常见故障debug排错心得终结版
  2. linux系统管理命令,压缩命令
  3. hdu 1280 前m大的数 哈希
  4. python全栈_007_Python3格式化输出
  5. Linux中常用的操作指令(随时更新)
  6. C++工作笔记-对二级指针的进一步理解(函数的参数使用二级指针,从而操作原数据)
  7. Vue列表搜索和排序---vue工作笔记0010
  8. 易语言Note:酷Q插件开发起航
  9. f2fs学习笔记 - 4. f2fs文件系统组件说明
  10. rake matlab,基于MATLAB的Rake接收机仿真及性能分析
  11. 1-7华为HCNA认证eNSP基础B
  12. jsp中java代码的输出,Java控制台输入,输出!-JSP教程,Java技巧及代码
  13. 大学计算机基础课本知识,大学计算机基础-知识点提纲
  14. 三极管来源,及NPN与PNP区别
  15. 仅允许用户radmin使用su命令
  16. Android NDK不得不说的秘密
  17. Unity Scroll View在Clamped模式下无法移动
  18. IOS UTI统一类型标识符:判断文件类型通过后缀
  19. 解决联想拯救者打开AMD Radeon Software弹出“The version of AMD Radeon Software ......”框问题
  20. html5 图片拱形旋转,CSS DIV拱形边框的图片

热门文章

  1. return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. Replacing columns cSerDe may be incompati
  2. 国内数字藏品交易平台开发市场会开放二级市场吗
  3. MapReduce剥洋葱
  4. 详解10大Layer1与4大Layer2年度进展与竞争格局 |链捕手
  5. 纹理的应用(凹凸贴图与法线贴图,三维噪声和三维纹理)
  6. 2021年全球与中国油管线轴行业市场规模及发展前景分析
  7. DICOM医学图像处理:浅析SWF、WML、SPS、MPPS
  8. 下一代宽带策略控制系统走向何方?
  9. 一直又爱又恨的jqueryValidate,看到一个还不错的laber.error样式
  10. Jmeter录制脚本,HTTP代理服务器介绍使用