RISC Zero Steel 如何加速以太坊的 ZK 采用?
编译:AlexLiu,ForesightNews
以太坊成功带来了一个蓬勃发展的去中心化应用生态,但它的可扩展性挑战也日益严峻。开发人员面临着一个艰难的选择:限制其应用程序的功能和数据丰富性,或者忍受高昂的Gas费用和Gas用量限制。如果开发人员有办法绕过这些限制,会怎么样?
Steel,连接RISCZero和以太坊RISCZero是主要的zkVM开发商之一,如果你常在耳边听到zkEVM,但并不了解一字之差的zkVM是什么,可以参考这篇文章。RISCZero最新推出了Steel,它是基于Alloy的视图调用证明库,为开发人员与以太坊L1或其他EVM链交互方式带来巨大转变。利用零知识证明和RISCZerozkVM,Steel使开发人员能够以可扩展、安全且经济高效的方式执行视图调用并可证明地读取和计算以太坊的状态。
Solidity的便利,ZK的力量Steel弥合了以太坊应用开发和零知识技术之间的距离,使开发人员更容易在其智能合约中利用ZK的力量。结合RISCZerozkVM的功能,Steel使开发人员能够在以太坊L1或任何EVM等效链上构建更安全、可扩展且高效的应用程序。
借助Steel,开发人员能够:
直接在zkVM内执行Solidity智能合约,兼容更复杂的链上逻辑访问zkVM内的历史以太坊状态使用continuations进行计算,不受区块和交易数据大小的限制确保链下计算像在链上执行一样安全可靠利用经多个合作伙伴严格测试和使用的第一个胜任生产环境的zkVM以太坊状态的私有计算通过开源代码库保持灵活性,不受供应商限制无缝集成并节省成本使用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,所有存储槽都会根据视图调用执行自动发现和获取。这为开发人员节省了大量时间,减少了实施错误的可能性,从而减少了出现安全漏洞的机会。
获取已验证的区块哈希在以太坊智能合约中使用blockhash操作码进行验证时,验证的commitment必须引用不超过256个区块旧的区块哈希。考虑到平均区块时间为12秒,这就设置了一个约为50分钟的狭窄时间范围,用于完成证明生成并确认验证交易已包含在一个区块中。
当需要在链上获取一个早于256个区块的已验证的区块哈希时,可以使用以下几种策略之一:
当预先知道将需要的区块哈希时(例如,在发起治理提案时),可以将该区块哈希保存到合约状态中。另一种方法是使用RISCZero来证明从查询的区块到最近的256个区块中的一个区块的哈希链。链上应用程序的未来设想未来链下计算将与链上验证无缝集成。Steel使开发人员能够在zkVM内可靠地访问和计算以太坊的完整历史,从而能创建出下一代数据丰富且功能更强大的链上应用程序,为实现这一愿景做出不小的贡献。