美文网首页山东建筑大学区块链研究程序员
区块链学堂 | 深入浅出零知识证明

区块链学堂 | 深入浅出零知识证明

作者: 叶先生的鱼 | 来源:发表于2018-04-10 15:28 被阅读205次
图片来自简书App

文 | 叶先生的鱼

本文由【区块链研习社】优质内容计划支持,更多关于区块链的深度好文,请点击【区块链研习社

一、什么是零知识证明?

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

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

相关文章

  • 区块链学堂 | 深入浅出零知识证明

    文 | 叶先生的鱼 本文由【区块链研习社】优质内容计划支持,更多关于区块链的深度好文,请点击【区块链研习社】 一、...

  • 2018-08-15

    区块链之零知识证明 鱼卷少年(原创) 今天想跟大家分享的是关于区块链的一点基础知识——零知识证明(Zero Kno...

  • 当区块链遇到零知识证明

    本文由云+社区发表 当区块链遇到零知识证明 什么是零知识证明 零知识证明的官方定义是能够在不向验证者任何有用的信息...

  • 区块链学堂——图灵完备、零知识证明

    前言 在学习区块链的过程中,常常被一些外星人词汇(专业术语)困扰,图灵完备、零知识证明就是其中之二,今天就彻底搞定...

  • 当区块链遇到零知识证明

    当区块链遇到零知识证明 什么是零知识证明 零知识证明的官方定义是能够在不向验证者任何有用的信息的情况下,使验证者相...

  • Zcash-草稿

    Zcash,也叫大零币,从zerocoin发展而来,是使用零知识证明机制的区块链系统,通过完全匿名交易特性在区块链...

  • 技术科普 | Ultrain 可编程零知识证明解决方案

    一、零知识证明介绍 1.1 区块链技术在数据隐私保护方面的困境 区块链技术的特点,就是存储在区块链上的数据,对所有...

  • 超零协议(SERO)轻松入门——基于CENTOS7

    标签:零知识证明,区块链,super-ZK,区块链隐私,隐私保护 1. 机器配置 以目前Beta上链的规模,满足以...

  • 阿里巴巴四十大盗教你零知识证明

    在学习区块链知识过程中,有一个名词经常出现——零知识证明。其中我们熟知的大零币ZEC就是采用的零知识证明。 基本概...

  • 知识普及 || 区块链之零知识证明

    今天想跟大家分享的是关于区块链的一点基础知识——零知识证明(Zero Knowledge Proof),说到零知识...

网友评论

  • 猜6:其实Zcash已经不是最值得列举的例子了,昨天国内有一支叫SERO的技术团队公布了一组视频,证实所用的零知识证明技术Super-ZK已经比Zcash10月份最新发布的版本快20倍,而且SERO支持图灵完备的智能合约运行,DApp开发者可以在SERO CHAIN上发行自己的具有隐私保护的通证和票据,并进行流通。官网sero.cash

本文标题:区块链学堂 | 深入浅出零知识证明

本文链接:https://www.haomeiwen.com/subject/ahknhftx.html