零知识证明(三)——应用场景

1,710 阅读3分钟

一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第15天,点击查看活动详情

有帮助的话请点个赞吧~

零知识证明的几种应用场景,以及wiki上给出的几个所谓零知识证明的类型(types)。

Types

  • Proof of Knowledge:知识证明
    • 证明非公开的有意义知识;
    • 常基于DLP,将知识藏在指数中。
  • Pairing Based Cryptography:基于配对的密码学
    • 给定f(x)f(x)f(y)f(y),不给出xxyy,但仍可计算f(x×y)f(x\times y);
    • 依赖于BDHP(Bilinear Diffie-Hellman Problem)。
  • Witness Indistinguishable Proof:证人无差别证明
    • 验证方无法知悉是哪个证人产生了证明,在其看来证人之间不存在任何差异。
  • Multi-Party Computation:多方计算
    • 各方在保守自己秘密的情况下共同计算一个结果。
  • Ring Signature:环签名
    • 外人无法获悉签名密钥是哪一个,即便其获取当前范围内所有密钥,依然无法确定所使用密钥。

本部分仅对各概念进行简单叙述,具体可自行查询。这几个类型像是和ZKP有交叉的几个学科领域,不能算是属于零知识证明的下属分支,它们都在某个过程中需要满足零知识属性。

应用场景

Authentication System【认证系统】

  • 零知识证明的研究就是由认证系统激发的,可以看到认证过程就是一个变体的证明过程。
  • ZKPP(Zero-Knowledge Password Proof,零知识密码证明)
    • 一方希望使用密码向第二方证明其身份,但不希望第二方或其他任何人了解密码。
      • 比如应用程序可以在不对密码本身做任何处理的情况下验证密码,付款应用程序可以检查账户余额是否充足,而无需接触或了解任何有关具体金额的内容。
    • 是证明者和验证者之间共享密码源数据的零知识的交互式知识证明,可以看到定义较ZKP较窄。

Ethical Behavior【道德行为】

  • 零知识证明在加密协议中常用于强制执行诚实行为,使某一方Honest,同时还可保证其隐私。
    • 通常是强制用户使用零知识证明,证明其行为是根据约定正确执行的,同时不泄露隐私数据。
  • 可通过ZKP的两个性质证明(第一节中提到过):
    • 可靠性:证明在这个过程中,用户必须诚实行事才可提供有效证明;
    • 零知识性:证明过程中未曾损害用户的隐私。

Nuclear Disarmament【核裁军】

  • 零知识证明可用于未来的核裁军谈判 [2]
  • 也就是说可以在不透漏任何可能是秘密信息的内部工作原理、数据的情况下,向检测人员证明一个物体是核武器。

Machine Learning and Big Data【机器学习与大数据】

  • 可验证模型
    • 采用隐私数据训练非公开模型,生成证明给用户证明其正确性、完整性等性质。
  • 可验证数据库
    • 所有人都可存取,但过程中需做一定处理,生成相应的证明存于库中,以便后续使用者查验。
  • 可验证的隐私保护技术
    • 在将个人隐私敏感数据提交第三方时,在其中添加某些噪声并生成相应证明,证实数据真实但无法被第三方直接获取。

区块链场景应用内容较多,明天单开一篇讲述,也做一些小引申

参考

[1] Zero-knowledge proof - Wikipedia
[2] Bonneau, J; Miller, A; Clark, J; Narayanan, A (2015). "SoK: Research Perspectives and Challenges for Bitcoin and Cryptocurrencies"2015 IEEE Symposium on Security and Privacy. San Jose, California: 104–121.


欢迎指正与讨论!