为了方便大家阅读,可预览目录
Part 1:什么是ZK-STARK?
Part 2:ZK-STARKs与ZK-SNARKs
Part 3:ZK-STARKs有什么好处?
Part 4:ZK-STARKs有哪些缺点?
Part 5:什么是递归ZK-SNARK?
Part 6:递归 ZK-SNARK 与常规 ZK-SNARK 有何不同?
在之前的零知识证明系列文章中,我们详细介绍了ZK-SNARKs技术及其使用优缺点,本期内容我们将继续介绍另外两种零知识证明类型ZK-STARK和递归ZK-SNARK?
什么是 ZK-STARK?
ZK-STARK 是 Zero-Knowledge Scalable Transparent Argument of Knowledge 的缩写。就像 ZK-SNARKs 一样,ZK-STARKs 表示一个声明是有效的,而不透露任何关于声明本身的信息。
除了一些差异外,STARK 与 SNARK 具有相同的属性。关于SNARK的文章可参考往期(超链接)。基于 STARK 的有效性证明是使用一条对验证者隐藏的信息生成的。STARK 还可以在不泄露输入的情况下验证交易的正确性。
ZK-STARKs 与 ZK-SNARKs
ZK-STARKs 的主要区别在于它们的可扩展性和透明性:
ZK-STARK 被认为是透明的,因为它可以在没有公共参考字符串 (CRS:Common Reference String ) 的可信设置的情况下工作。相反,STARK 协议使用可公开验证的随机性来建立证明者和验证者之间的交互。
ZK-STARK 是可扩展的,因为证明和验证复杂性规模与计算复杂性呈拟线性关系。使用 ZK-SNARKs,证明和验证的复杂性规模与底层计算呈线性关系。
这仅仅意味着当我们需要验证的计算量更大时,ZK-SNARK 协议需要比 ZK-STARKs 更多的时间来生成和验证证明。这就是为什么 STARKs 更适合处理大量交易的应用程序。
ZK-STARKs 有什么好处?
使用 ZK-STARKs 有四个主要好处:不需要可信设置,它们是可扩展的,它们为用户提供最大的吞吐量,并且它们有高安全性保证。
1. 无需可信设置
ZK-STARK 不需要可信设置即可运行,而是依赖于公共随机性。这减少了用户的信任假设并提高了基于 STARK 的协议的安全性。
2.可扩展的属性
与 SNARK 相比,STARK 的计算和验证速度更快。更重要的是,即使底层计算的复杂性呈指数级增长,ZK-STARKs 的证明和验证时间仍然很短。
3.最大吞吐量
与 SNARKs 一样,STARKs 可以通过启用安全且可验证的链下计算来扩展区块链。 提交到 L1 链的单个 STARK 证明可以验证在主链外进行的数千笔交易。因此,几个备受瞩目的 ZK rollup 项目使用 ZK-SNARKs 来证明链下计算的完整性。
4.更高的安全保障
ZK-STARKs 使用抗碰撞哈希(collision-resistant hashes)进行加密,而不是 ZK-SNARKs 中使用的椭圆曲线方案(elliptic curve schemes )。这被认为可以抵抗量子计算攻击,使其比 SNARK 中使用的椭圆曲线更安全。
ZK-STARK 的缺点是什么?
使用 ZK-STARKs 的两个主要缺点是它们使用更大的证明大小,并且在区块链空间中采用该技术的较少。
1. 更大的证明尺寸
虽然 STARKs 提供了更快的证明,但缺点是这些证明与基于 SNARK 的证明相比更大。这使得 STARK 证明在以太坊上的验证成本更高,因为计算更大的证明会产生更高的 gas 费用。
2.采用率较低
SNARKs 是零知识技术在区块链中的第一个实际应用,这就是为什么它们比 STARKs 拥有更多的市场份额。大多数 ZK rollups 使用 ZK-SNARKs,基于 SNARK 的 ZK 证明的开发者生态系统和工具更大。
尽管 ZK-STARKs 也有知名的支持者,包括以太坊基金会,但他们的采用率较低。因此,开发人员可能会发现使用 STARKs 构建 ZK 项目的支持和工具较少。
哪些项目使用 ZK-STARKs?
StarkNet
作为以太坊上的 L2 网络运行的通用 ZK rollup。StarkNet 允许去中心化应用程序 (dApps) 实现无限的可扩展性,而不会损害以太坊的去中心化和安全性。
dYdX
基于以太坊的 ZK rollup 项目(兼作去中心化交易所)为加密货币用户和交易者提供快速且低成本的交易、借贷。dYdX 使用 STARK 证明作为其安全机制的一部分,保证用户的资金安全。
Polygon Miden
具有 EVM 兼容性的基于 STARK 的 ZK rollup。虽然仍在生产中,但 Polygon Miden 将成为第一个与 EVM 兼容的 ZK-STARK 协议,并允许开发人员迁移以太坊原生 dApp 以享受 L2 网络上的可扩展性。
什么是递归 ZK-SNARK?
递归 SNARK (Recursive SNARK)系统为不同的交易区块并行生成证明,并将它们聚合成一个提交到主区块链的单个区块证明,这意味着一个 SNARK 可以验证其他 SNARK。
L2 汇总仍然在以太坊上提交一份有效性证明。然而,这种“递归证明”会验证多个 L2 区块中的交易,一旦链上合约接受提交的证明,所有交易都会生效。
递归 ZK-SNARKs 解决了什么问题?
递归ZK- snarks通过将多个L2证明包含在提交给L1链的单个证明中,极大地增加了可以用ZK证明完成的交易数量,这目前受到以太坊12-14秒出块时间的限制。
区块时间是指在以太坊上挖掘一个新的交易区块需要多长时间。ZK rollups 每个区块只能提交一笔链上交易(以及相应的有效性证明),限制了它们可以处理的交易数量。
递归 ZK-SNARK 与常规 ZK-SNARK 有何不同?
递归 ZK-SNARK 不同于普通的 ZK-SNARK,因为递归 ZK-SNARK 可以通过将为不同 L2 块生成的 SNARK 组合成一个提交给 L1 链的有效性证明来验证多个交易块。
ZK rollups 在发布到主区块链之前为每批交易创建一个 SNARK 证明,并且单个 SNARK 证明只能验证在 L2 rollup 上进行的一个交易块。
ZK-SNARKs 可以在不使用原始输入的情况下验证已被常规 ZK-SNARKs 验证过的交易。因此,链上智能合约可以验证更大的链下计算集,而无需运行多个 SNARK 作为输入。
零知识证明已经从隐私保护技术发展成为下一个扩展技术的前沿。随着ZK rollup的爆发,可以肯定地说,ZK-SNARKs, ZK- stark和递归SNARKs将在扩展以太坊的驱动中发挥重要作用。
原文指路