EthStorge如何幫助DAPP實現真正的去信任化

中級5/23/2024, 10:35:14 AM
EthStorage團隊提出了web3://訪問協議和EthStorage二層存儲協議,旨在幫助去中心化應用(DAPP)實現真正的去信任化。當前DAPP的前端和數據庫大多未部署在以太坊上,無法完全繼承以太坊的安全性。web3://協議允許通過智能合約部署和訪問前端代碼,而EthStorage協議通過PoRA和零知識證明降低鏈上數據存儲成本。這兩項技術使DAPP能更接近以太坊的去中心化願景,實現永久運行和抗審查的特性。

摘要:

· 一個去中心化應用由多個部分構成,但目前只有最核心的後端邏輯運行在以太坊上,其他部分比如前端代碼還部署在以太坊之外,同時還包含很多沒有上鏈的數據,所以大多數DAPP無法完整繼承以太坊的安全性,遠未達到理想化的狀態。

· 導致上述問題的原因主要有兩個:一是以太坊沒有爲開發者提供相應的前端標準和工具,二是鏈上存儲數據的成本太高。

· 爲了提供去中心化的前端標準,EthStorage 團隊提出了 web3:// 訪問協議,爲開發者提供一整套通過智能合約來部署和訪問前端代碼,甚至是類文件系統的標準和工具,目前已成爲以太坊的正式標準。

· 爲了降低以太坊鏈上數據的存儲成本,EthStorage團隊開發了二層存儲協議EthStorage,利用PoRA (Proof of Random Access) 和零知識證明,在繼承以太坊一層安全性的同時,極大降低存儲開銷。

致謝:感謝來自極客Web3 的 Faust,ChainFeeds 的 Zhixiong Pan、LXDAO的 Bruce、EthStorage 的 Qi Zhou, Lun Deng 對本文的反饋。

去中心化DAPP的背景和問題

以太坊的願景是成爲世界計算機,希望在其上構建的應用程序都繼承它的安全性。開發者只需一次部署,該應用就會永遠在以太坊上運行,沒有實體可以對其進行審查或惡意操縱。

但現在的去中心化應用DAPP是否達到了上述目標?爲了更清晰的回答這個問題,我們需要將一個DAPP應用解構,看它都包括哪些部分,進而分析各個部分的去信任化程度,來得出最終結論。

一般情況下,一個去中心化DAPP會包含前端界面、後端服務器、數據庫。用戶訪問前端界面時,會通過瀏覽器和域名服務來加載前端內容。其中:

· 前端和域名服務:大多沒有通過智能合約來部署和訪問,區塊鏈提供的特性如避免單點故障、代碼不可篡改、抗審查、社區治理等都沒有在前端這部分體現出來。

· 後端服務器:部分由智能合約實現,有些計算密集型的任務無法完全上鏈。

· 數據庫:部分由智能合約實現,由於鏈上存儲費用非常高,數據量較大的情況下DAPP還是採用鏈下的存儲方案。

通過上面的分析,可以看到現在的去中心化DAPP只有部分組件通過智能合約獲得了以太坊的保護,以太坊體系還遠未實現當初的“去中心化的世界計算機”願景。

2023年末Vitalik回顧以太坊的發展,寫了一篇反響較大的文章“Make Ethereum Cypherpunk Again”,討論了以太坊社區該如何回歸密碼朋克的理念。他在文中總結了以太坊甚至是更大範圍的Web3社區應該堅守的價值觀,提到非常重要的一點:

去中心化應用應盡量減少對任何單一主體的依賴,即便DAPP的核心開發者永久消失,應用程序也可以繼續運轉。

由此可見Vitalik對於去中心化應用該如何構建也有類似的期待。接下來我們將詳細分析去中心化DAPP中每個組件面臨的問題,探討如何對其進行改進。

前端和域名服務

在去中心化應用的幾個組成部分中,前端和域名服務的中心化程度最爲嚴重。目前絕大部分dApp的前端都使用中心化服務器,項目方可以隨時修改前端代碼,不需要經過社區治理,也不受到時間鎖限制,這部分的安全性與部署在以太坊上的智能合約相去甚遠。

黑客可以入侵服務器修改前端代碼,而dApp用戶會因爲使用該惡意前端而損失資產。這個問題在上個DeFi Summer中反復出現,我們不禁要問:爲什麼前端不能和後端一樣部署在以太坊上,讓修改行爲通過社區治理和時間鎖才生效呢?

另外請設想一下,假如 Uniswap 的開發團隊有一天不再給他們的前端服務器以及域名服務付費,那麼 Uniswap 的用戶和 LP 將如何使用 Uniswap?

絕大部分用戶並不懂得如何繞過前端和智能合約交互,雖然 Uniswap 有嘗試將其前端上傳到 FIL,但是 FIL 和以太坊是不同的網路,在可靠性和去信任程度上完全不同。值得一提的是,FIL的內容訪問速度很慢,現在絕大多數用戶還是在和Uniswap部署在中心化服務器上的前端進行交互。

此外,因爲Uniswap前端的運營主體是Uniswap Labs,他們爲了迎合監管,增加了對Token列表的審查,這與他們在以太坊上部署的智能合約進成了反差,因爲誰都無法隨意對智能合約進行修改。所以,在前端被審查的Token還是可以在合約層面被交互到的,由此可見代碼上鏈對抗審查的重要性。

後端服務器

因爲EVM可以提供圖靈完備的執行環境,所以大部分後端邏輯都可以在以太坊鏈上執行,我們可以說智能合約類的應用可以完全繼承以太坊的安全。只是因爲成本原因,一些計算密集型的任務無法直接在鏈上進行。

針對這個問題,現在探索比較多的是使用ZK或者OP的方式,將計算移交到鏈下完成,以太坊鏈上只對計算結果進行最終確認,以此在計算層面上進行擴容。有些AI相關的項目將這類方法推向了極致,希望將 AI 大模型這種超級計算密集型的任務與區塊鏈掛鉤,值得我們去密切關注。

數據庫

對於數據庫,EVM 原本就支持鍵值對/KV型存儲 (Key Value Store),可以覆蓋非常多的使用場景,但核心的問題是:鏈上存儲的成本太高。

貴到什麼地步呢?在 Gas Price爲10Gwei 的情況,鏈上存儲1GB的數據需要 6200多枚ETH,超過2000萬美元!顯然存儲成本成爲了數據庫去中心化的核心問題。

我們可能會想,能否使用和上述計算擴容類似的方法,對存儲進行擴容,也就是鏈下存儲,鏈上驗證存儲效果。後面我們會對這個思路詳細展開。

分析了上述談及的DAPP組成部分後,我們發現,只有讓DAPP的每個部分都足夠安全和去信任,其作爲一個去信任的整體,才能真正成爲一個去中心化的DAPP。而以太坊作爲dApp的運行與托管平台,需要給開發者提供相應的解決方案,才能孕育出符合以太坊願景的應用生態。

DAPP的去信任解決方案

圍繞着如何讓DAPP完全基於以太坊來部署和訪問,EthStorage團隊提出了兩套解決方案:

  • web3:// 訪問協議:解決如何使用智能合約來部署和訪問前端代碼,甚至是類文件系統的問題。
  • EthStorage 二層存儲協議:在繼承以太坊安全性的同時,極大降低了存儲開銷。

web3:// 訪問協議

web3:// 可以被理解爲去中心化版本的 http://,與 http 的 URL 中通過指定服務器 IP 地址或者域名來訪問中心化的資源類似,web3 的 URL 需要指定一個智能合約地址或者ENS域名,來訪問存儲在其上的資源。

我們可以將一個網站的前端全部部署到一個智能合約中,並通過web3:// 來訪問!可以對比一下兩者的區別:

目前 web3:// 已經成爲了以太坊的正式標準(ERC-4804),如果希望詳細了解 web3:// 訪問協議的內容,可以訪問其官網。爲了更好的在智能合約中做文件管理,我們提出了 ERC-5018,它在智能合約中模擬了一套文件系統的接口,這樣就可以通過 ethfs-cli,將打包好的前端代碼文件夾上傳到一個智能合約中,並通過 web3:// 來訪問這個網站。

大家如果感興趣,可以按照 教程 完成一個簡單的去中心化應用部署和訪問。

有了 web3:// 訪問協議,我們才能真正讓 dApp 前端也具有了 “Code is law” 的屬性。對於開發者來說,一旦部署,這個前端將永久執行下去。試想如果Uniswap labs也將其前端部署到了以太坊,那麼即使團隊想在前端層面對用戶進行審查和限制,也無法阻止人們使用其部署在以太坊上的前端了。

當然在解決了可行性的問題後,我們還意識到鏈上存儲大量數據的成本會非常高,從而使開發者在鏈上部署前端的時候面臨困擾。我們進一步開發了 EthStorage 二層存儲協議,在繼承以太坊安全性的同時,極大降低存儲開銷。

EthStorage二層存儲協議

EthStorage 協議由部署在以太坊上的智能合約和Layer2網路中的存儲節點組成,其中,智能合約提供了鍵值存儲, 而二層的存儲節點負責存放數據本身。

用戶通過 EIP-4844 的 BLOB 將待存儲的數據上傳到以太坊上,EthStorage智能合約只會記錄BLOB內數據的哈希,從而有效的降低存儲成本。

同時,二層的存儲節點會下載對應的BLOB數據到本地磁盤,使用 PoRA (Proof of Random Access) 和 ZK,將存儲證明提交至以太坊上的合約做驗證,該合約需要通過之前記錄的Blob哈希來確認存儲節點上傳的ZK證明能否對上號,以此確認二層網路中的存儲節點真的存放了這些數據。

具體流程如下:

對於開發者來說,其上傳數據和獲取數據的接口非常簡單:

應用開發者可以直接通過EthStorage提供的合約接口,對大塊數據進行讀寫,寫入成本約等於直接在鏈上存儲數據的千分之一。因此,EthStorage不僅支持鏈上部署前端,對更廣泛的鍵值存儲數據庫操作也提供了成本更低的解決方案。

目前,EthStorage已獲得了以太坊官方的 Grants,並且已經在 Sepolia 部署了公開測試網,歡迎大家加入。

總結與展望

大多數DAPP的重要組件如前端和數據庫未部署在以太坊,無法繼承以太坊的安全,導致應用作爲一個整體無法做到永久執行,抗審查,可治理。

EthStorage 對此提出了兩個方案解決這個問題:web3:// 訪問協議解決使用智能合約來部署和訪問前端的問題;EthStorage 二層存儲協議解決存儲成本過高的問題。

爲了實現以太坊最初的願景,我們認爲它將演進爲一個去中心化的Web服務器,生態中的去中心化應用會將其所有組件都部署於以太坊,不管是後端代碼、前端還是數據,一旦部署,代碼可以永久運行,數據可以永久訪問,成爲一個真正的 Unstoppable Dapp。

EthStorage 公開測試網正在進行第二次激勵活動,感興趣的社區小夥伴可以按照Guide 完成自己的第一個 Unstoppable Dapp 部署和訪問!

聲明:

  1. 本文轉載自[極客 Web3],著作權歸屬原作者[EthStorage團隊],如對轉載有異議,請聯系Gate Learn團隊,團隊會根據相關流程盡速處理。

  2. 免責聲明:本文所表達的觀點和意見僅代表作者個人觀點,不構成任何投資建議。

  3. 文章其他語言版本由Gate Learn團隊翻譯, 在未提及Gate.io的情況下不得復制、傳播或抄襲經翻譯文章。

EthStorge如何幫助DAPP實現真正的去信任化

中級5/23/2024, 10:35:14 AM
EthStorage團隊提出了web3://訪問協議和EthStorage二層存儲協議,旨在幫助去中心化應用(DAPP)實現真正的去信任化。當前DAPP的前端和數據庫大多未部署在以太坊上,無法完全繼承以太坊的安全性。web3://協議允許通過智能合約部署和訪問前端代碼,而EthStorage協議通過PoRA和零知識證明降低鏈上數據存儲成本。這兩項技術使DAPP能更接近以太坊的去中心化願景,實現永久運行和抗審查的特性。

摘要:

· 一個去中心化應用由多個部分構成,但目前只有最核心的後端邏輯運行在以太坊上,其他部分比如前端代碼還部署在以太坊之外,同時還包含很多沒有上鏈的數據,所以大多數DAPP無法完整繼承以太坊的安全性,遠未達到理想化的狀態。

· 導致上述問題的原因主要有兩個:一是以太坊沒有爲開發者提供相應的前端標準和工具,二是鏈上存儲數據的成本太高。

· 爲了提供去中心化的前端標準,EthStorage 團隊提出了 web3:// 訪問協議,爲開發者提供一整套通過智能合約來部署和訪問前端代碼,甚至是類文件系統的標準和工具,目前已成爲以太坊的正式標準。

· 爲了降低以太坊鏈上數據的存儲成本,EthStorage團隊開發了二層存儲協議EthStorage,利用PoRA (Proof of Random Access) 和零知識證明,在繼承以太坊一層安全性的同時,極大降低存儲開銷。

致謝:感謝來自極客Web3 的 Faust,ChainFeeds 的 Zhixiong Pan、LXDAO的 Bruce、EthStorage 的 Qi Zhou, Lun Deng 對本文的反饋。

去中心化DAPP的背景和問題

以太坊的願景是成爲世界計算機,希望在其上構建的應用程序都繼承它的安全性。開發者只需一次部署,該應用就會永遠在以太坊上運行,沒有實體可以對其進行審查或惡意操縱。

但現在的去中心化應用DAPP是否達到了上述目標?爲了更清晰的回答這個問題,我們需要將一個DAPP應用解構,看它都包括哪些部分,進而分析各個部分的去信任化程度,來得出最終結論。

一般情況下,一個去中心化DAPP會包含前端界面、後端服務器、數據庫。用戶訪問前端界面時,會通過瀏覽器和域名服務來加載前端內容。其中:

· 前端和域名服務:大多沒有通過智能合約來部署和訪問,區塊鏈提供的特性如避免單點故障、代碼不可篡改、抗審查、社區治理等都沒有在前端這部分體現出來。

· 後端服務器:部分由智能合約實現,有些計算密集型的任務無法完全上鏈。

· 數據庫:部分由智能合約實現,由於鏈上存儲費用非常高,數據量較大的情況下DAPP還是採用鏈下的存儲方案。

通過上面的分析,可以看到現在的去中心化DAPP只有部分組件通過智能合約獲得了以太坊的保護,以太坊體系還遠未實現當初的“去中心化的世界計算機”願景。

2023年末Vitalik回顧以太坊的發展,寫了一篇反響較大的文章“Make Ethereum Cypherpunk Again”,討論了以太坊社區該如何回歸密碼朋克的理念。他在文中總結了以太坊甚至是更大範圍的Web3社區應該堅守的價值觀,提到非常重要的一點:

去中心化應用應盡量減少對任何單一主體的依賴,即便DAPP的核心開發者永久消失,應用程序也可以繼續運轉。

由此可見Vitalik對於去中心化應用該如何構建也有類似的期待。接下來我們將詳細分析去中心化DAPP中每個組件面臨的問題,探討如何對其進行改進。

前端和域名服務

在去中心化應用的幾個組成部分中,前端和域名服務的中心化程度最爲嚴重。目前絕大部分dApp的前端都使用中心化服務器,項目方可以隨時修改前端代碼,不需要經過社區治理,也不受到時間鎖限制,這部分的安全性與部署在以太坊上的智能合約相去甚遠。

黑客可以入侵服務器修改前端代碼,而dApp用戶會因爲使用該惡意前端而損失資產。這個問題在上個DeFi Summer中反復出現,我們不禁要問:爲什麼前端不能和後端一樣部署在以太坊上,讓修改行爲通過社區治理和時間鎖才生效呢?

另外請設想一下,假如 Uniswap 的開發團隊有一天不再給他們的前端服務器以及域名服務付費,那麼 Uniswap 的用戶和 LP 將如何使用 Uniswap?

絕大部分用戶並不懂得如何繞過前端和智能合約交互,雖然 Uniswap 有嘗試將其前端上傳到 FIL,但是 FIL 和以太坊是不同的網路,在可靠性和去信任程度上完全不同。值得一提的是,FIL的內容訪問速度很慢,現在絕大多數用戶還是在和Uniswap部署在中心化服務器上的前端進行交互。

此外,因爲Uniswap前端的運營主體是Uniswap Labs,他們爲了迎合監管,增加了對Token列表的審查,這與他們在以太坊上部署的智能合約進成了反差,因爲誰都無法隨意對智能合約進行修改。所以,在前端被審查的Token還是可以在合約層面被交互到的,由此可見代碼上鏈對抗審查的重要性。

後端服務器

因爲EVM可以提供圖靈完備的執行環境,所以大部分後端邏輯都可以在以太坊鏈上執行,我們可以說智能合約類的應用可以完全繼承以太坊的安全。只是因爲成本原因,一些計算密集型的任務無法直接在鏈上進行。

針對這個問題,現在探索比較多的是使用ZK或者OP的方式,將計算移交到鏈下完成,以太坊鏈上只對計算結果進行最終確認,以此在計算層面上進行擴容。有些AI相關的項目將這類方法推向了極致,希望將 AI 大模型這種超級計算密集型的任務與區塊鏈掛鉤,值得我們去密切關注。

數據庫

對於數據庫,EVM 原本就支持鍵值對/KV型存儲 (Key Value Store),可以覆蓋非常多的使用場景,但核心的問題是:鏈上存儲的成本太高。

貴到什麼地步呢?在 Gas Price爲10Gwei 的情況,鏈上存儲1GB的數據需要 6200多枚ETH,超過2000萬美元!顯然存儲成本成爲了數據庫去中心化的核心問題。

我們可能會想,能否使用和上述計算擴容類似的方法,對存儲進行擴容,也就是鏈下存儲,鏈上驗證存儲效果。後面我們會對這個思路詳細展開。

分析了上述談及的DAPP組成部分後,我們發現,只有讓DAPP的每個部分都足夠安全和去信任,其作爲一個去信任的整體,才能真正成爲一個去中心化的DAPP。而以太坊作爲dApp的運行與托管平台,需要給開發者提供相應的解決方案,才能孕育出符合以太坊願景的應用生態。

DAPP的去信任解決方案

圍繞着如何讓DAPP完全基於以太坊來部署和訪問,EthStorage團隊提出了兩套解決方案:

  • web3:// 訪問協議:解決如何使用智能合約來部署和訪問前端代碼,甚至是類文件系統的問題。
  • EthStorage 二層存儲協議:在繼承以太坊安全性的同時,極大降低了存儲開銷。

web3:// 訪問協議

web3:// 可以被理解爲去中心化版本的 http://,與 http 的 URL 中通過指定服務器 IP 地址或者域名來訪問中心化的資源類似,web3 的 URL 需要指定一個智能合約地址或者ENS域名,來訪問存儲在其上的資源。

我們可以將一個網站的前端全部部署到一個智能合約中,並通過web3:// 來訪問!可以對比一下兩者的區別:

目前 web3:// 已經成爲了以太坊的正式標準(ERC-4804),如果希望詳細了解 web3:// 訪問協議的內容,可以訪問其官網。爲了更好的在智能合約中做文件管理,我們提出了 ERC-5018,它在智能合約中模擬了一套文件系統的接口,這樣就可以通過 ethfs-cli,將打包好的前端代碼文件夾上傳到一個智能合約中,並通過 web3:// 來訪問這個網站。

大家如果感興趣,可以按照 教程 完成一個簡單的去中心化應用部署和訪問。

有了 web3:// 訪問協議,我們才能真正讓 dApp 前端也具有了 “Code is law” 的屬性。對於開發者來說,一旦部署,這個前端將永久執行下去。試想如果Uniswap labs也將其前端部署到了以太坊,那麼即使團隊想在前端層面對用戶進行審查和限制,也無法阻止人們使用其部署在以太坊上的前端了。

當然在解決了可行性的問題後,我們還意識到鏈上存儲大量數據的成本會非常高,從而使開發者在鏈上部署前端的時候面臨困擾。我們進一步開發了 EthStorage 二層存儲協議,在繼承以太坊安全性的同時,極大降低存儲開銷。

EthStorage二層存儲協議

EthStorage 協議由部署在以太坊上的智能合約和Layer2網路中的存儲節點組成,其中,智能合約提供了鍵值存儲, 而二層的存儲節點負責存放數據本身。

用戶通過 EIP-4844 的 BLOB 將待存儲的數據上傳到以太坊上,EthStorage智能合約只會記錄BLOB內數據的哈希,從而有效的降低存儲成本。

同時,二層的存儲節點會下載對應的BLOB數據到本地磁盤,使用 PoRA (Proof of Random Access) 和 ZK,將存儲證明提交至以太坊上的合約做驗證,該合約需要通過之前記錄的Blob哈希來確認存儲節點上傳的ZK證明能否對上號,以此確認二層網路中的存儲節點真的存放了這些數據。

具體流程如下:

對於開發者來說,其上傳數據和獲取數據的接口非常簡單:

應用開發者可以直接通過EthStorage提供的合約接口,對大塊數據進行讀寫,寫入成本約等於直接在鏈上存儲數據的千分之一。因此,EthStorage不僅支持鏈上部署前端,對更廣泛的鍵值存儲數據庫操作也提供了成本更低的解決方案。

目前,EthStorage已獲得了以太坊官方的 Grants,並且已經在 Sepolia 部署了公開測試網,歡迎大家加入。

總結與展望

大多數DAPP的重要組件如前端和數據庫未部署在以太坊,無法繼承以太坊的安全,導致應用作爲一個整體無法做到永久執行,抗審查,可治理。

EthStorage 對此提出了兩個方案解決這個問題:web3:// 訪問協議解決使用智能合約來部署和訪問前端的問題;EthStorage 二層存儲協議解決存儲成本過高的問題。

爲了實現以太坊最初的願景,我們認爲它將演進爲一個去中心化的Web服務器,生態中的去中心化應用會將其所有組件都部署於以太坊,不管是後端代碼、前端還是數據,一旦部署,代碼可以永久運行,數據可以永久訪問,成爲一個真正的 Unstoppable Dapp。

EthStorage 公開測試網正在進行第二次激勵活動,感興趣的社區小夥伴可以按照Guide 完成自己的第一個 Unstoppable Dapp 部署和訪問!

聲明:

  1. 本文轉載自[極客 Web3],著作權歸屬原作者[EthStorage團隊],如對轉載有異議,請聯系Gate Learn團隊,團隊會根據相關流程盡速處理。

  2. 免責聲明:本文所表達的觀點和意見僅代表作者個人觀點,不構成任何投資建議。

  3. 文章其他語言版本由Gate Learn團隊翻譯, 在未提及Gate.io的情況下不得復制、傳播或抄襲經翻譯文章。

即刻开始交易
注册并交易即可获得
$100
和价值
$5500
理财体验金奖励!