一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第15天,点击查看活动详情。
| 有帮助的话请点个赞吧~ |
零知识证明的几种应用场景,以及wiki上给出的几个所谓零知识证明的类型(types)。
Types
- Proof of Knowledge:知识证明
- 证明非公开的有意义知识;
- 常基于DLP,将知识藏在指数中。
- Pairing Based Cryptography:基于配对的密码学
- 给定和,不给出、,但仍可计算;
- 依赖于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.
| 欢迎指正与讨论! |