什么是零知识证明及其在区块链世界中的作用?
已发表: 2020-01-09在过去的几年里,我们已经习惯了大型银行和其他公司访问和使用我们的个人信息来为我们提供增强体验的方式。 随着时间的推移,我们已经给他们一个“绿色信号”,让他们使用我们敏感的细节来帮助我们以某种方式维持生命的机制。
但后来进入区块链技术,它彻底改变了一切。
区块链技术带来了透明度、不变性、去中心化和分布式账本等各种特性。 它使用户能够匿名行动并以高端安全性执行交易。
[在进一步研究之前,我们强烈建议您花时间了解区块链的基础知识。]
简单来说,区块链让用户可以控制他们的隐私和未来。
但是,区块链真的成功了吗?
总之,答案是否定的。
许多区块链网络使用公共数据库。 因此,任何拥有互联网连接的人都可以查看网络交易历史列表。 他们可以看到与交易相关的所有详细信息以及您的钱包详细信息,但他们仍然不知道用户的姓名。 相反,它们将作为公钥出现——代表区块链网络上用户的唯一代码。
这样,通过密码学技术创建的公钥在一定程度上保护了您的隐私。 但是,仍然有可能通过其他技术暴露你。
这让你的匿名封面被炸毁了; 揭穿区块链匿名和隐私的神话,让你意识到——
存储在区块链网络上的用户敏感信息只是保密的,不是匿名的。
同样,有各种由共识算法管理的区块链网络以提供高端隐私和稳定性,但在这种情况下,去中心化被视为第二优先事项。 在许多这样的情况下,双方互不信任。 [要详细了解这些共识模型,请查看此区块链共识算法指南。]
总的来说,这清楚地表明区块链并不像许多爱好者所认为的那样匿名和去中心化。 甚至会产生各种各样的问题,比如——
区块链网络真的需要匿名吗? 区块链如何为用户提供更多匿名性和更好的隐私保护?
在目前的区块链网络中,交易记录在公共分类账中并且本质上是透明的。 正因为如此,华尔街等各种知名品牌和市场都在犹豫采用零知识证明技术,因为客户和交易的机密性对他们来说是必须的。 总体而言,这是在质疑区块链 web 3.0 是否能够影响企业。
谈到第二个问题,有各种概念和方法,如混币、 Ringct和 Coin Join,使区块链中的交易变得匿名,但受到高度赞赏的是零知识证明。
我们将在本文中详细介绍。
那么,让我们从零知识证明区块链的简单定义开始。
什么是零知识证明?
零知识证明是麻省理工学院研究人员Silvio Micali 、Shafi Goldwasser 和 Charles Rackoff 在 1980 年代提出的一种加密方案。 在这种方法中,一方(证明者)可以证明特定陈述对另一方(验证者)是真实的,而无需披露任何额外信息。
零知识加密确保除了您(甚至服务提供商或区块链应用程序开发机构)之外的任何人都无法访问您的安全数据。
定义清楚后,让我们举个例子来了解ZKP是如何工作的。
示例:儿童和糖果棒
假设,两个孩子——鲍勃和爱丽丝,从一个聚会上收到了一些糖果棒。 Bob 想知道 Alice 是否有相同数量的糖果棒。 但是,与此同时,他们都没有准备好透露确切的数字。
因此,他们所做的是 Bob 在一个房间里带了四个可上锁的盒子,假设收到的糖果棒的数量是 10、20、30 和 40。他用与糖果棒数量相对应的值标记每个盒子。
然后,Bob 保留定义他口袋里收到的糖果条数量的盒子的钥匙(假设他有 30 条糖果条),并扔掉所有其他盒子的钥匙。 他离开了房间。
现在,Alice 带着 4 张小纸进入房间,在其中一张上写上“+”,而在另一张上写上“-”。 在这里,“+”表示她得到的糖果条数,而“-”表示其他所有值。
她将带有“+”号的纸片放入一个盒子(假设在一个代表 20 块糖果的盒子中),并在其余的盒子中放入“-”。 她离开了。
现在,鲍勃再次进入房间并打开钥匙在他口袋里的盒子。 然后,他检查盒子是否有一张带有“+”号或“-”号的纸。 如果它是一个“+”号,他意识到爱丽丝有相同数量的糖果棒。 而在另一种情况下,她没有。
我们知道 Alice 有 20 根糖果棒,Bob 有 30 根糖果棒,很明显,Bob 会在他拥有钥匙的可上锁盒子中找到一个“-”号。 这将使他清楚地知道他们都没有相同数量的糖果棒。
与此同时,Alice 将重新进入房间,发现 Bob 的手上有一个“-”符号,她也会知道他们有不同数量的糖果棒。
注意:通过这种方法,Bob 将了解到他们没有相同数量的糖果棒。 但是,他仍然不知道爱丽丝的糖果比他多还是少,反之亦然。
因此,零知识证明以太坊在进行交易时维护了用户敏感信息的隐私(在这种情况下,交易是在寻找他们是否拥有相同数量的糖果棒)。
虽然这个例子可以帮助你理解什么是零知识证明(ZKP),但让我们用一张图片来刷新一下这个概念——
现在,随着对零知识证明 (ZKP) 概念的解释,现在是研究是什么让每个人都更喜欢它而不是其他可用选项的最佳时机。 让我们深入了解零知识证明的优缺点:
零知识证明 (ZKP) 的好处
- 简单——零知识密码学的主要优点之一是它不涉及任何复杂的加密方法。
- 安全——它不需要任何人透露任何类型的信息。
- 交易─ 与 ZKP 相关的另一个保证好处是缩短区块链上的交易。 因此,用户不必担心信息存储,包括与不同类型资产的兼容性和身份。
虽然这些是零知识证明的优点,但这个概念也有一些缺点。 其中一些是:-
- 冗长——在零知识技术中,大约有2k 次计算,每次都需要一定的时间来处理。 这是使用零知识证明的首要问题。
- 不完美——传递给验证者/证明者的消息可能被破坏或修改。
- 有限——零知识协议要求秘密是一个数值。 在其他情况下,需要翻译。
有了这些,在我们评估何时以及如何将零知识协议引入区块链生态系统之前,让我们更深入地研究技术细节。
从零知识证明的核心特征开始。
零知识证明的性质
1. 完整性
如果该声明是真实的并且两个用户都虔诚地遵守规则,那么验证者将在没有任何外部帮助的情况下被说服。
2. 稳健性
如果该陈述为假,则验证者在任何情况下都不会被说服(即使证明者说该陈述在某些小概率下为真)。
3. 零知识
在这两种情况下,验证者都无法知道除了声明是真是假之外的任何信息。
虽然涵盖了 ZKP 的原则,但让我们来谈谈商业爱好者可以投资的不同类型的 ZKP。
零知识证明的类型
1. 交互式零知识证明
在交互式零知识证明中,证明者在数学概率机制下执行一系列动作以使验证者相信特定事实。
2.非交互式零知识证明(NIZKP)
如名称所示,非交互式零知识证明不需要交互式过程。 这意味着,证明者可以一次生成所有挑战,而验证者可以稍后做出响应。 这限制了串通的可能性。 然而,它需要额外的机器和软件来找出实验的顺序。
注意:可以从非交互式 ZKP 过渡到交互式 ZKP。
区块链系统在哪里实现零知识证明?
1. 消息传递
在消息传递中,端到端加密是必不可少的,这样除了您正在与之通信的人之外,没有人可以阅读您的私人消息。 为了确保安全,消息传递平台要求用户向服务器验证他们的身份,反之亦然。
但是,随着 ZKP 的出现,他们将能够在消息传递世界中建立端到端的信任,而不会泄露任何额外的信息。 这是区块链世界中零知识证明的主要应用之一。
2. 认证
零知识证明还可以促进以更好的安全性传输身份验证信息等敏感信息。 它可以为用户建立一个安全的渠道,在不泄露信息的情况下使用他们的信息。 这样,在最坏的情况下避免数据泄漏。
3.存储保护
零知识证明 (ZKP) 的另一个可能用例是在存储实用程序领域。
零知识证明附带一个协议,该协议不仅可以保护存储单元,还可以保护其中的信息。 不用说,访问通道也受到保护,以提供无缝和安全的体验。
4. 发送私有区块链交易
在谈论发送私有区块链交易时,将其置于第三方无法触及的范围内是非常重要的。 现在,虽然传统方法具有一定的保护性,但它们也存在一些漏洞。
这是 ZKP 发挥作用的另一个领域。 明智地集成该概念有助于使黑客几乎不可能入侵或拦截私有区块链交易。
5. 复杂的文档
由于零知识证明有可能以块的形式加密数据,它使人们能够控制某些块以向特定用户提供访问权限,同时限制其他用户的访问权限。 通过这种方式,该概念可以保护复杂的文档不被未授权的人看到。
6. 文件系统控制
另一个可以看到有效的零知识证明实现的地方是文件系统。
这一概念为文件、用户甚至登录添加了不同的安全层,这使得人们很难破解或操纵存储的数据。
7. 传输私有区块链交易
私有区块链交易所的传输是区块链中 ZKP 的各种杰出执行中的显着通知之一。 私人区块链交易在发送时应受到任何第三方的保护。
发送私有区块链交易的主要担忧暗示了常规策略中明显的不同漏洞。 ZKP 与私有区块链交易的强大集成可以使其适用于任何类型的黑客或干扰。
8. 民主化投票验证
将 ZKP 与区块链一起应用的最明显例子暗示了它们在检查选票方面的民主角色。 ZKP 可以通过在公共区块链(例如以太坊)上记录投票,为可审计投票提供可靠的答案。
随后,除了限制要求之外,投票过程不需要任何第三方确认。 ZKP 可以允许选民证明他们有资格投票,从而防止他们敏感的个人数据被泄露。 同样,选民可以要求不可变的证据来考虑他们在最终计票中的投票。
9. 敏感信息的安全
最后但同样重要的是,零知识证明还改进了区块链技术改造交易的方式。
ZKP 为每个包含敏感银行信息(例如您的信用卡详细信息和历史记录)的块添加了高端安全级别,这样银行只需在用户请求信息时操作所需的块。 其他块保持不变,因此受到保护。
例如
熟练的开发人员使用 ZoKrates(一个数字工具箱)通过 Solidity(一种用于创建基于以太坊的智能合约的面向对象的编程语言)来设计和验证 ZKP。
Aztec 正在寻求通过开发一系列以隐私为重点的智能合约,将以太坊零知识证明带入现有的以太坊网络。
因此,这些是区块链开发服务中零知识证明的一些用例。 要通过构建其中之一来让您的品牌在市场上占有一席之地,请聘请一家区块链应用程序开发公司。
如果您对它的实际实施感到困惑,请检查以下现有项目是否融合了两者。
零知识证明与区块链融合的真实例子
1. ZCash
Zcash是一个开源且无需许可的区块链平台,它提供了根据要求保持交易“透明”和“屏蔽”的功能。
在前一种情况下,交易由 t-addr 管理,就像比特币交易一样。 而在后一种情况下,使用称为zk-SNARKs的零知识证明,并且交易由 z-addr 控制。
它是 ZKP 在加密世界中的第一个加密货币用例和应用。 它是第一个部署该技术的零知识证明加密货币。
2. 荷兰国际集团
ING 是一家总部位于荷兰的银行,推出了自己的零知识区块链。 然而,他们已经修改了他们的零知识系统,使其成为零知识知识范围证明,以降低对计算能力的需求。
通过这种方式,他们准备了零知识系统,以提升区块链在金融科技中的影响力。
3、零币
该公司使用基于零知识证明的 Zerocoin 协议来增强交易过程中的安全性和匿名性。 然而,它与其他致力于此概念的项目的不同之处在于它也提供了可扩展性。
尽管各种国际参与者已经开始对将零知识证明的概念实施到区块链中表现出兴趣,但采用速度太慢了。 背后的主要原因是与将 ZKP 添加到区块链环境相关的以下一系列挑战。
将 ZKP 集成到区块链项目时可能面临的挑战
1. 缺乏标准
由于区块链技术本身处于早期采用阶段,因此没有标准、系统和同质语言可以使应用程序开发人员和业务前景与 ZKP 的概念进行交互并以有效的方式利用其潜力。
2. 可扩展性
限制在区块链环境中采用零知识证明的另一个挑战是可扩展性,前提是此类算法需要高计算能力才能在高水平上运行。
包起来
现在您已经清楚 ZKP的概念及其在区块链领域的范围(以及现实生活中的示例),我们希望您在进入去中心化世界的同时投资于该概念的更广泛应用。
但是,如果您仍有任何疑问,请联系我们的区块链顾问或我们的美国区块链应用程序开发服务专家。