首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

深入浅出零知识证明

版权声明

本文首发于微信公众号:叶先生的鱼(yxsdeyu)

请注意:转载无须获得作者授权,但请保留以上版权声明

----------------------------------------------------------

一、什么是零知识证明?

零知识证明(Zero—Knowledge Proof)并不是一个全新概念,也不是伴随着区块链的流行而诞生的新技术。零知识证明在我们以往的日常生活中随处可见,我举一个最简单的例子,张三在逛商场的时候把钱包弄丢了,李四捡到了钱包,交给了商场的管理处值班员王五,王五通过商场广播寻找失主前来认领。丢失钱包的张三听到广播后来到管理处认领钱包,那么问题来了,王五怎么确认失主就是张三呢?或者张三怎么向王五证明这个钱包就一定是自己的呢?

为了确保万无一失,王五不能向任何人泄露有关钱包的任何信息,通常,我们运用零知识证明就可以完美解决确认失主身份的问题。

第一:王五不能让张三看到钱包,更不能让他看到钱包里有什么东西;

第二:张三必须提供准确无误的信息,证明钱包就是自己的;

于是,王五问了张三几个问题——

1、钱包的颜色、大小、品牌分别是什么?

2、钱包里有什么东西?比如多少钱?什么证件?证件信息是什么?

如果张三全部答对了,则确认张三就是失主。这种信息验证的手段其实就是零知识证明。

二、零知识证明的价值

在区块链中使用零知识证明有什么好处?或者说零知识证明可以带来什么价值呢?

我们再来看一个例子。

假设A要向B证明A有打开一扇门的密码(假设是密码锁),A在证明的过程中为了保证密码不被别人窃取,要求B不能在场围观自己输入密码并打开门,那么最后B如何确认A真的有打开这扇门的密码呢?通过零知识证明,可以有很多不同的解决方案,比如,A在B在不场的情况下(绝对安全的环境下),输入门锁密码、找开房门、拿出房间里的一样东西(前提是这样东西是B认同是锁在房间内的)、锁上房门、用这样东西来给B证明自己用密码打开过房门。

通过这个例子很容易就得出一个结论——零知识证明是一种更加安全的信息验证或者身份验证机制。安全性和隐私性就是零知识证明的价值所在。

三、零知识证明的三个基本特性

1、完备性。如果证明方和验证方都是诚实的,并遵循证明过程的每一步,进行正确的计算,那么这个证明一定是成功的,验证方一定能够接受证明方。

2、合理性。没有人能够假冒证明方,使这个证明成功。

3、零知识性。证明过程执行完之后,验证方只获得了“证明方拥有这个知识”这条信息,而没有获得关于这个知识本身的任何一点信息。

四、零知识证明的典范Zcash

Zcash是一个数字货币,交易过程完全匿名是ZCash最大的亮点,这一亮点使得ZCash自提出以来便备受关注,Zcash能够完全匿名化实现交易过程正是得益于使用了零知识证明这一“神秘”武器。

那么Zcash是如何利用零知识证明的呢?

先看一下没有采用零知识证明的普通的交易是如何进行的,假设A有3个BTC,要给B转账1个BTC,那么在账本上就会记录着:A转出了两笔BTC,一笔为1BTC,转给了B;另一笔为2BTC,转给了自己。这样每一笔交易,由谁发起,是谁接收都一目了然,在一些特定的场景之下,交易者双方并不希望把自己的交易信息公布于众,显然这种交易方式是不满足这些特定需求的。

那么利用了“零知识证明”的ZCash是怎么做到的所谓匿名呢?

ZCash的代币为ZEC。同样假设A有3个ZEC,要给B转账1个ZEC。

首先,A会将自己的1个ZEC分成若干份随机投入一系列的“混合容器”中,指定接收方B的地址,同时混入的时候还有其他交易方输出的若干份ZEC。这些ZEC又被混合容器随机拆分,再从这些被拆分生成的所有的ZEC中取出合计为1ZEC的若干份,转移到B的地址中,同时在发送的时间上也可以设置一定的延迟。

其中的“混合容器”,就是一条“公有链”。经过这条公有链一系列的“混币”过程,就使得包括交易地址和具体金额在内的交易信息变得无从考证了。

当然,虽然ZCash以其匿名性使其市场热度一度很高,但其仍面临诸多障碍与“原罪”。

首先,要实现匿名性,其所需要的证明信息所花费的计算资源就非常多,带来了大量的资源浪费,也导致了其可扩展性面临巨大挑战。

另外,匿名性会带来大量的额外监管问题,一旦有不法份子利用其用户黄、赌、毒等违法领域,将会给追踪与监管带来非常大的挑战,造成一系列社会问题。

五、总结

在2017年12月3日举办的亚太以太坊技术交流会上,以太坊创始人V神发表了主题为“以太坊区块链中的隐私保护”的演讲,在演讲中,V神为在场听众介绍了四种适用于以太坊区块链的兼顾隐私性和安全性的解决方案——通道(Channels)、混合器(Mixers)、环签名(Ring Signature)及零知识证明(Zero knowledge proofs)。

其中,他特别提到,零知识证明是“最为强大”的解决方案,尽管技术实现难度最高,但在保护在以太坊网络的隐私性和安全性上,其效果最佳。

V神还认为,零知识证明能够被应用于以太坊区块链上几乎所有的场景。他透露,在以太坊未来的升级优化中,以太坊零知识证明的生成证明效率将得到大幅改善,削减到七秒。

零知识证明虽然面临着诸多的障碍和“原罪”,但仍旧无法遮挡其价值所带来的光芒,至少零知识证明给交易安全带来了一种可靠的选择,值得学习和关注。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180410G1LKLM00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券