美文网首页
零知识证明

零知识证明

作者: 书童阿雷 | 来源:发表于2018-10-21 16:03 被阅读25次

    本周优壹组织的学习中学习到了加密相关的知识,其中出现了零知识证明,做了一些检索以期解惑。

    如何理解零知识证明

    零知识证明的定义:零知识证明就是既能充分证明自己是某种权益的合法拥有者,又不把有关的信息泄露出去——即给外界的“知识”为“零”。

    我向你证明我会魔术,但是我不告诉你我的魔术是如何实现的,我表演了空手变大蛇,我表演了拦腰斩,然后你相信了。对于你和周围的人来说,并不了解魔术的每一个环节,即不了解魔术中的“知识”,所以被称为零知识。

    理解零知识证明中的2个干扰项:

    1. 知识:知识更准确的表达是保密信息。意思是对于需要保密的信息,我不希望外界知道一丁点儿。上面例子中的保密信息就是魔术的全过程。
    2. 零:零是针对保密信息的。无论如何要自我证明都是要透露一些信息的,一般来说原理、过程是需要保密的,结果是可以用来验证的。对原理、过程进行零透露,对于结果进行公开是零知识证明的常用方式。

    经典举例

    1、A要向B证明自己拥有某个房间的钥匙,假设该房间只能用钥匙打开锁,而其他任何方法都打不开。这时有2个方法:
    ①A把钥匙出示给B,B用这把钥匙打开该房间的锁,从而证明A拥有该房间的正确的钥匙。
    ②B确定该房间内有某一物体,A用自己拥有的钥匙打开该房间的门,然后把物体拿出来出示给B,从而证明自己确实拥有该房间的钥匙。
    后面的②方法属于零知识证明。它的好处在于,在整个证明的过程中,B始终不能看到钥匙的样子,从而避免了钥匙的泄露。

    2、有一个缺口环形的长廊,出口和入口距离非常近(在目距之内),但走廊中间某处有一道只能用钥匙打开的门,A要向B证明自己拥有该门的钥匙。采用零知识证明,则B看着A从入口进入走廊,然后又从出口走出走廊,这时B没有得到任何关于这个钥匙的信息,但是完全可以证明A拥有钥匙。

    Zcash中零知识证明的应用

    根据网络中搜索的比较简明的描述:

    1. Zcash的交易中A向B支付Zcash,类比于A向B用支票支付,“支票”上用“支票号”标记(A的支票号R1,B的支票号R2)。
    2. 支付过程中A的支票号R1被添加进了作废列表。
    3. B是否拥有了Zcash,查看B的支票号R2是不是在作废列表中,如果R2不在则代表B拥有Zcash。

    该种方式最大的好处在于:每笔交易矿工能接收到的东西只有一个发票代号,和一张新的发票,而且这两样东西都是被加密的。所以矿工并不知道转账双方是谁,也不知道转账金额是多少。

    相关文章

      网友评论

          本文标题:零知识证明

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