破译区块链最常见的密码学技术——零知识证明——火星科技帖

破译区块链最常见的密码学技术——零知识证明——火星科技帖

免责声明:本文旨在传递更多市场信息,不构成任何投资建议。文章仅代表作者观点,不代表火星财经官方立场。

小编:记得关注

来源:观联锁源

第1 部分零知识证明

顾名思义,零知识证明是指在不泄露相关信息的情况下,能够充分证明自己是某项权益的合法拥有者,即对外界的“知识”为“零”。

目前以匿名着称的数字资产Zcash的匿名交易依赖于“零知识证明”。

第2 部分示例

例如:如果A想向B证明他拥有某个房间钥匙,假设这个房间只能用钥匙打开,不能用其他任何方法打开。有两种方法:

方法一:A将钥匙出示给B,B用钥匙打开房间的锁,从而证明A拥有正确的房间钥匙。

方法二:B确定房间内有物品,A用自己拥有的钥匙打开房间的门,然后取出物品给B看,从而证明他确实有房间的钥匙.

方法二的原理是零知识证明。

证明例子:

零知识证明可以在不泄露内容本身的情况下证明自己知道秘密,可以有效解决很多验证问题。

验证过程信息不公开

Part 3 零知识证明的特点

完整性:如果证明者和验证者都是诚实的,遵循证明过程的每一步,并进行正确的计算,那么证明一定是成功的,并且验证者一定能够接受证明者。

可靠性:没有人可以冒充证明者使这个证明成功。

Zero-knowledge 零知识:证明过程执行后,验证者只获得“证明者拥有该知识”的信息,而不会获得任何关于该知识本身的信息。

第4 部分零知识证明的优点

通过使用零知识证明,由于证明的零知识性质,安全性不会降低。

效率,这个过程的计算量小,双方交换的信息量小。

安全性依赖于未解决的数学问题,例如离散对数、大整数分解、平方根等。

许多零知识证明相关技术避免直接使用政府限制的加密算法,为相关产品的出口带来优势

零知识证明在区块链中的应用

比特币以太坊网络都使用公共地址代替验证者和证明者的真实身份,使交易部分匿名;公众只知道发送和接收地址以及交易金额。但通过区块链上提供的各种信息,如交互记录等,可以查到地址的真实身份,存在隐私暴露的隐患。

使用零知识证明后,发送方、接收方和第三方的详细信息可以保持匿名,同时确保交易有效。

最早使用零知识证明技术的区块链称为Zcash,实际的方法称为Zk-Snarks,它是众多零知识证明方法中的一种,也是最著名的一种。

Zk-Snarks是“Zero-Knowledge Concise No-Interactive Knowledge Authentication”的缩写,是一种在不暴露数据本身的情况下证明某些数据操作的零知识证明。

Zk-Snarks 技术减少了证明所需的时间和验证它们所需的计算量。它能够证明已经满足有效交易的条件,而无需透露有关交易中涉及的地址或数量的任何关键信息。

Zcash 可以加密隐藏交易记录中的发送方、收款人和金额,因此矿工无法知道这些交易的细节,但他们仍然可以验证交易。不过目前大部分用户还是选择在Zcash上进行非加密交易,因为成本比较高。

此外,以太坊上的智能合约已经可以使用Zk-Snarks,一套零知识证明。但是,以太坊并没有完全从隐私的角度切入,而是从节省计算成本的角度应用了零知识证明。

通过Zk-Snarks,以太坊矿工不再需要重新执行交易的计算,只需要对方提供一个证明即可。大概就像我真的不需要知道你可以从高一到高三做数学,但是我可以确定你只要看到你的高中文凭就知道高中数学。然而,这只有在证明的成本远低于实际计算成本的情况下才具有成本效益。

Zk-Snarks将需要验证的交易内容转化为两个多项式乘积相等的证明,并结合同态加密等先进技术,在进行交易验证的同时保护隐藏的交易量。这个过程可以简单描述为:

代码分解为可验证的逻辑验证步骤,然后将这些步骤分解为由加、减、乘、除组成的计算流。

进行一系列变换,将待验证的代码转化为多项式方程,如t(x)h(x)=w(x)v(x)。

为了使证明更简洁,验证者预先随机选择几个检查点,检查这些点处的方程是否为真。

通过同态编码或加密,验证者在计算方程时不知道实际输入值,但仍然可以对其进行验证。

在等式左右两边分别乘以一个不等于0的秘密值k。在验证(t(s)h(s)k)=(w(s)v(s)k)时,具体的t( s), h(s), w(s), v(s) 是不可知的,信息可以被保护。

Zk-Snarks 算法当前实现的一个缺点是需要提前内置参数。如果这些参数泄露,整个网络将面临毁灭性的破坏。因此,用户必须信任

这些网络时不会泄露的信息。

可能的解决方案包括使用现代的“可信执行环境”,如 Intel SGX 和 ARM TrustZone。对于 Intel 的 SGX 技术,即使应用程序操作系统、BIOS 或 VMM 受到威胁,私钥也是安全的。此外,最近的一份白皮书揭示了它在零知识密码学中的创新:Zk-Snarkss(零知识可伸缩透明知识参数)。

根据 Zk-Snarks 白皮书,Zk-Snarks 是第一个不依赖任何信任设置实现区块链验证的系统,而随着计算数据数量的增加,计算速度呈指数增长。它不依赖于公钥加密系统,而且更简单的假设使它在理论上更安全,因为它唯一的加密假设是哈希函数 (如 SHA2) 是不可预测的。零知识证明和 Zk-S(T|N)ARK 等技术的测试和采用需要时间。

暂无评论

暂无评论...