一文了解剛獲批的ERC-4804:跟HTTP說再見,Web3 URL 正式進入以太坊

原文:《 Forget HTTP: Ethereum has a new URL standard that can't be blocked 》by Felix NG

編譯: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:跟HTTP說再見,Web3 URL 正式進入以太坊

 ERC-4804 標準和傳統Web3 URL 訪問對比,資料來源:w3eth.io

坦率地說,之所以會有這種現象,是因為如今大多數用戶依然選擇通過更廣為人知的HTTP 的“超文本傳輸協議”訪問互聯網。當互聯網用戶單擊鏈接或鍵入網站地址時,計算機會使用HTTP 請求另一台計算機檢索信息,例如網站或圖片。也就是說,從Web3 讀取數據通常依賴於Web2 代理到Web3 區塊鏈的轉換,但這個“翻譯”工作基本上由dApp 網站/節點服務提供商/etherscan 等代理完成,用戶無法控制。

而在ERC-4804 協議下,互聯網用戶可以選擇在瀏覽器中輸入“web3://”(而不是“http://”)即可直接調出Uniswap 或鏈上NFT 等Dapp,這是因為該標准允許用戶直接對以太坊虛擬機(EVM) 運行查詢,繼而為Web2 用戶提供一種簡單的方式來直接訪問Web3 的內容,尤其是SVG/HTML 等鏈上Web 內容,此外該標準也支持其他已經與URI 兼容的標準(如SVG/HTML)的互操作性,繼而不必擔心中心化審查問題。

一文了解剛獲批的ERC-4804:跟HTTP說再見,Web3 URL 正式進入以太坊

 Web3 URL 標準與Uniswap 協同工作流程圖。資料來源:w3eth.io

ERC-4804 標準具體有啥?

接下來,讓我們深入了解一下這個ERC-4804 標準的具體內容,該標准設定的Web3 URL 的形式如下:

一文了解剛獲批的ERC-4804:跟HTTP說再見,Web3 URL 正式進入以太坊

  • web3Schema表示URL的schema,簡稱web3://為w3://。
  • userinfo指示哪個用戶正在調用EVM,即EVM 調用消息中的“From”字段。如果未指定,協議將使用0x0 作為發送方地址。
  • 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 標準,未來能否衍生出一些新的方向生態應用,值得關注。