本文介绍了存储证明的概念及其在区块链中的应用,特别是在增强或替代预言机方面的潜力。存储证明允许跨链验证特定状态的存在和有效性,无需信任第三方。文章探讨了存储证明的用例,包括跨链信息访问、简化的跨链投票系统、替代跨链桥以及增强账户抽象的用户体验,并讨论了存储证明如何与预言机进行对比,以及如何在某些情况下替代或增强预言机的功能,最后探讨了在Starknet上使用存储证明增强预言机的可行性。
存储证明是一种跟踪区块链信息,以便在链之间共享的密码学方法。与预言机类似,存储证明提供了信息真实的证明。然而,与预言机不同,它们不需要对第三方信任来获得此证明;相反,对于存储证明,信任是构建在存储中的。
在某些情况下,存储证明可以取代预言机。在其他情况下,存储证明可以增强它们,并开启以前不可能实现的新的区块链用例。
因此,让我们详细了解存储证明——它们是什么,它们如何工作,它们的用例,以及它们如何增强(有时取代)预言机。
存储证明允许你打开状态的加密承诺,可以通过将它们与S[N/T]ARKS结合使用来优化它们。这些有效性证明证明了特定的状态存在,并且在过去的特定区块中是有效的。
从根本上讲,区块链是包含使用 Merkle 树,Merkle Patricia 树,Verkle 树等加密提交的数据的数据库。由于所有数据都已提交,我们可以证明某些信息被封装在给定的状态中。但是,使用简单的承诺方案,随着它包含的数据的大小变大,此证明的大小也变得更加突出。在链上验证此类证明变得过于昂贵而不切实际。
另一方面,存储证明在与 STARK 或 SNARK 结合使用时,可以相对较小,并且允许你验证特定时间点的特定状态,并在任何领域——无需信任第三方。它们不依赖于第三方,而是依赖于底层链本身的安全性。
为什么这很重要?今天的以太坊不再是几年前的简单的单片链(L1)。随着 L2 解决方案的出现,数据现在分布在多个链上。
关于链状态的同步假设不再成立。现在有许多共享数据的解决方案已经上线,例如 L1->L2 消息传递系统、跨链桥和预言机。但是这些当前解决方案的问题在于它们包括对第三方的信任,例如中继器、多重签名者和委员会。存储证明允许我们使用密码学承诺验证区块链在任何时间点的状态,而无需信任第三方。
由于存储证明允许我们有效地“压缩”区块链并将数据传输到其他地方,因此它们具有很多应用。经济实惠的验证成本是存储证明不可或缺的属性,它允许在目标链上验证证明,从而最大限度地减少了开发跨链消息传递系统的需求。
潜在的用例包括:
在与 EVM 兼容的链上生成存储证明非常简单。例如,Web3.js 库具有“getProof”函数,该函数可以生成以太坊(以及其他与 EVM 兼容的链(例如 Polygon 或 BSC))上合约状态的证明。必须将合约地址和合约的存储插槽传递给该函数。
在以太坊中,智能合约使用键值存储将数据存储在其存储中。每条数据都存储在称为“存储插槽”的特定位置。存储插槽是合约存储中的内存位置,并通过唯一索引进行标识。让我们看一个示例智能合约,该合约具有以下代码,该代码已部署在以太坊主网上的 0xcc...da8b。
“owner”变量将存储在插槽 0 中。现在,要生成此合约的“所有者”是地址 A 的证明,我们可以使用“getProof”函数,如下所示:
上面代码的输出如下所示:
返回的“storageProof”包含“owner”变量的存储证明。由于以太坊使用 Merkle Patricia 树来提交其状态,帐户及其存储的状态,因此生成的存储可用于证明存储插槽(或帐户状态)。但是,如前所述,这些证明的扩展性不足以讨论跨链消息传输。在此基础上使用复杂的 ZK 数学可以减少验证证明所需的计算量。
从设计上讲,区块链无法检索链下数据。这使区块链变得无需信任,但也限制了智能合约根据真实世界事件做出决策的能力。预言机通常也用于获取历史区块链信息,因为直接获取此数据极具挑战性,因此容易出错。
为了解决这个问题,创建了名为预言机的特殊实体来检索此链下数据(或从某些繁重的链下计算中检索结果)。目前,这些预言机需要第三方,例如机构或节点运营者的去中心化网络,才能在链上提交数据,从而向用户和智能合约公开。这种信任假设目前是不可避免的,但并不理想(尽管一些团队正在努力最大限度地减少这种信任要求,例如 Pragma)
Chainlink 是区块链预言机的一个例子,它提供各种各样的真实世界数据(股票价格、天气数据等)、链下计算服务,以最大限度地减少链上繁重计算的成本,以及在不同区块链之间读取和写入信息的跨链服务。
由于智能合约除了使用预言机外,没有其他方法知道真实世界中正在发生的事情,因此预言机已成为区块链生态系统中不可或缺的一部分。
在Starknet 测试网上,前面提到的 Chainlink 当前为七对加密货币提供价格数据馈送,并且已与 Starkware 团队 合作 以“进一步加速 StarkNet 生态系统的应用程序开发和整体增长”。Chainlink 通过提供来自链下数据源的去中心化节点网络最大限度地减少了信任假设,但数据聚合发生在链下。
Pragma 和 Stork Network 是 Starknet 上最大的两个预言机提供商,在主网和测试网上运营。除了多个加密货币对的价格代码之外,Pragma 还在主网上实施可验证的随机性馈送,这将允许协议在链上请求安全随机性。Pragma 上的价格馈送基于大型机构和做市商的价格提交,并且价格聚合发生在链上,利用高效的 ZK 技术。
在某些情况下,是的,存储证明可以取代预言机。
并非预言机提供的所有数据实际上都需要由第三方提供。在某些情况下,预言机提供的数据已经可以在链上获得(以链上存储或交易的形式),并且可以通过查看区块链的先前状态来检索。在这些情况下,存储证明可以取代对第三方和预言机的信任需求,并允许智能合约完全依赖于加密承诺的安全性。
在其他情况下,如果存储证明不能完全取代预言机,它们通常仍然可以通过以下附加功能增强它们:
在过去的几个月中,L2 在以太坊上日益普及,让我们对该行业的未来有了更清晰的认识。L2 叙事已获得了 Starknet、Optimism 和 Arbitrum 等网络的关注。但是,其增长的主要后盾之一是实施去中心化的跨链消息传递系统。尽管它们仍处于起步阶段,但存储证明有望对这个问题进行难以置信的改进。
非常感谢 Marcello Bardus 和 Kacper Koziol 审阅本文。
- 原文链接: starkware.medium.com/wha...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!