在会操作性的上一篇文章中,我们探讨了共识证明这种新兴的信任最小化方式在促进区块链之间桥接方面的作用。
在本文中,我们将探讨存储证明,它采用信任最小化验证概念,并将其扩展到较旧的历史区块中的交易。以这种方式验证过往的交易和用户活动的能力可解锁大量的跨链用例。
在上篇文章中,我们介绍了共识证明——一种跨区块链桥接资金的信任最小化方法。由于桥接用户通常希望看到交易在最新时刻立即发生,因此共识证明非常有用,因为他们在区块链运作时会不断检查区块链的最新状态。
这种信任最小化桥接的概念也可应用于另一个方向,即追溯到过去并使用零知识证明来验证旧区块中的交易和数据。这些“历史存储证明”支持不同范围的跨链用例,在本文中我们将介绍这些用例、它们如何工作以及在这个领域构建的参与者。
检索历史数据
历史区块链数据有多种用途。它能用于证明资产所有权、用户行为和交易历史记录,然后将这些输入到链上智能合约或应用程序中。截至撰写本文时,已有超过1800万个区块写入以太坊。智能合约只能访问最新的256个区块(或最近30分钟内的数据),因此“历史数据”指的是最后256个区块之外的任何数据。
如今,为了访问历史数据,协议通常会查询存档节点提供商,即 Infura、Alchemy 或其他索引器等第三方。这意味着信任并依赖他们及其数据。
This data can, however, be retrieved in a more trust-minimized fashion, through the use of Storage Proofs.
然而,可通过使用存储证明以更加信任最小化的方式来检索这些数据。
存储证明是零知识证明,允许验证存储在区块链上的历史数据。更具体地说,存储证明可用于证明过去特定区块中存在特定状态。此方法不需要对第三方或预言机的信任;相反,其信任内置于存储证明中。
存储证明如何帮助验证某些数据是否存在于较旧的历史区块中呢?这需要验证两件事:
在接收并验证证明之后,接收者(例如目标链上的智能合约)相信数据的有效性,并且可执行相应的指令集。这个概念可进一步扩展:可以使用经过验证的数据运行额外的链外计算,然后生成另一个零知识证明,以证明数据和计算。
简而言之,存储证明支持以信任最小化的方式检索历史链上数据。这很重要,因为正如我们在第一篇文章中概述的那样,我们看到 web3 在未来几年已变得为更加多链和多层的空间。多个 第1层协议、Rollup 和应用链的出现意味着用户的链上活动可能会分散到多个链上。这更加强调了对信任最小化互操作性解决方案的需求,该解决方案可维护跨多个域的用户资产、身份和交易历史记录的可组合性。这是存储证明能帮助解决的问题。
存储证明允许智能合约检查任何历史交易或数据作为先决条件。这让跨链应用程序设计变得更加灵活。
首先,存储证明可证明源区块链上的任何历史数据,例如
然后,可将证明发送到目标链,以解锁跨链用例的范围:
本质上,存储证明允许应用程序跨多个链查询和移植用户的链上活动和历史记录,以输入到另一个链上的智能合约或应用程序中。
存储证明用例
让我们通过一个详细的例子来了解存储证明是如何运作的。
假设“X”,它是以太坊上带有代币的 DeFi 协议。一项治理提案即将提出,他们希望推动在成本较低的目标链上进行链上投票。用户只有在特定时间点(我们称之为“快照”)在以太坊上持有 X 代币时才能投票,例如区块 #17,000,000
目前的方法是,查询存档节点以获取区块 #17,000,000 处合格代币持有者的完整清单。然后,DAO 管理员将该清单存储在目标链上的智能合约中,以确定谁可以投票。这种方法有一些局限性:
正如我们在第2篇文章中所解释的那样,高昂成本的计算可转移由链下零知识证明者进行。
zk 证明者将生成一个简洁的证明,并将其发送到目标链进行验证。对于以上 DAO 选民资格示例如下:
验证历史数据以启用跨链投票
然后,该证明被发送到目标链上的智能合约进行验证。如果验证成功,那么第2层协议上的智能合约允许用户投票。
这种方法解决了一些问题。它无需:
信任存档节点提供商;
存储证明需要什么设置?
到目前为止,我们已抽象出了存储证明的一些复杂性。然而,使用它们还需要服务提供商进行精心的初始设置,以确保可在不信任提供商的情况下使用它们。在此过程中,有两件事会生成并存储在链上:
“zk承诺”对以太坊整个历史的阐释
Merkel Mountain Range (MMR)插图
当新区块添加到源链时,服务提供商会定期(例如每小时或每天)更新“zk 承诺”和 MMR,以跟上链的步伐。这样做是为了使过去的区块始终链接到当前可从 EVM 访问的256个区块之一。这确保历史数据链接到以太坊当前可用的区块之一。
在下图中,我们详细介绍了如何完成设置:
综上所述,以下展示了在我们之前介绍的 DAO 投票示例的上下文中、在设置完成后如何使用存储证明:
提供商会检查两件事:
一些参与者正在构建使智能合约能够以信任最小化的方式访问历史链上数据。
目前,Axiom已在以太坊上运行,致力于在以太坊上提供智能合约,并通过基于 zk 的存储证明访问历史以太坊数据。团队还在增强基于历史数据的链下计算能力,并使用零知识来证明这些数据和计算的正确性。
Relic Protocol 提供的技术方法与 Axiom 类似,并且该协议在以太坊和 zkSync Era 上运行。 Relic 使用 Merkle 包含证明来证明数据包含(与 Axiom 在零知识中证明 Merkle 包含的方法相反)。
Herodotus 正在努力为第2层协议提供以太坊的历史数据。测试实现现已在 Starknet 和 zkSync Era 上提供。有了 OP 基金会的资助,我们认为,我们知晓了Herodotus团队下一步的发展方向。
Lagrange Labs实验室通过其最近的 ZK MapReduce (ZKMR) 创新引入了完全可更新的证明。它使用一种称为 Recproofs 的新向量承诺,将可更新性的概念扩展到数据计算中。
从事存储证明工作的团队
在本文中,我们介绍了存储证明如何支持验证历史链上数据,而无需信任第三方。这使它们成为链上组合和跨链互操作性的宝贵工具。
随着总锁定价值(TVL)继续从以太坊迁移到第2层生态系统,我们预计更具表现力的应用程序将会出现,这些应用程序通过存储证明利用历史链上数据。
虽然零知识技术正变得更快、更便宜,但不断生成存储证明以跟上链状态多带来的成本仍是一个挑战。此类服务的盈利能力将取决于查询应用程序生成的查询量。
尽管有挑战,但由零知识技术支持的共识证明和存储证明所具有的重要性怎么强调也不为过。我们期待见证这些技术将如何用于构建信任最小化的多链未来。
Partilhar
在会操作性的上一篇文章中,我们探讨了共识证明这种新兴的信任最小化方式在促进区块链之间桥接方面的作用。
在本文中,我们将探讨存储证明,它采用信任最小化验证概念,并将其扩展到较旧的历史区块中的交易。以这种方式验证过往的交易和用户活动的能力可解锁大量的跨链用例。
在上篇文章中,我们介绍了共识证明——一种跨区块链桥接资金的信任最小化方法。由于桥接用户通常希望看到交易在最新时刻立即发生,因此共识证明非常有用,因为他们在区块链运作时会不断检查区块链的最新状态。
这种信任最小化桥接的概念也可应用于另一个方向,即追溯到过去并使用零知识证明来验证旧区块中的交易和数据。这些“历史存储证明”支持不同范围的跨链用例,在本文中我们将介绍这些用例、它们如何工作以及在这个领域构建的参与者。
检索历史数据
历史区块链数据有多种用途。它能用于证明资产所有权、用户行为和交易历史记录,然后将这些输入到链上智能合约或应用程序中。截至撰写本文时,已有超过1800万个区块写入以太坊。智能合约只能访问最新的256个区块(或最近30分钟内的数据),因此“历史数据”指的是最后256个区块之外的任何数据。
如今,为了访问历史数据,协议通常会查询存档节点提供商,即 Infura、Alchemy 或其他索引器等第三方。这意味着信任并依赖他们及其数据。
This data can, however, be retrieved in a more trust-minimized fashion, through the use of Storage Proofs.
然而,可通过使用存储证明以更加信任最小化的方式来检索这些数据。
存储证明是零知识证明,允许验证存储在区块链上的历史数据。更具体地说,存储证明可用于证明过去特定区块中存在特定状态。此方法不需要对第三方或预言机的信任;相反,其信任内置于存储证明中。
存储证明如何帮助验证某些数据是否存在于较旧的历史区块中呢?这需要验证两件事:
在接收并验证证明之后,接收者(例如目标链上的智能合约)相信数据的有效性,并且可执行相应的指令集。这个概念可进一步扩展:可以使用经过验证的数据运行额外的链外计算,然后生成另一个零知识证明,以证明数据和计算。
简而言之,存储证明支持以信任最小化的方式检索历史链上数据。这很重要,因为正如我们在第一篇文章中概述的那样,我们看到 web3 在未来几年已变得为更加多链和多层的空间。多个 第1层协议、Rollup 和应用链的出现意味着用户的链上活动可能会分散到多个链上。这更加强调了对信任最小化互操作性解决方案的需求,该解决方案可维护跨多个域的用户资产、身份和交易历史记录的可组合性。这是存储证明能帮助解决的问题。
存储证明允许智能合约检查任何历史交易或数据作为先决条件。这让跨链应用程序设计变得更加灵活。
首先,存储证明可证明源区块链上的任何历史数据,例如
然后,可将证明发送到目标链,以解锁跨链用例的范围:
本质上,存储证明允许应用程序跨多个链查询和移植用户的链上活动和历史记录,以输入到另一个链上的智能合约或应用程序中。
存储证明用例
让我们通过一个详细的例子来了解存储证明是如何运作的。
假设“X”,它是以太坊上带有代币的 DeFi 协议。一项治理提案即将提出,他们希望推动在成本较低的目标链上进行链上投票。用户只有在特定时间点(我们称之为“快照”)在以太坊上持有 X 代币时才能投票,例如区块 #17,000,000
目前的方法是,查询存档节点以获取区块 #17,000,000 处合格代币持有者的完整清单。然后,DAO 管理员将该清单存储在目标链上的智能合约中,以确定谁可以投票。这种方法有一些局限性:
正如我们在第2篇文章中所解释的那样,高昂成本的计算可转移由链下零知识证明者进行。
zk 证明者将生成一个简洁的证明,并将其发送到目标链进行验证。对于以上 DAO 选民资格示例如下:
验证历史数据以启用跨链投票
然后,该证明被发送到目标链上的智能合约进行验证。如果验证成功,那么第2层协议上的智能合约允许用户投票。
这种方法解决了一些问题。它无需:
信任存档节点提供商;
存储证明需要什么设置?
到目前为止,我们已抽象出了存储证明的一些复杂性。然而,使用它们还需要服务提供商进行精心的初始设置,以确保可在不信任提供商的情况下使用它们。在此过程中,有两件事会生成并存储在链上:
“zk承诺”对以太坊整个历史的阐释
Merkel Mountain Range (MMR)插图
当新区块添加到源链时,服务提供商会定期(例如每小时或每天)更新“zk 承诺”和 MMR,以跟上链的步伐。这样做是为了使过去的区块始终链接到当前可从 EVM 访问的256个区块之一。这确保历史数据链接到以太坊当前可用的区块之一。
在下图中,我们详细介绍了如何完成设置:
综上所述,以下展示了在我们之前介绍的 DAO 投票示例的上下文中、在设置完成后如何使用存储证明:
提供商会检查两件事:
一些参与者正在构建使智能合约能够以信任最小化的方式访问历史链上数据。
目前,Axiom已在以太坊上运行,致力于在以太坊上提供智能合约,并通过基于 zk 的存储证明访问历史以太坊数据。团队还在增强基于历史数据的链下计算能力,并使用零知识来证明这些数据和计算的正确性。
Relic Protocol 提供的技术方法与 Axiom 类似,并且该协议在以太坊和 zkSync Era 上运行。 Relic 使用 Merkle 包含证明来证明数据包含(与 Axiom 在零知识中证明 Merkle 包含的方法相反)。
Herodotus 正在努力为第2层协议提供以太坊的历史数据。测试实现现已在 Starknet 和 zkSync Era 上提供。有了 OP 基金会的资助,我们认为,我们知晓了Herodotus团队下一步的发展方向。
Lagrange Labs实验室通过其最近的 ZK MapReduce (ZKMR) 创新引入了完全可更新的证明。它使用一种称为 Recproofs 的新向量承诺,将可更新性的概念扩展到数据计算中。
从事存储证明工作的团队
在本文中,我们介绍了存储证明如何支持验证历史链上数据,而无需信任第三方。这使它们成为链上组合和跨链互操作性的宝贵工具。
随着总锁定价值(TVL)继续从以太坊迁移到第2层生态系统,我们预计更具表现力的应用程序将会出现,这些应用程序通过存储证明利用历史链上数据。
虽然零知识技术正变得更快、更便宜,但不断生成存储证明以跟上链状态多带来的成本仍是一个挑战。此类服务的盈利能力将取决于查询应用程序生成的查询量。
尽管有挑战,但由零知识技术支持的共识证明和存储证明所具有的重要性怎么强调也不为过。我们期待见证这些技术将如何用于构建信任最小化的多链未来。