EthStorge如何帮助DAPP实现真正的去信任化

中级5/23/2024, 10:35:31 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 有尝试将其前端上传到 IPFS,但是 IPFS 和以太坊是不同的网络,在可靠性和去信任程度上完全不同。值得一提的是,IPFS的内容访问速度很慢,现在绝大多数用户还是在和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的情况下不得复制、传播或抄袭经翻译文章。

分享

目录

去中心化DAPP的背景和问题

前端和域名服务

后端服务器

数据库

DAPP的去信任解决方案

EthStorage二层存储协议

总结与展望

EthStorge如何帮助DAPP实现真正的去信任化

中级5/23/2024, 10:35:31 AM
EthStorage团队提出了web3://访问协议和EthStorage二层存储协议,旨在帮助去中心化应用(DAPP)实现真正的去信任化。当前DAPP的前端和数据库大多未部署在以太坊上,无法完全继承以太坊的安全性。web3://协议允许通过智能合约部署和访问前端代码,而EthStorage协议通过PoRA和零知识证明降低链上数据存储成本。这两项技术使DAPP能更接近以太坊的去中心化愿景,实现永久运行和抗审查的特性。

去中心化DAPP的背景和问题

前端和域名服务

后端服务器

数据库

DAPP的去信任解决方案

EthStorage二层存储协议

总结与展望

摘要:

· 一个去中心化应用由多个部分构成,但目前只有最核心的后端逻辑运行在以太坊上,其他部分比如前端代码还部署在以太坊之外,同时还包含很多没有上链的数据,所以大多数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 有尝试将其前端上传到 IPFS,但是 IPFS 和以太坊是不同的网络,在可靠性和去信任程度上完全不同。值得一提的是,IPFS的内容访问速度很慢,现在绝大多数用户还是在和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
理财体验金奖励!
It seems that you are attempting to access our services from a Restricted Location where Gate is unable to provide services. We apologize for any inconvenience this may cause. Currently, the Restricted Locations include but not limited to: the United States of America, Canada, Cambodia, Thailand, Cuba, Iran, North Korea and so on. For more information regarding the Restricted Locations, please refer to the User Agreement. Should you have any other questions, please contact our Customer Support Team.