随着个人信息不断被监控,被侵犯的隐私现在需要一个新的技术时代。权力下放制度所确定的区块链正在发生变化,但这还不够。现在,一种叫做“零知识证明”的新技术已经投放市场。
你们很多人一定听说过“零知识证明”的例子,但可能不知道背后的真正含义。零知识加密是一种新的提高安全性的协议。但是这有多好呢?这是我们正在寻找的解决方案吗?
零知识协议是如何工作的?
知识零证明是一种加密协议,它允许一方(证明者)向另一方(验证者)确认陈述的真实性,而不泄露关于该方的任何其他信息(证明者了解到的内容和来源)。
这个定义是由麻省理工学院的研究人员沙菲戈德瓦瑟、希尔维奥米卡利和查尔斯拉科夫在科学文章《交互式证明系统的知识复杂性》(1985)中首次提出的。
知识的零证明有三个主要属性:
正直。如果证明者知道这个陈述,那么他可以说服验证者。正确性。如果证明者不知道语句,只能小概率欺骗验证者。零知识。即使验证者不诚实,他也不会从证明者知道陈述的事实中知道任何其他信息。证据是交互协议的形式。这意味着乙方向证明者提出一系列问题,如果证明者知道秘密,他将正确回答所有问题。如果甲方秘密未知,但他想说服对方测试者,他有一定概率(比如50%)答对问题。
然而,在一定数量的问题(10-20)之后,审查员很可能确定证明者不知道这个秘密。在这种情况下,所有的答案都不会给出任何关于秘密本身的信息。
现在我们来看一个例子。
想象一下,你和一个被蒙住眼睛的人共处一室。你面前的桌子上有两个球:白色的和黑色的。你需要在不透露颜色的情况下,向第二个人(验证者)证明这些球确实是不同颜色的。
你应该让他把两个球都藏在桌子底下。之后,要求只展示一个,这样你就能看到了。然后,球再次被隐藏,验证者下次可以再次显示白色或黑色。但是,你可以证明这个说法,因为你可以确定他是否在桌子底下改变了它们。
但是,验证者不会完全确定真相,因为运气或作弊可能已经发生。这个问题可以通过重复n次实验来解决。每一轮,意外结果正确的概率会减半:重复5次后,作弊概率为1/32,10轮后——1/1024,20轮后,作弊概率约为1/100万。
通过重复证据,可以达到所需的证据可靠性水平,但不能达到绝对确定性。
零知识协议有两种类型:
交互式(验证者实时独立询问证明者);非交互式(不需要验证者和证明者之间的直接通信;验证者可以在事实之后验证陈述的真实性)。知识的零证明也可以根据是否有几个验证者来判定断言的真实性分为两组——所谓使用布尔函数的可信设置。
对于一些协议,比如zk-SNARKs(简明非交互式零知识证明),这是一个先决条件。验证器生成一个特殊的秘密,该秘密在可信安装后立即被销毁。如果秘密继续存在,网络上的数据就可以被伪造,从而平衡使用这种协议的好处。
一些协议不要求可信安装(例如zk-STARK)。
零知识证明用例
零知识证明在加密货币中的一个明显用途是,它可以检查用户交易的资金可用性,而无需向网络参与者披露用户的身份及其账户中有多少钱。
该协议也可用于需要确保数据(例如个人信息)或金融交易安全的领域。
零知识证明可以成为验证数据和用户、提供特权访问和建立可信连接的工具。
知识零证明的例子
初创公司QEDIT开发了SDK(软件开发工具包),可以让你在现有的区块链中实现零知识证明,以增加交易的私密性,同时保留通过节点进行交易验证的可能性。该项目已获得欧盟委员会认证,合作伙伴包括VMWare、蚂蚁金服和德勤。
StarkWare创建了一个基于zk-STARKs协议的解决方案,也可以在现有网络上实现。该项目吸引了来自维塔利科布特林、潘迪拉资本、英特尔资本、红杉资本和其他投资者的资金。
荷兰银行ING发布了ZKP-ZKRP的修改版本。协议可以证明客户的工资在获得房贷所必须的范围内,而不透露客户自己的具体数额。
Zcash中的零知识证明
大多数区块链平台提供两个对等网络用户之间的交易。当涉及到交易时,零硬币可以提供完整的隐私。这是一个开放的、未经许可的区块链平台,它使用了零知识证明的精髓。交易过程被阻止。它将在区块链中找到值、发送方和接收方。zk-SNARKS的实现也是众所周知的,从现在开始会有很多人走这条路。