翻译和校对:“Starknet中文社区”
Starknet上无信任的跨链信息访问
存储证明是一种用于跟踪区块链信息的加密方法,可以跨链共享。与Oracle类似,存储证明提供了信息真实性的证明。但是和Oracle的区别在于,存储证明不需要第三方证明。相反,有了存储的证明,信任就建立在存储上。
在某些情况下,存储证明可以替代Oracle。在其他情况下,存储证明可以增强Oracle,甚至开辟一些全新的区块链用例。
本文将详细讨论存储证明的定义、工作原理、使用案例以及如何增强或替代Oracle。
什么是存储证明?存储证书允许公开状态的加密承诺,也可以结合SNARK/STARK技术进行优化。有效性证明可以证明特定的状态存在,并且在特定的历史块中是有效的。
本质上,区块链是一个数据库,包含使用Merkle树、Merkle Patricia树和Verkle树以加密方式提交的数据。既然所有的数据都已经提交了,就可以证明某些信息已经封装在给定的状态中了。但是,对于一个简单的承诺方案,这个证明的规模会随着它包含的数据越来越大而变得越来越大。在链上验证这样的证明变得太昂贵和不切实际。
另一方面,当与STARK或SNARK技术结合使用时,存储的证明可以变得相对较小,并且可以在特定时间点和任何域中验证特定状态,而无需信任第三方。存储的证明不依赖于第三方,而是依赖于底层链本身的安全性。
为什么存储证明如此重要?今天的以太坊不再是一个简单的整体链条(L1)。随着L2解决方案的出现,数据现在分布在多个链上。
不再能够做出关于链状态的同步假设。许多共享数据的解决方案已经推出,如L1 → L2消息系统、跨链桥和Oracle。但这些解决方案的问题是,你需要信任第三方,如重复者、多签名者和委员会。存储证书允许使用加密承诺在任何时间点验证区块链的状态,而无需信任第三方。
存储证明的用例由于存储证明可以有效地“压缩”区块链,将数据发送到其他地方,因此有很多应用。可负担的验证成本是存储证书的一个整体属性,它可以在目的地链中验证,并最大限度地减少开发跨链信息传递系统的需要。
潜在的使用案例包括:
关于区块链的状态和交易的一般信息访问。简化的交叉链投票系统。经常有用户在慢但更安全的A链上持有资产,但一些基于令牌的投票会在交易成本更低的B链上进行。这就迫使用户要么跳过投票,要么付出巨大的交易成本,从A地穿越到B地的链条,投票后再把资产转回A地链条。在这种情况下,存储证书允许用户在给定块的A链上证明他们的令牌余额,并在B链上无缝投票。交叉链桥的替代方案。目前,跨链桥通常涉及中介,并对第三方承担一定程度的信任,如托管人或分散自治组织(Dao)。中介负责确保中介在源链上接收一定数量的令牌,并持有源链上的资产。之后,在目标链上投射相应的令牌。存储证明可以实现无信任的跨链桥接,因为目的链上的智能合约应用可以验证转移到源链的资产的跨链智能合约交易,并铸造跨链资产。但是,在大多数情况下,由于另一个链条上的资产所有权可以简单地通过入库凭证来证明,因此在链条之间转移资产的必要性可能就不复存在了。增强客户抽象(AA)用例的用户体验。帐户抽象已经在不同的链中实现,并被认为是将第一个十亿用户引入区块链的关键创新。有了存储的证明,钱包还可以增加其他功能。例如,如果钱包长时间未被转移,可以恢复访问权限。您还可以使用其他链中的数据强制进行其他检查。
存储证明示例在EVM兼容链上生成存储证明非常简单。例如,Web3.js库具有getProof函数,它可以在以太坊(以及其他EVM兼容链,如Polygon或BSC)上生成契约状态的证明。协定地址和协定存储槽必须传递给函数。
在以太坊中,智能合约使用键值存储在内存中存储数据。每一段数据都存储在一个特定的位置,称为存储槽。存储槽是约定存储中的存储位置,由唯一索引标识。我们来看看部署在以太坊主网的示例智能合约0xcc…da8b,其代码如下。
其中所有者变量存储在槽0中。现在,要生成合同所有者是地址A的证明,可以使用getProof函数,如下所示:
上面的代码输出:
返回的stotagepuff包含owener变量的stotageProof。因为以太坊使用Merkle Patricia树将账户状态及其存储提交给邰方状态,所以生成的存储可以用来证明存储槽(或账户状态)。但是,如前所述,这些证明的可扩展性不足以讨论跨链消息传输。在此基础上使用复杂的零知识数学,可以减少验证和证明所需的计算。
如何比较存储证明与Oracle根据设计,区块链无法检索离线数据。这给了区块链不信任的优势,但也限制了智能合约基于现实事件做出决策的能力。因为直接获取历史区块链信息非常具有挑战性并且容易出错,所以经常使用Oracle来获取这些信息。
为了解决这个问题,创建了一个名为Oracle的特殊实体来检索离线数据(或者检索一些繁重的离线计算结果)。目前,Oracle需要第三方(如分散的机构网络或节点运营商)来提交链上的数据,这些数据对用户和智能合约是开放的。这种信任假设在目前是不可避免的,有几个团队都在尝试最小化这种信任需求,比如Pragma,但是并不理想。
Chainlink是区块链预测器的一个例子,它提供各种真实世界的数据(股票价格、天气数据等。)和离线计算服务来降低链上繁重计算的成本,以及在不同链上读写信息的跨链服务。
由于除了使用甲骨文,智能合约没有其他方法来了解现实世界中正在发生的事情,甲骨文已经成为区块链生态系统中不可或缺的一部分。
Starknet上的Oracle在Starknet测试网络上。前述Chainlink目前提供七对加密货币的价格数据,并与StarkWare团队合作,“进一步加速Starknet生态系统的应用开发和整体增长”。Chainlink通过分散的节点网络最小化信任假设,节点网络从链下提供数据,数据汇总也在链下进行。
Pragma和Stork Network是Starknet上两个最大的预测机器提供商,它们同时在主网络和测试网络上运行。除了多种加密货币的交易考虑,Pragma在主网络上实现了可验证的随机价格馈送,允许协议请求链上的安全随机性。Pragma上的价格来源是基于大型机构和做市商提供的价格,利用高效的零知识技术在链中进行价格聚合。
如何通过存储证明来替换或改进甲骨文?在某些情况下,存储证明可以替代Oracle。
事实上,并非甲骨文提供的所有数据都需要由第三方提供。在某些情况下,Oracle提供的数据在链上已经可用(以链上的存储或事务的形式),并且可以通过查看区块链的历史状态来检索。在这些情况下,存储证明可以取代第三方和Oracle的信任,并允许智能合约完全依赖加密承诺的安全性。
在其他情况下,存储的证明不能完全取代Oracle,但Oracle仍然可以通过附加功能得到增强,例如:
Oracle将信息从数据提供者传输到数据使用者。然而,并不是所有的数据消费者都在同一个链中。借助存储证明,可以在一个链上完成不同来源的数据计算,并将结果导出到其他链上。计算成本较低的源链是这类数据的首选,验证证明在其他目的链上也可以低成本完成。希罗多德是该领域的研究领导者,他使用存储证明和零知识数学来提供跨不同以太网链的跨域数据访问。Pragma还与Herodotus合作,并将很快启用跨链Oracle支持。存储证书可以统一多个Rollup链的状态,甚至可以在以太网层之间同步读取。另一个增强的功能是检索无信任链上发布的历史数据。以太坊和Starknet等有状态区块链通过Merkle/Verkle树和Merkle Patricia树的特殊数据结构记录和加密其状态。证明存储在这些结构中的任何数据都包括在内是可行的。因此,链上发布的任何历史数据也可以在其他应用程序中被信任、检索和使用(甚至不在同一链上)。这些存储证书允许智能合约访问甚至追溯到Genesis Block中的信息。Pragma正在研究在Starknet上开发L3预测器的可行性,这种预测器可以将数据“拉”到其他链,并用存储证据进行验证。在Starknet这样的低成本网络上使用不同域的Oracle的优势包括:L3是一个高度可定制的链,可以调整各种参数以更快地在块上达成共识,从而大大降低Oracle的数据延迟。结合存储证明,在源链上达成共识后,可以将低延迟数据异步传输到其他链上。通过在L3中开发一个内置系统,我们可以加强对数据的信任,惩罚不诚实的数据提供者。在适当的激励下,L3上的数据提供商可以抵押他们的资产,作为发布正确数据的保证。因为在其他链可以使用数据之前,整个网络需要在L3上达成共识,所以由甲骨文提供的数据可以被认为是由验证者在L3上的承诺所保证的。结语在过去的几个月里,以太坊的L2取得了快速的增长,这也让我们对行业的未来有了更清晰的认识。Starknet、Optimi和Arbitrum的L2叙事吸引了越来越多的关注。分散式跨链消息传递系统的实现是其发展的主要支撑。虽然仍处于初级阶段,但存储认证有望对这一问题做出重大改善。
特别感谢Marcello Bardus和Kacper Koziol审阅本文。
本网站声明:网站内容来源于网络。如有侵权,请联系我们,我们会及时处理。
温馨提示:注:内容来源均采集于互联网,不要轻信任何,后果自负,本站不承担任何责任。若本站收录的信息无意侵犯了贵司版权,请给我们来信(j7hr0a@163.com),我们会及时处理和回复。
原文地址"预言机具有以下哪些特点,预言机项目有哪些":http://www.guoyinggangguan.com/qkl/154542.html。
微信扫描二维码关注官方微信
▲长按图片识别二维码