欧易OKX官网地址

首次购买¥200 及以上的数字货币,您可以在新手福利中领取价值¥20 奖励!

当前位置:首页资讯详情

RISC Zero Steel如何推动zkVM的广泛采用?

原文标题:《IntroducingSteel》

编译:Chris,TechubNews

Steel,连接RISCZero和以太坊

以太坊网络的成功推动了DApp生态的蓬勃发展,但随之而来的是越来越严峻的可扩展性挑战。开发者们面临一个两难境地:要么限制应用程序的功能和数据丰富性,要么忍受高昂的Gas费和其使用限制。那么,如果开发者能够找到绕过这些限制的方法,将会怎样呢?

RISCZero是zkVM开发者之一。你可能经常听说zkEVM,但对它的衍生概念zkVM还不太熟悉。RISCZero最近推出了一项名为Steel的新技术,这是一种基于Alloy的视图调用证明库,它将彻底改变开发者与以太坊L1或其他EVM兼容链的交互方式。通过利用零知识证明和RISCZero的zkVM技术,Steel为开发者提供了一个可扩展、安全且成本效益高的方法,使他们能够执行视图调用并验证地读取及计算以太坊状态。

Solidity的便利,借助ZK的力量

Steel架起了以太坊应用开发与零知识证明技术之间的桥梁,极大地便利了开发者在智能合约中应用零知识证明(ZK)技术的过程。通过整合RISCZero的zkVM功能,Steel为开发者在以太坊L1或任何EVM兼容链上打造更安全、可扩展且效率更高的应用提供了工具。

使用Steel,开发者能够在以下方面获得显著提升:

直接执行复杂链上逻辑:在zkVM上直接执行Solidity智能合约,以支持更复杂的链上逻辑。

访问历史状态:在zkVM中访问历史以太坊状态,为数据分析和验证提供更广泛的资源。

突破计算限制:使用continuations进行计算,不受区块大小或交易数据大小的限制。

确保链下计算的安全性:保证链下计算的安全性与链上执行同等可靠。

经验证的zkVM:利用第一个经多个合作伙伴严格测试并用于生产环境的zkVM。

私有计算:进行以太坊状态的私有计算,增强数据保护。

开源灵活性:通过开源代码库实现,确保灵活性,摆脱供应商限制。

Steel的引入为开发者在现有区块链技术中融入先进的零知识证明技术提供了有力工具,推动了区块链应用开发的进一步革新。

无缝集成并节省成本

使用Steel,执行视图调用像指定所需的Solidity方法一样简单。无论是检索ERC-20代币余额(example)还是访问以太坊状态等各个方面,Steel都可以通过与RISCZerozkVM无缝集成来简化流程,同时确保安全性和效率。测试表明,Steel有能力在单个视图调用中处理超过100KSLOAD操作,这节省了主网上数千美元的Gas费用。我们可以使用Bonsai在大约15分钟内证明它,这至少需要210M的Gas,超出区块限制7倍。

示例:ERC20balanceOf

下面的代码片段演示了使用Steel证明以太坊上部署的ERC-20合约的特定地址余额的过程。此示例展示了开发人员如何利用Steel在zkVM内与以太坊链上数据进行交互。完整代码可在此处查看。

定义视图函数签名

首先,使用sol!宏来定义ERC-20的balanceOf函数签名。这将解析Solidity语法以生成相应的Rust结构体,该结构体实现了SolCalltrait,可用于调用balanceOf方法,该方法接受一个账户地址并返回关联的ERC-20代币余额。

准备调用

接下来,通过用目标账户地址实例化balanceOfCall结构体来设置调用。同时,为希望查询的合约地址和调用者的地址定义常量。

在Main中执行调用

主函数在zkVM中执行,生成零知识证明。它首先读取输入环境,然后构造一个ViewCallEnv对象,确保当前状态与预期的状态根匹配。在提交相关区块哈希和编号后,执行视图调用,并打印余额。

原理

Steel简化了在RISCZerozkVM中执行Solidity代码的流程,通过三个清晰的步骤来实现代码的证明:

预飞行阶段:这一阶段通过向以太坊的RPC节点发起视图调用来启动,此过程会缓存所需的存储槽,并根据查询需求填充EVM数据库。所有的存储槽都是通过视图调用的执行过程自动发现和获取的。

存储验证:此步骤涉及对存储完整性的检查,确保EVM数据库中的数据与区块链的状态根一致,从而验证数据的合法性。

Solidity执行:在RISCZerozkVM内部的EVM上执行指定的Solidity函数,确保代码按预期运行。

通过这三个步骤,Steel在RISCZerozkVM中提供了一个高效且可靠的方法来证明并执行Solidity代码,极大地简化了整个过程。

这与存储证明有何不同?

使用传统的存储证明,开发人员必须手动选择其智能合约使用的存储槽,并重新实现智能合约逻辑。而使用Steel,所有存储槽都会根据视图调用执行自动发现和获取。这为开发人员节省了大量时间,减少了实施错误的可能性,从而减少了出现安全漏洞的机会。

获取已验证的区块哈希

以太坊智能合约中使用blockhash操作码进行验证时,验证的commitment必须引用不超过256个区块旧的区块哈希。考虑到平均区块时间为12秒,这就设置了一个约为50分钟的狭窄时间范围,用于完成证明生成并确认验证交易已包含在一个区块中。

当需要在链上获取一个早于256个区块的已验证的区块哈希时,可以使用以下几种策略之一:

当预先知道将需要的区块哈希时(例如,在发起治理提案时),可以将该区块哈希保存到合约状态中。

另一种方法是使用RISCZero来证明从查询的区块到最近的256个区块中的一个区块的哈希链。

链上应用程序的未来

设想未来链下计算将与链上验证无缝集成。Steel使开发人员能够在zkVM内可靠地访问和计算以太坊的完整历史,从而能创建出下一代数据丰富且功能更强大的链上应用程序,为实现这一愿景做出不小的贡献。