零知识证明是指,在不揭露特定知识的情况下,证明者(prover)可以说服验证者(verifier)他们知道该知识。换句话说,零知识的输入是秘密的,证明者不会向验证者揭露任何知识。零知识证明可以被用在隐私保护方案里。例子包括:
例子1:质询/响应比赛
在计算机安全里,质询-响应认证(challenge-response authentication)是一个协议族。在协议里,一方进行提问(“质询“),另一方给出正确的答案(”响应”)以获得授权。在
区块链里,这个“比赛”能被用于验证交易。如果某一交易是非法的,其他节点会注意到其非法性。这就需要提供可验证的证明(verifiable proof),来证实交易是非法的。如果验证失败,则会产生一个“质询”,要求交易的发起人生成一个“响应”,来证明交易是合法的。
这里有一个例子:假设只有 Bob 可以访问某些资源(如他的车)。Alice 现在也想访问它们(如开这辆车去杂货店)。Bob 发起一个质询,假设为“52w72y“。Alice 必须用一个字符串来响应 Bob 发起的质询。使用一个只有 Bob 和 Alice 知道的算法,这是找到答案的唯一方式。此外,Bob 每次发起的质询都会不一样。知道先前正确的响应,并不能给 Alice 带来任何的优势。
质询/响应比赛已经被使用在区块链,如
以太坊里了。然而,我们需要相应的函数库和工具,来使这一类的认证方案更容易被使用。
例子2:zkSNARKs
zkSNARKs 到底是什么?让我们来逐步分解其定义:
zk=zero-knowledge(零知识)。不需要信息本身的条件下,可以证明该信息存在。
SNARK:SuccinctNon-interactiveAdaptiveARgument ofKnowledge
简洁(Succinct)表示证明简洁,可以被快速验证。
非交互(Non-interactive)表示验证者不需要和证明者进行交互。取而代之,证明者会预先公开它的证明,而验证者可以检查它的正确性。
适应性知识论证(Adaptive argument of knowledge)表示某些计算的证明。
尽管我希望有一天可以写一篇文章介绍 zkSNARKs,但这里我会跳过技术细节。zkSNARKs是一个的构建隐私保护的组件,它令人振奋且具有远大前景,但有几点需要注意
版权申明:本内容来自于互联网,属第三方汇集推荐平台。本文的版权归原作者所有,文章言论不代表链门户的观点,链门户不承担任何法律责任。如有侵权请联系QQ:3341927519进行反馈。