• 语言&汇率
  • 偏好设置
    涨跌颜色
    涨跌幅起始时间
Web3 交易所
Gate博客

加密货币新闻、热点&行业洞察

Gate.io 博客 一文读懂零知识证明在区块链中的应用

一文读懂零知识证明在区块链中的应用

12月15日 17:41

【TL; DR】

1.零知识证明技术旨在向验证者证明某一命题,但在证明过程中,不透露除了“该命题为真”之外的任何信息。

2.零知识证明需要具有完备性、可靠性、零知识三大要素。

3.zk-SNARKs技术可以零泄密的证明某人拥有某种信息,在区块链领域广受欢迎。

4.Filecoin采用的复制证明和时空证明过程都是基于zk-SNARK技术,将经过计算得到的哈希值上传到链上,并且周期性证明储存有效性。

5.ZK-rollup则是将交易原始数据上传至链上,并同时使用零知识证明自动验证交易的有效性。

假设某天阿里巴巴被人劫持,正在宝藏门前和绑匪周旋。那么,他有没有什么办法,可以在不告诉绑匪开门口令的情况下,向绑匪证明自己真的知道口令,从而保全自己的性命呢?方法是有的,他可以让绑匪拿着弓箭站在适当的距离,既不至于离他太近,从而能够听到开门口令,又不至于离他太远,从而让阿里巴巴轻易逃跑。接着,阿里巴巴只需要向绑匪展示开门关门,就可以在不告诉绑匪真正口令的情况下,证明自己真的知道口令了。在这个过程中,阿里巴巴没有向绑匪(验证者)提供任何有用的信息,就让绑匪(验证者)确认了某个结论的真实性。这同样也是零知识证明(Zero Knowledge Proof, ZKP)的基本观念。


什么是零知识证明

零知识证明始于1985年,最早由莎菲·戈德瓦塞尔、希尔维奥·米卡利、查尔斯·拉克福三位教授在一篇名为《交互式证明系统的知识复杂度》(The knowledge complexity of interactive proof systems)的论文中提出。这一技术旨在向验证者证明某一命题,但在证明过程中,不透露除了“该命题为真”之外的任何信息。因此,“零知识证明”也可以说是“零泄密命题”。

这一概念听起来有些拗口,但却内涵明确。零知识证明需要具有一下三大要素:

1.完备性(Complete)。证明者需要能真正向验证者证明命题为真,或者说能够说服验证者。

2.可靠性(Sound)。如果命题为假,证明者就无法向验证者证明命题为真,从而保证证明是可信的。

3.零知识(Zero-Knowledge)。在向验证者证明命题为真的过程中,完全不暴露其他有效信息。

零知识证明是现代密码学的基础之一,莎菲·戈德瓦塞尔、希尔维奥·米卡利也因他们在零知识证明上的成就荣获2012年图灵奖。在现代互联网中,零知识证明是隐私计算中最基本的技术之一。而在区块链领域,由于链上数据完全对外公开,除了无法将链上地址与人的线下真实身份对应外,实际上并没有某种隐私保护机制。因此,零知识也在区块链上获得了诸多应用,如身份系统、隐私保护、链下扩容等。尤其是zk-SNARKs技术(zero knowledge succinct arguments of knowledge),可以零泄密的证明某人拥有某种信息,这一技术在区块链领域广受欢迎。


零知识证明的应用

1/Filecoin
Filecoin是基于一种互联网新协议——星际文件系统(IPFS协议)的分布式储存项目,也是目前基于IPFS的最知名项目。同时,由于使用了基于零知识证明的储存证明技术,Filecoin还是世界上最大的零知识证明网络。具体来说,Filecoin采用的复制证明和时空证明过程都是基于zk-SNARK技术,这是一种将原始数据储存在链下,将经过计算得到的哈希值上传到链上,并且周期性证明储存有效性的证明技术。
在进行文件储存时,需要对原始数据构建Merkle树,逐层进行VDE计算,最后将Merkle树的树根上传到链上。这一加密过程耗费大量算力,但最后上链的数据大小很有限,可以把数百kb的数据压缩到仅数百字节,因此是一种“时间换空间”的处理方式。在数据上链后,则需要每隔一段时间验证一个随机挑选的Merkle叶子上的数据,计算从根到该叶的全部路径,这一过程也被称作时空证明。如果被要求提供证明的节点并未储存对应数据,就无法在有限时间内提供所需的所有路径的哈希值,从而无法通过验证。这样,我们就通过零知识证明在不暴露储存数据本身的条件下,验证了数据储存的有效性。


关于IPFS和FileCoin阅读更多,请参见我们的博客文章:
可能颠覆互联网的IPFS协议,及应运而生的FileCoin

2/zk-Rollup

Filecoin将zk-SNARKs技术用于分布式储存,验证一般数据储存的有效性。而ZK-rollup则是将交易原始数据上传至链上,并同时使用零知识证明自动验证交易的有效性。但所有交易数据都需要证明这一点导致了巨大的计算开销,也使得ZK-rollup的性能表现较差。

在区块链系统中,每个节点都需要对区块信息进行计算,以验证交易信息的可靠性。对于整个系统来说,这种计算是高度重复的,而比起计算区块信息,直接对区块信息进行验证显然更快。这就是Zk-rollup对区块链进行扩容的基本原理。在数据结构上,也是对系统中的交易状态维护一个全局Merkle树,每种状态都是树上的一个叶节点。假如说采用二进制Merkle树结构,为了支持100万用户和1000中资产,Merkle树的深度就需要达到30左右。如果每次交易将会改变5~10叶节点的信息,则需要进行约200次哈希计算。

关于zk-Rollup扩容方案,请参见我们的博客文章:
破解“不可能三角”:区块链扩容方案都有哪些?(Layer 2部分)
分片+Layer 2会是以太坊的终极解决方案吗

结语

零知识证明是加密学的明珠,在隐私保护、减少重复计算等方面起到了重要作用。而这些优良的特性无疑将会帮助我们开启一个隐私、安全、迅速的区块链未来。

答问题,赚奖励

作者:Gate.io 研究员 Ashley.H
*本文仅代表观察员观点,不构成任何投资建议。
*本文内容为原创,版权为Gate.io所有,如需转载请注明作者和出处。

Gate.io 一周精选文章
《SocialFi会是Web3.0时代的下一个风口吗?》
《终局之战:揭秘V神的区块链扩容最优解》
《加密听证会要点 | 业者呼吁勿要监管过度,议员提出确保Web3.0革命发生在美国》
解锁盲盒最高获$6666奖励
立即注册
即刻领取20点卡
新人专享,仅需2步马上获得点卡

🔑 注册账户

👨‍💼 24小时内进行身份认证

🎁 获得点卡奖励

马上领取
语言及地区
汇率
前往土耳其站点?
土耳其站已上线
可点击前往TR分站,或是继续留在国际站