轻松了解zk-SNARK(零知识证明)
今天这篇文章会讲解其中的zk-SNARK(零知识证明)的技术,先声明一下,V神曾说过看不懂zk-SNARK 也不要怀疑自己的智商,因为它非常难,在这边提醒各位水深请注意安全!
零知识证明
虽然区块链包含匿名性这个特点,但它并不算真正的隐匿,好在世界上的聪明人真的很多,零知识证明可以用来解决这项问题。
其实零知识证明的出现在1985年,更早于区块链,只是区块链让零知识证明发扬光大了。
首先我们来看看零知识证明想做到的事:
不透露一件事情的任何讯息为前提,证明这件事是正确的。
这整件事听起来很吊诡,你怎么可能不告诉我任何资讯,就向我证明某件事是对的我完全不问就傻傻相信了,到时候被诓怎么办
最常被举出的例子— 阿里巴巴的零知识山洞
此图为Chainlink 的零知识证明示意图
在上图中,Alice是prover、Bob是verifier,Alice要在不告诉Bob门锁密码的前提下,向Bob证明自己知道门锁密码。
证明过程是这样的:
Alice不可以直接跟Bob说密码是多少 Alice先从A或是B进去洞穴中 Bob不可以看Alice从哪进洞穴,因此不知道Alice从A还是B进去,但他可以要求Alice从A或B出来,出来的时候可以看。
如何确定Alice知道密码
如果Alice不知道门锁密码,那她通过一次测试的机率只有50% 连续通过十次的机率将不足千分之一 如果次数拉到一百次呢 其实还是有可能在不知道门锁密码的情况下通过,但机率非常非常小
零知识证明如何应用在区块链上的
在虚拟货币传输中,prover在不告诉verifier付款人、收款人、金额的前提下,向verifier证明这笔交易是没问题的。
也就是说,你不必知道我的钱从哪来、要转给谁、要转多少,反正我可以证明我真的拥有消费这笔钱的能力。
现在我们来聊聊zk-SNARK吧!
zk-SNARK 跟零知识证明的关联是什么
zk-SNARK 全名是Zero Knowledge Succinct Non-interactive Argument of Knowledge,让我们拆解一下
Zero Knowledger: 零知识。
证明过程中不透露相关情报 Succinct: 简洁的。
验证过程不会将繁琐的数据传输且验证算法是简单的 Non-interactive: 无交互的。
上举中的prover与verifier需经过多次互动才能得出结果,zk-SNARK 将改善此缺点。 Argument of Knowledge: 知识证明。
这是整个证明的主体,是我们最后想得出的内容,做了种种计算就是为了得出这个结果。
简单来说zk-SNARK 这技术就是简洁的、无交互的、你知道我是对的就好了的技术。
声明:本站所提供的资讯信息不代表任何投资暗示, 本站所发布文章仅代表个人观点,仅供参考。