什么是零知识证明?

zcash声称用零知识证明实现最强匿名,什么是零知识证明?
已邀请:

zeamays

赞同来自: Flora nana

零知识证明( zero-knowledge proof),指的是证明者能够在不向验证者提供任何有用的信息的情况下,使验证者相信某个论断是正确的。
在零知识证明中,一个人(或器件)可以在不泄漏任何秘密的情况下,证明他知道这个秘密,如果能够将零知识证明用于验证,将可以有效解决许多问题.
维基百科上有一个经典的例子:

零知识证明图解.jpg


更通俗地说,就是一个人要怎么让大家相信他有女朋友,但是又不告诉大家他女朋友是谁一样。

OSCAR

赞同来自: nana Flora

说白了就是个噱头吧?

Flora - 币区势Flora,到处乱跑的小喵~

赞同来自:

Zeamays对零知识证明做了比较简单的解释了,具体到ZCash,@龙少在他的《Zcash技术分析》一文中有提到零知识证明图解:


零知识证明是在不泄漏信息的情况下,生成证明,验证者通过验证证明确定是否正确。
Zcash使用了SCIPR实验室的零知识证明库libsnark,在此基础上做了修改。Zcash团队成员包含多个libsnark开发人员(不是全部)。修改如下:
1、 libsnark支持4种语言:"R1CS"、"BACS"、"USCS"、"TBCS",zcash使用了"R1CS"。
2、 libsnark支持3种椭圆曲线:"edwards"、"bn128"、"alt_bn128",zcash使用了"alt_bn128"。
3、 libsnark支持2个库:gadgetlib1、gadgetlib2,zcash使用了gadgetlib1,gadgetlib1是底层库,支持所有的R1CS预处理特征。
SCIPR实验室的libsnark:https://github.com/scipr-lab/libsnark
Zcash修改后的libsnark:https://github.com/zcash/libsnark
当zcash交易涉及到私有资金时,使用零知识证明生成证明(函数r1cs_ppzksnark_prover),保存到类JSDescription的proof中,校验交易时校验证明(函数r1cs_ppzksnark_verifier_strong_IC)。
零知识证明白皮书:https://eprint.iacr.org/2013/507.pdf

要回复问题请先登录注册