隐私一直被视为加密货币社区的宝贵功能。它是可替代性的先决条件,而可替代性对于广泛使用的货币形式而言必不可少。同样,大多数加密资产持有者不希望自己的资产和交易历史完全公开。在旨在为区块链提供隐私的各种加密技术中,zk-SNARK 和 zk-STARK 证明是两个值得注意的例子。

zk-SNARK 代表零知识简洁非交互式知识论证,而 zk-STARK 代表零知识简洁透明知识论证。zk-SNARK 证明被加密货币项目(例如 Zcash)用于基于区块链的支付系统,并作为一种安全地向服务器验证客户端身份的方式。但是,尽管 zk-SNARK 在完善和采用方面取得了重大进展,但 zk-STARK 证明现在被吹捧为该协议的新改进版本,解决了 zk-SNARK 的许多先前缺点。

阿里巴巴的洞穴寓言

1990 年,密码学家 Jean-Jacques Quisquater(以及其他合作者)发表了一篇题为“如何向孩子解释零知识协议”的论文。该论文通过阿里巴巴洞穴的寓言介绍了零知识证明的概念。自诞生以来,这个寓言已被多次改编,现在我们有了多个版本。尽管如此,底层信息本质上是相同的。

让我们想象一个环形洞穴,它只有一个入口,还有一道魔法门将两条小路分开。为了穿过魔法门,人们需要低声说出正确的秘密词。因此,假设爱丽丝(黄色)想向鲍勃(蓝色)证明她知道秘密词是什么——同时仍然保密。为此,鲍勃同意在外面等她进入洞穴,并走到两条可能路径之一的尽头。在这个例子中,她决定走路径 1。

过了一会儿,鲍勃走到入口处,大声喊出他希望爱丽丝从哪一侧出现(在本例中是路径 2)。

如果爱丽丝真的知道这个秘密,她就会可靠地从鲍勃命名的路径出现。

整个过程可能会重复几次,以确认爱丽丝不是靠运气选择了正确的路径。

阿里巴巴的洞穴寓言说明了零知识证明的概念,它是 zk-SNARK 和 zk-STARK 协议的一部分。ZK 证明可用于证明拥有某些知识,而无需透露有关该知识的任何信息。

zk-SNARKs

Zcash 是最早使用 zk-SNARKs 的项目之一。虽然 Monero 等其他隐私项目采用环签名和其他技术,但 zk-SNARKs 从根本上改变了数据共享的方式。Zcash 的隐私性源于这样一个事实:网络中的交易可以保持加密,但仍可以通过零知识证明验证为有效。因此,那些执行共识规则的人不需要知道每笔交易背后的所有数据。值得一提的是,Zcash 中的隐私功能默认情况下不处于活动状态,而是可选的,并且依赖于手动设置。

零知识证明允许一个人向另一个人证明一个陈述是真实的,而不会泄露超出该陈述有效性的任何信息。涉及的各方通常被称为证明者和验证者,他们秘密持有的陈述被称为证人。这些证明的主要目的是在双方之间尽可能少地泄露数据。换句话说,人们可以使用零知识证明来证明他们拥有某些知识,而无需透露有关知识本身的任何信息。

在 SNARK 的缩写中,“简洁”意味着这些证明的规模较小,可以快速验证。“非交互式”意味着证明者和验证者之间几乎没有交互。旧版本的零知识协议通常需要证明者和验证者来回通信,因此被视为“交互式”ZK 证明。但在“非交互式”结构中,证明者和验证者只需交换一个证明。

目前,zk-SNARK 证明依赖于证明者和验证者之间的初始可信设置,这意味着需要一组公共参数来构建零知识证明,从而实现私人交易。这些参数几乎就像游戏规则;它们被编码到协议中,是证明交易有效的必要因素之一。然而,这会产生潜在的中心化问题,因为这些参数通常由一小群人制定。

虽然初始可信设置是当今 zk-SNARK 实现的基础,但研究人员正在努力寻找其他替代方案,以减少该过程中所需的信任量。初始设置阶段对于防止伪造支出非常重要,因为如果有人能够访问生成参数的随机性,他们就可以创建对验证者来说似乎有效的虚假证明。在 Zcash 中,初始设置阶段称为参数生成仪式。

转到首字母缩略词中的“知识论证”部分。zk-SNARK 被认为是计算合理的,这意味着不诚实的证明者在没有实际知识(或证人)支持其陈述的情况下成功欺骗系统的可能性非常低。此属性称为合理性,并假设证明者的计算能力有限。

理论上,具有足够计算能力的证明者可以创建虚假证明,这就是许多人认为量子计算机对 zk-SNARKs(和区块链系统)构成威胁的原因之一。

零知识证明可以快速验证,并且通常比标准比特币交易占用的数据少得多。这为 zk-SNARK 技术用作隐私和可扩展性解决方案开辟了一条道路。

零知识证明

zk-STARKs 是由以色列理工学院教授 Eli-Ben Sasson 创建的。作为 zk-SNARK 证明的替代版本,zk-STARKs 通常被认为是该技术的更高效变体 - 可能更快、更便宜,具体取决于实现方式。但更重要的是,zk-STARKs 不需要初始可信设置(因此,“T”代表透明)。

从技术角度来说,zk-STARK 不需要初始可信设置,因为它们依赖于通过抗碰撞哈希函数实现的更精简的加密技术。这种方法还消除了 zk-SNARK 的数论假设,这些假设在计算上非常昂贵,而且理论上很容易受到量子计算机的攻击。

换句话说,zk-STARK 证明在加密假设方面呈现了更简单的结构。然而,这项新技术至少有一个主要缺点:与 zk-SNARK 相比,证明的大小更大。这种数据大小的差异可能会根据使用环境带来限制,但随着技术的进一步测试和研究,这个问题可能会得到解决。

结束语

显然,zk-SNARK 和 zk-STARK 都迎合了人们对隐私日益增长的担忧。在加密货币世界中,这些协议具有巨大的潜力,可能成为走向主流采用的开创性途径。