区块链网站|NFTS Zcash(ZEC) 区块链学习:ZCASH零知识证明的江湖

区块链学习:ZCASH零知识证明的江湖

广告位

区块链学习:ZCASH零知识证明的江湖

2009年1月3日,比特币网络发布了首批50枚比特币,从此,一个新的时代开始了。随着比特币价值的飙升,比特币受到越来越多的关注,比特币系统的一些缺陷也受到越来越多的关注和讨论。缺乏隐私保护是比特币系统的主要缺陷之一。比特币网络中的所有交易都以明文形式记录在区块链上。虽然比特币系统使用的是与身份无关的地址,但我们仍然可以通过跟踪地址之间的资金流动来分析哪些地址属于同一个用户。

为了解决比特币的隐私保护问题,人们提出了一系列的解决方案。其中,2015年提出的Zerocash[1]使用一种特殊类型的零知识证明工具zk-SNARKs,完全隐藏交易金额和交易方。2017年,Zerocash团队提出了zk-SNARKs与智能合约相结合的方案[8],使得zk-SNARKs这种零知识证明获得了更高的关注度。越来越多的人在讨论zk-SNARKs能为区块链科技解决什么问题。

其实零知识证明技术就像一个江湖,zk-SNARKs只是一个名校。在这个江湖上,还有很多其他门派,风格各异,兵器各异。

自1985年零知识证明首次被提出[2]以来,它已经成为当今密码学的重要基础组成部分。然而,长期以来,零知识证明协议仅仅停留在理论上,因为它没有很好的运行效率和通用性。这些理论上的零知识证明协议具有不同的特点。有些协议是全职的,只能证明一些特定的东西,比如图同构。一些零知识证明协议是全能的。只要你能用代码定义问题,就可以证明(只有理论可行,不代表运行效率)。有些协议是交互式的,需要证明者和验证者来回发送多轮消息,而有些协议是非交互式的,证明者只需要根据协议向验证者发送一次消息。有些协议证明与问题的规模有关,问题越复杂,证明时间越长。但是在某些协议下,无论问题有多复杂,证明大小都是一样的。然而,一个全能的、非交互式的、恒定大小的零知识证明协议是密码学家多年来一直努力的目标。

2010年,Groth基于椭圆曲线双线性映射实现了第一个全能的、非交互的、固定大小的零知识证明协议[3]。区块链著名的零知识证明协议SNARKs就是该协议的“后代”。经过不断优化,2013年,一个名为Pinocchio[4]的协议实现了分钟级证明和毫秒级验证,证明大小小于300字节,实现了从理论到应用的零知识证明,获得了当年的安全隐私最佳论文奖。Zcash使用的Snarks是基于匹诺曹的改进版。

混淆电路是设计零知识证明协议的另一个工具。混淆电路由中国唯一的图灵奖获得者姚期智院士于1982年首次提出。它允许双方使用他们的隐私来计算一个公开的结果,而不会泄露他们的隐私。比如,两个百万富翁不想让对方知道自己有多少资产,但都想知道谁的钱多。两个企业,一个企业有机器学习的模型,另一个企业有数据。他们不希望对方知道自己的模型和数据,而是希望一起计算预测结果。2013年,Jawurek等人将基于混淆电路的零知识证明优化为毫秒级证明和验证,证明长度约为3MB(证明SHA2的计算)[5]。但是,这种算法是交互式的,需要证明者和验证者同时在线。这也意味着在区块链上部署这种证明将是非常低效的。

三年后,这篇论文的作者之一发表了另一个名为ZKBoo的协议[6]。该协议基于零知识证明协议的设计思想,称为头部MPC协议。验证时间接近以前的协议,约为证明大小的25%,并且是非交互式的。也就是说,和zk-SNARKs一样,ZKBoo不需要证明者和验证者同时在线。

最近zk-SNARKs的主要研究人员Eli Ben-Sasson也提出了另一个竞争性的零知识证明协议,但目前只有一些视频、海报、博文等资料[9,10],还没有论文发表。笔者将继续关注这部作品。

到目前为止,有应用前景的零知识证明工具可以分为两类,一类是慢证明、快验证、小证明量,另一类是快证明、快验证、大证明量。第一类由于验证速度快,不占用空间,受到区块链开发商的青睐。以Zcash闻名,其代表协议zk-SNARKs也有社区开发的C库。第二种类型的证明的特点是快速,这使得它可以部署在移动设备和嵌入式设备中。但是,隔离见证等技术有望缓解证据量大的问题,在区块链领域有着广阔的应用前景。

与第一个相比,第二个还有一个明显的优势。在第一种情况下,在部署零知识证明协议之前,需要一台机器来生成一些初始参数,这些参数将在每次证明和验证中使用。参数生成后,参数生成算法运行中使用的所有数据都必须销毁,否则整个协议都是不安全的。协议的安全性取决于一台机器的数据销毁,所以最简单粗暴的想法就是当着所有人的面销毁这台机器。当然也有一些多方安全计算的算法[7],由多方控制的多台机器共同生成初始参数。除非所有人都串通起来,否则协议的安全性会受到威胁。只要有一方销毁了所有数据,协议就是安全的。但是无论如何,在几个初始化机器上建立整个协议的安全性总是与区块链去中心化的初衷不符。而第二种零知识证明协议不依赖于参数生成算法的安全性,自然不存在这个问题。未来,这两类协议在不同的应用需求下,可能会有各自的定位。

笔者期待,随着理论研究的突破和应用场景的结合,零知识证明工具能够为区块链上的数据安全提供高效有力的保障,让隐私问题不再成为区块链发展的制约因素。

广告位
本文来自网络,不代表区块链网站|NFTS立场,转载请注明出处:https://www.qklwz.com/jzb/zec/15539.html
上一篇
下一篇

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

返回顶部