本文来自 Cointelegraph ethereum.org,原文作者:Felix NG
Odaily 星球日报译者 | Moni
3 月初,首个以太坊 Web 访问协议 ERC-4804 获得了批准,这意味着 Web3 URL 正式进入以太坊,互联网用户也将可以更轻松地访问以太坊 APP 和 NFT。
实际上,这个全新的以太坊域名标准全称是“Web3 URL to EVM Call Message Translation”,于 2022 年 2 月 14 日首次提出,该提案由 ETHStorage 创始人 Qi Zhou、以太坊研究员 Sam Wilson 和 Chao Pi 共同撰写,其中将“Web3 域名” 描述为一个“HTTP 风格”的 URL,可以直接访问链上的 Web3 内容,包括去中心化应用程序(DApps)前端和 NFT,在历经一年多的评估和投票后,终于在主网上获得批准并最终确定。
ERC-4804 可以解决什么问题?
在许多情况下,当前加密生态系统仍然依赖中心化的 Web 服务器来访问“去中心化”的应用程序,二层存储协议 ETHStorage 发言人 Anthurine Xiang 解释说:
“现在,所有像 Uniswap [...] 你必须通过 DNS,必须通过 GoDaddy[...] ,但所有这些都是中心化服务器。”
ERC-4804 标准和传统 Web3 URL 访问对比,资料来源:w 3 eth.io
坦率地说,之所以会有这种现象,是因为如今大多数用户依然选择通过更广为人知的 HTTP 的“超文本传输协议”访问互联网。 当互联网用户单击链接或键入网站地址时,计算机会使用 HTTP 请求另一台计算机检索信息,例如网站或图片。也就是说,从 Web3 读取数据通常依赖于 Web2 代理到 Web3 区块链的转换,但这个“翻译”工作基本上由 dApp 网站/节点服务提供商/etherscan 等代理完成,用户无法控制。
而在 ERC-4804 协议下,互联网用户可以选择在浏览器中输入“web3://”(而不是“http://”)即可直接调出 Uniswap 或链上 NFT 等 Dapp,这是因为该标准允许用户直接对以太坊虚拟机 (EVM) 运行查询,继而为 Web2 用户提供一种简单的方式来直接访问 Web3 的内容,尤其是 SVG/HTML 等链上 Web 内容,此外该标准也支持其他已经与 URI 兼容的标准(如 SVG/HTML)的互操作性,继而不必担心中心化审查问题。
Web3 URL 标准与 Uniswap 协同工作流程图。资料来源:w 3 eth.io
ERC-4804 标准具体有啥?
接下来,让我们深入了解一下这个 ERC-4804 标准的具体内容,该标准设定的 Web3 URL 的形式如下:
web3 Schema 表示 URL 的 schema,简称web3://为 w 3://。
userinfo 指示哪个用户正在调用 EVM,即 EVM 调用消息中的“From”字段。如果未指定,协议将使用 0x 0 作为发送方地址。
contractName 表示要调用的合约,即 EVM 调用消息中的“To”字段。如果 contractName 是地址,即 0x + 20 字节数据十六进制,则“To”将是地址。否则,名称来自名称服务。在第二种情况下,nsProviderSuffix 将是名称服务提供商的后缀,例如“eth”等。将名称从名称服务转换为地址的方式将在后面的 EIP 中讨论。
chainid 指示哪个链解析 contractName 并调用消息。如果未指定,协议将使用与名称服务提供者相同的链,例如, 1 代表 eth。如果没有可用的名称服务提供者,则默认的 chainid 为 1 。
query 是一个可选组件,包含一系列由“”分隔的属性值对。
一旦确定了“To”地址和 chainid,ERC-4804 协议将通过调用“resolveMode”方法检查合约的解析器模式,目前支持两种解析模式,分别是:手动模式和自动模式:
1、手动模式:手动模式不会对 path 和 query 做任何解释,把 path [ “?” query ] 直接作为消息的 calldata。
2、自动模式:自动模式是默认的解析模式(当目标合约中的“resolveMode”方法不可用时也适用)。在自动模式下,如果路径为空,则协议将调用带有空调用数据的目标合约。否则,EVM 消息的调用数据将使用标准的 Solidity 合约 ABI 编码解码。
ERC-4804 标准存在哪些问题?
实际上,只要网站的内容存储在以太坊区块链或兼容的二层协议上,理论上就可以通过 Web3 域名方式访问整个网站,但这样做的成本非常高(至少目前而言是这样)。
在上月 ETHDenver 大会上,ETHStorage 创始人 Qi Zhou 分析了这个问题:
“ERC-4804 的关键问题在于以太坊上的存储成本在主网上非常非常昂贵,例如, 1 GB 的链上数据将花费大约 1000 万美元……对于许多 Web2 应用程序甚至许多 NFT 来说,这是不可接受的,不过二层存储解决方案可以帮助降低一些成本。”
考虑到成本问题,ETHStorage 的发言人 Anthurine Xiang 建议 ERC-4804 URL 标准可以首先在某些特定应用上使用并进一步解释说:
“并不是所有的东西都需要去中心化如果你经营的 Web2 业务相当不错,而且不必太担心中心化审查,那么可以选择暂不使用 ERC-4804.”
另一个问题是,ERC-4804 标准可能会被面临审查风险的网站利用,比如 Tornado Cash,这意味着该标准或许会被不良行为者利用来参与非法活动。对于这个问题,Anthurine Xiang 坦言:“这真的很难说,就像比特币创立初衷并不是为邪恶而生,但一开始,的确有人做一些不正当的事情,比如 Silk Road,他们一直在使用比特币,但比特币只是为人们提供了一个他们可能没有的去中心化选择。 而 ERC-4804 以太坊 URL 标准也是区块链上第一个此类标准 ”
事实上,ERC-4804 标准并不是首个去中心化网络托管解决方案,比如星际文件系统 (IPFS) 也是一个基于去中心化方式创建网络的解决方案,不过 IPFS URL 只能链接到静态内容,无法修改或更改。相比而言,ERC-4804 将允许“动态数据”,例如允许人们留下喜欢和评论以及与网站上的内容互动,而且作为以太坊原生的标准,ERC-4804 也有望更容易地与其他区块链进行交互。
无论如何,ERC-4804 给加密社区提供了一个以太坊原生的 URL 标准,未来能否衍生出一些新的方向生态应用,值得关注。