了解 ERC-3668:以太坊链外数据查询标准
2025-02-21 20:37
imToken
2025-02-21 20:37
订阅此专栏
收藏此文章


ERC-3668 为以太坊引入了链外数据查询技术方案,为智能合约获取链外数据设立了运行标准。


设计目的


ERC-3668 旨在降低以太坊主网的存储和交易成本,该技术标准支持智能合约从链外获取数据,并可以对返回的数据进行解码和验证。


运行步骤


(1)调用合约,合约会回复一个信息,表明调用的数据可在链外找到。

(2)客户端使用步骤(1)中提供的地址调用网关服务。

(3)使用步骤(1)和步骤(2)的数据查询合约或发送交易,客户端调用合约,提供步骤(2)中的响应和步骤 (1) 中合约返回的数据,合约可以对返回的数据进行解码和验证。


客户端要求


支持读取的客户端使用以下流程进行合约调用:

(1)将数据设为提供给合约调用,并调用合约地址。
(2)正常调用地址处的合约函数,提供数据作为输入数据。如果函数返回成功结果,则将其返回给调用者并停止。
(3)如果函数返回 OffchainLookup 以外的错误结果,则按常规方式将其返回给调用者。
(4)否则,从 OffchainLookup 错误中解码发送方、urls、callData、callbackFunction 和 extraData 参数。
(5)如果发送者字段与被调用合约的地址不匹配,则向调用者返回错误并停止。
(6)将发送方替换为小写 0x 前缀十六进制格式的发送方参数,并将数据替换为 0x 前缀十六进制格式的 callData 参数,从而构建请求 URL。客户端可选择按顺序尝试哪些 URL,但应优先选择列表中较前的 URL,而不是列表中较后的 URL。
(7)向请求 URL 发出 HTTP GET 请求。
(8)如果响应代码在 400-499 范围内,则向调用者返回错误并停止,如果响应代码范围在 500-599 之间,则返回第(5)步骤并选择不同的 URL,如果没有其他 URL 可试,则停止。
(9)否则,用 ABI 编码调用由 4 字节选择器 callbackFunction 指定的合约函数来替换数据,并提供返回的数据。

注意事项


需要注意的是,ERC-3668 技术标准的实施具备灵活性, 适用于只读合约调用,验证链外数据合法性的安全模型由客户端和网关商定,并根据使用情况有所不同。



了解更多


  1. 低调的 ERC-4337,正在解锁不容小觑的以太坊账户构想

  2. ERC-7683 带来的 Web3 新畅想:从多链到统一,从分散到联合

  3. EIP-7702 技术方案亮相,以太坊抽象账户变革将迎来质变时刻?


关注我们

imToken X 平台(原 Twitter)中文账户已经正式开通了,欢迎关注:

https://x.com/imTokenCN


更多未来计划、软件更新,请关注 imToken 唯一官网:https://token.im

END


想了解更多区块链技术、工具和数字资产信息

请关注我们

点击在看分享我们

【免责声明】市场有风险,投资需谨慎。本文不构成投资建议,用户应考虑本文中的任何意见、观点或结论是否符合其特定状况。据此投资,责任自负。

imToken
数据请求中
查看更多

推荐专栏

数据请求中
在 App 打开