声明:本文旨在传递更多市场信息,不构成任何投资建议。文章仅代表作者观点,不代表火星财经官方立场。
边肖:记得要集中注意力。
来源:看链来源
第一部分零知识证明
顾名思义,零知识证明是指在你能充分证明自己是某项权益的合法所有人,且不泄露相关信息的情况下,对外界给予的“了解”是“零”。
目前以匿名著称的数字资产Zcash的匿名交易是通过“零知识证明”实现的。
第2部分说明了
比如,A要向B证明自己拥有一个房间的钥匙,假设这个房间只能用钥匙开锁,其他任何方法都不能开锁。有两种方法:
方法一:A把钥匙给B看,B用这把钥匙打开房间,从而证明A有正确的房间钥匙。
方法二:B确定房间里有物体。甲用自己的钥匙打开房间的门,然后拿出物件给乙看,从而证明自己确实拥有房间的钥匙。
第二种方法的原理是零知识证明。
证据示例:
知识零证明可以在不泄露内容本身的情况下证明我知道这个秘密,可以有效解决很多验证问题。
验证进程信息没有泄漏。
第三部分零知识证明的特征
完整性完整性:如果证明者和验证者都是诚实的,遵循证明过程的每一步并进行正确的计算,那么这个证明必须是成功的,验证者必须能够接受证明者。
可靠性:没有人能够伪造证明者来使这个证明成功。
零知识(Zero-knowledge):验证过程完成后,验证者只得到“证明者拥有该知识”的信息,而没有得到任何关于该知识本身的信息。
第四部分零知识证明的优势
使用零知识证明,安全性不会降低,因为证明具有零知识性质。
效率高,过程计算量小,双方交换的信息量小。
安全性依赖于未解决的数学问题,如离散对数、大整数因式分解、平方根等。
很多零知识证明相关技术避免直接使用政府限制的加密算法,给相关产品出口带来优势。
零知识证明在区块链中的应用
比特币和以太坊网络都使用公共地址,而不是验证者和证明者的真实身份,使得交易部分匿名;公众只知道收发地址和交易次数。但是通过区块链上提供的各种信息,比如交互记录,可以查到地址的真实身份,存在隐私暴露的隐患。
零知识证明后,发送方、接收方和第三方的详细信息可以保持匿名,同时保证交易的有效性。
最早使用零知识证明技术的区块链叫做Zcash,实际的做法叫做Zk-Snarks,这是众多零知识证明做法中的一种,也是最著名的一种。
Zk-Snarks是“零知识简明交互式知识认证”的缩写,是一种在不暴露数据本身的情况下证明某些数据操作的零知识证明。
Zk-Snarks技术减少了证明所需的时间和验证它们所需的计算量。能够证明已经满足有效交易的条件,而不披露交易所涉及的地址或交易量等任何关键信息。
Zcash可以加密隐藏交易记录上的汇款人、收款人和金额,因此矿工无法知道这些交易的细节,但他们仍然可以验证交易。不过目前大部分用户还是选择在Zcash上进行不加密交易,因为成本比较高。
另外,零知识证明方法Zk-Snarks已经可以用于以太坊上的智能合约。但是以太坊不仅仅是从隐私的角度出发,从节省运营成本的角度出发,也适用零知识证明。
通过Zk-Snarks,以太坊矿工不必重新执行交易计算,只需要对方出示证书即可。大概就好像我其实不需要知道你数学会高一到高三,但是光看你的高中毕业证我就能确定你懂高中数学。但这只有在办证成本远低于实际运营成本的情况下才划算。
Zk-Snarks将需要验证的交易内容转化为两个多项式乘积相等的证明,并结合同态加密等先进技术,在进行交易验证的同时保护隐藏的交易量。该过程可以简单地描述为:
将代码分解成可验证的逻辑验证步骤,再将这些步骤分解成由加减乘除组成的计算过程。
做一系列变换,把要验证的代码转换成多项式方程,比如t(x)h(x)=w(x)v(x)。
为了使证明更加简洁,验证者事先随机选取几个检验点S,检验这些点上的方程是否为真。
通过同态编码或加密,验证者在计算方程时不知道实际的输入值,但仍然可以验证它。
在等式的左侧和右侧,乘以不等于0的秘密值k。当(t(s)h(s)k)=(w(s)v(s)k)被验证时,具体的t(s),h(s),w(s),v(s)是不可知的,信息可以得到保护。
目前Zk-Snarks算法的一个缺点是需要提前建立参数。如果这些参数被泄露,整个网络将被摧毁。所以用户在使用这些网络的时候一定要相信不会被泄露的信息。
可能的解决方案包括使用现代的“可信执行环境”,如英特尔SGX和ARM TrustZone。对于英特尔的SGX技术,即使应用程序、操作系统、BIOS或VMM受到威胁,私钥也是安全的。此外,最近的一份白皮书揭示了其在零知识密码学方面的创新:Zk-Snarkss(零知识可扩展透明知识参数)。
根据Zk-Snarks白皮书,Zk-Snarks是第一个在没有任何信任设置的情况下实现区块链验证的系统,并且随着计算数据量的增加,计算速度呈指数级增长。它不依赖于公钥加密系统,更简单的假设使它在理论上更安全,因为它唯一的加密假设是哈希函数(如SHA2)是不可预测的。测试和采用知识零证明、Zk-S(T|N)ARK等技术需要时间。