# Web3Tube

By [connectweb3](https://paragraph.com/@connectweb3) · 2022-04-14

---

Web 3.0 的定义有很多，目前普遍公认的定义是下一代互联网，它解决了 Web 2.0 当前面临的问题，其中数据归个人所有。如今，世界各国政府都在通过立法来实现数据的个人所有权，但只要数据在其他企业的服务器中，就很难做到这一点。只有在技术上解决了数据存储问题，数据才能完全归个人所有。

这是一个不同的问题，因为个人不可能为他或她的数据设置单独的服务器，最好的方法是实施不受任何单一组织控制的数据存储系统，其中存储个人数据并且可以授权给用户，所有用户都可以从这个系统中读取数据。存储者根据存储数据的大小和时长来支付存储费用，而用户根据使用的流量来支付流量费用。如何构建这种不受单一组织控制、无需第三方即可实现支付的存储系统，由区块链技术的发展完美回答。

目前，Web 3,0 仍处于早期阶段，各种技术方案层出不穷，但除了以太坊通过智能合约实现去中心化金融之外，其他所有应用都处于概念阶段。普通大众乃至行业从业者都不确定目前的技术距离实际商业应用还有多远，还缺少哪些技术条件。这个问题的存在也让 Web 3.0 对大多数人来说显得陌生而遥远，在极端情况下他们会怀疑它只是一个骗局。

业界已经有很多项目尝试实现完整的Web 3.0项目，例如FileCoin推出的Web3.Storage，它尝试使用Filecoin作为存储后端。Solana 上还有大量的 Web 3.0 应用项目，例如去中心化即时通讯系统 Satellite.im，去中心化社交和流媒体平台 Wum.bo。然而，可以说这些项目本质上是实验性的，在商业应用环境中取得的成功有限。他们真的完全去中心化了吗？能否满足消费者的用户体验？这些项目能否经得起考验，是否能满足去中心化的要求，目前实施情况如何，是否还只是一个想法？Web3Tube 设计规范

极光FS将提供一个Web 3.0应用程序，可以使一个完整的商业应用程序尽可能在完全去中心化的条件下实现，让大众可以直观地评估Web 3.0应用程序的有效性。考虑到当前 Web 2.0 在 Internet 系统中的主导地位，决定使用 Web 3.0 技术改造 Web 2.0 应用程序。

这个去中心化的内容平台让大众体验Web 3.0及其应用效果和商业价值，也考验着各个去中心化技术模块的成熟度。这个概念被恰当地命名了；Web3Tube。

Web3Tube 的愿景是设计一个基于 Web 3.0 的流媒体应用程序，其中：

1.  用户直接使用他们的区块链钱包地址登录。
    
2.  用户可以为视频创建频道。
    
3.  用户可以在 Web3Tube 上发布自己的视频并为其定价。
    
4.  用户可以订阅其他人的频道以获得实时通知。
    
5.  用户可以直接购买别人定价的视频，并通过区块链直接付费。
    
6.  用户可以对视频发表评论，喜欢或不喜欢它，并将其推荐给其他人。
    

在这个过程中，上传的视频存储在去中心化存储中，通过去中心化的内容分发网络进行内容分发（即消费者观看视频时），以保证内容分发的性能和用户体验。目前，由于去中心化数据库技术还不成熟，需要做出妥协。

首先是使用中心化数据库通过 P2P 网络代理向外部提供服务。客户端访问该数据库时，通过P2P技术连接访问数据并获取结果。这样，数据库是中心化但反审查的，即除此数据库（应用程序）的提供者外，没有第三方组织可以阻止客户端访问数据库。未来，这个中心化的数据库会逐渐去中心化。 

Web3Tube 是使用多种去中心化技术构建的。例如AuroraFS用于去中心化存储和内容分发，SOL用于去中心化交易等。下图说明了不同技术栈之间的相互关系：去中心化数据库

目前，业内已经有一些项目带有去中心化数据库的概念。OrbitDB 是另一个去中心化数据库，其设计理念是通过 IPFS 的 Pub/Sub 机制在不同 IPFS 节点之间同步数据库文件。OrbitDB是一个点对点的数据库，每个节点都需要同步所有的数据库文件，不符合我们需要的server-side/light-node模式。Ties.DB 是第一个用于去中心化结构化数据存储的公共数据库，并允许高级搜索和文档修改。Tie.DB 定义了一组协议，用于实现基本的数据库操作，如添加、删除、修改和查询，以及去中心化网络上的基本权限管理。虽然每个 BigChainDB项目都使用 MongoDB 作为后端，多个节点使用 Tendermint 共识机制进行同步。当客户端请求数据时，它通过 HTTP 向 BigChainDB 的节点发送请求并获得响应。BigChainDB实际上是一种将数据库与区块链结合起来实现去中心化数据库的尝试。 

去中心化识别

去中心化身份识别是指一组完全去中心化的身份，允许个人或组织对其数字身份及其数据拥有完全的所有权、管理权和控制权。简而言之，用户可以通过一个可验证的数字身份证明自己的身份，并以此身份访问各种区块链项目。此外，账户的控制权掌握在用户手中，从而保证了安全性和隐私性。在 Web3Tube 中，去中心化的个人身份验证分为两部分。

1.  第一部分是Web3Tube的登录过程。钱包地址作为登录凭证，可以通过Dapp启动WalletConnect，让WalletConnect连接到系统中的钱包（目前绝大多数钱包都支持WalletConnect）
    
2.  第二部分是如何确保数据在生成时归用户所有。对于大型非结构化数据，例如生成的视频文件，将存储在去中心化的存储网络上；而小型结构化数据，如关注者、点赞信息等，将存储在去中心化的数据库中。在这部分，去中心化存储网络和结构化数据的个人存储由相应的技术模块实现。
    

在 Web3Tube 的实现过程中，这两部分也是分开实现的。第一部分在第一阶段实施，第二部分根据相应技术模块的实施计划和路线图实施。

传播去中心化

在当前的 P2P 系统中，只有两种通信方案：广播和基于 DHT 的数据传输。前者是向所有节点发送数据，而后者是根据DHT表向离目的地址更近的节点发送数据。目前区块链中的公链项目采用的是P2P广播技术，而IPFS/Swarm/BT等去中心化存储或内容分发项目采用的是基于DHT的数据传输技术。基于DHT的数据传输技术是一种没有安全保障的数据传输方案，无法在效率和可靠性之间取得平衡。

去中心化通信需要实现单播（数据从一个节点传输到另一个指定节点）和多播（数据从一个节点传输到指定的一组节点，或者从一组指定的节点得到某个数据响应）一个P2P网络。要在 P2P 网络上实现组播，需要在 P2P 网络上实现路由系统。与传统网络中路由系统的实现不同，P2P网络中路由系统的实现需要考虑节点的不可靠性，这意味着如果有奖励，任何节点都可能作弊以获得奖励。如果没有奖励，则没有节点有动力创建路由表条目。如果可以用很小的成本在网络中制造巨大的浪费，

当有去中心化通信系统时，去中心化存储、去中心化分发系统、去中心化数据库和区块链等不同系统可以相互通信。如下所示：通过去中心化的通信系统，实现不同去中心化子系统的互通。请注意，图中 Solana 和去中心化数据是通过 P2P 代理访问的，其中使用多播技术与代理进行互通，即客户端（内容生产者和消费者）通过向数据库和组发送多播消息进行通信SOLANA 所在的位置。通过 P2P 代理，可以避免 RPC 被阻塞时无法访问 SOLANA 网络和数据库的问题，确保内容生产者和消费者对这两个子系统都具有未经审查的访问权限。

在上图中，AuroraFS 没有通过代理访问，因为这两个子系统本身就是建立在这个去中心化的通信系统上的。显然，上述去中心化通信可以在需要时访问更多彼此不同的子系统。反之，任何子系统都可以将这种去中心化的通信系统作为基础通信，与其他子系统无缝连接。在实际实现中，多个子链通过这个去中心化网络中的多播功能相互通信。

在 Web3Tube 中，每个客户端都直接连接到 P2P 去中心化通信网络，并通过该网络的单播和组播功能与各个子系统进行通信，从而保证了数据的反审查传输。

存储去中心化

存储的去中心化是通过在 P2P 网络上存储数据来实现的。去中心化存储的核心问题是如何判断一个节点是否真正存储了数据。ARWeave采用了将所有数据都上链存储的方式，即每个节点存储所有数据，导致大量重复存储，大大增加了存储成本。为了解决这个问题，ARWeave 采用了随机同步的方法。每个节点不需要同步所有的区块信息，只需要同步网络中前一个区块和过去某个区块的信息。由于该方案尚未被证明是安全的，ARWeave 只是去中心化存储的一种尝试。另一个去中心化存储的项目是FileCoin，其核心思想是通过零知识证明，

为防止外部攻击，节点本身不存储数据。当在链上请求数据时，节点向存储数据的其他节点发出请求，然后将其返回到链上进行验证。为了解决这两个问题，Filecoin 采用大扇区多层加密货币封装的形式，扇区大小为 32GB 或 64GB，最终密封扇区通过 8 层加密货币形成。这样做的目的是在没有数据的情况下，重新生成足够长的证据以超过系统允许的证据生成时间，从而避免上述两种攻击。

在 FileCoin 中，这两种攻击的主要原因之一是允许用户自己封装数据以形成计算能力。例如，用户可以将全零或按照某种算法生成的数据封装起来，让节点不存储原始数据，而是通过算法重新生成数据，以证明何时需要验证。此外，没有流量付费机制。当需要验证时，一个节点可以免费从其他节点读取数据，然后生成证明来欺骗验证者。

在 AuroraFS 中，不允许对数据进行自封装。这意味着存储节点获得的数据只有在存储者和链发起存储请求，并由系统匹配到不同的存储节点后，才能获得链上的算力。该方案解决了用户产生的数据攻击问题，而流量支付解决方案解决了外部攻击问题。事实上，有了 AuroraFS p2p 云存储系统，这个问题通过提供授权访问得到了进一步的解决。

在 Web3Tube 中，AuroraFS 也用于存储大文件（视频、图片、音频）。当用户存储大文件数据时，首先会在链上发起存储请求。链上自动匹配后，匹配的存储节点从用户节点拉取数据，本地存储完成后记录在链上。

任何文件数据都存储在去中心化存储中的有限数量的节点中。当读取大量数据时，这些存储节点可能无法满足读取的带宽要求。因此，Web3Tube 选择使用 AuroraFS 来实现内容分发。

内容分发的去中心化

在传统互联网中，内容分发是通过CDN实现的，即将内容预先分发到全国（全球）不同的服务器上。当客户端请求访问时，只有根据客户端的IP地址和各个服务器的负载进行调度后，才能直接向对应的服务器请求数据。

CDN是目前流媒体实现高性能读取的标准方案，也是一个非常中心化的方案。在 Web 3 中，需要一个不仅去中心化而且可以实现分发加速的系统。

BT/IPFS本质上是一个去中心化的内容分发系统，通过P2P网络加速内容分发。它们之所以不是存储网络，是因为它们没有文件丢失保护机制，即检测某些文件的备份不足并自动添加备份的能力，也不能通过激励机制使数据源节点保持在线。与CDN相比，BT/IPFS分为两部分：保证数据有效性的回源节点和提高分发能力的分发节点。由于分发节点具有一定的数据缓存能力，当客户端的数据请求被从缓存中删除后，分发节点会从回源节点读取数据并转发给客户端。

由于 BT/IPFS 的设计方案，数据在被其他节点读取之前存储在原始节点的存储设备上，而数据信息（哈希，存储这个哈希的节点）被推送到 DHT 网络。当另一个节点要根据哈希读取某条数据时，它首先根据系统中的数据信息（哈希和存储这个哈希的节点）找到节点，然后连接到这个节点读取数据. 节点在读取数据时，也会将新的数据信息（哈希和本节点信息）推送到网络中。

这样BT/IPFS无法实现即时传输（即上传数据后可以立即断开数据源节点），无法适应流媒体的C/S读取模型。客户端节点读取数据后不会为其他节点提供读取服务）。 

Swarm (Bzz) 提出了另一种模型。BT/IPFS 将文件信息（hash 和存储这个hash 的节点）推送到DHT 网络，而Swarm 系统是一个预分发系统，直接将数据切片并推送到DHT 网络，即一旦数据上传，它将被分发到网络中的不同节点，每个节点在分发过程中都会缓存一次数据。与IPFS相比，Swarm可以实现即时传输，完全适应流媒体的C/S读取模型（因为它已经预先分发了）。Swarm 的缺点是，无论读取多少次数据，都需要预先分发。这个预分发过程会消耗额外的存储和带宽，如果这个预分发是免费的，

此外，在 P2P 网络中，节点提供带宽和实现流量分配的动机很重要。区块链是 P2P 网络的自然经济激励系统。区块链是 P2P 网络的自然经济激励系统。由于通过区块链技术向提供带宽的节点提供去中心化的奖励，节点愿意以低廉甚至免费的价格为应用提供内容分发服务，以便在早期获得带宽奖励。去中心化的内容分发系统利用区块链的金融特性为数据流量付费，快速创建并形成完整的生态系统。激励机制面临两个挑战：

一是在区块链上处理大量收据的问题。由于节点之间互不信任，所以实现信任的解决方案是，对于两个传输数据的节点，每传输一小段数据（例如1MB），数据的接收方就给服务方一个回执，这样如果接收方收到数据后不给回执，服务方可以与接收方断开连接，损失的只是一小部分数据的收入。该方案解决了两个节点之间互不信任的问题，但会产生大量的收据。假设一个 100Mb（约 10MB）带宽的节点全速工作，它每秒会生成 10 个收据。如果系统中有 1M 的服务节点全速工作，它们每秒会产生 10M 的收据。

第二个问题是关于作弊。如果这张收据作为服务节点提供服务并给予相应的奖励，则节点可以联合起来作弊。联合作弊者中的一些节点给其他节点任意收据，使系统认为这些服务节点产生了非常高的数据流量并给予相应的奖励，使这些服务节点获得不应该属于自己的流量。

任何具有奖励的去中心化内容分发系统都需要解决这两个问题。AuroraFS不仅解决了这两个问题，还解决了数据读取的性能问题和授权访问问题。Web3Tube 使用 AuroraFS 作为去中心化内容分发系统的解决方案。对于内容消费者来说，他们并不关心数据存储在哪里，而只需要读取预期的数据。因此，AuroraFS 的 SDK 直接集成在 Dapp 中，可以在需要的时候直接向 AuroraFS 请求数据。

交易去中心化

交易的概念分为狭义和广义。区块链可以实现交易的去中心化，但由于区块链存在不可能的三位一体（即去中心化、安全性和可扩展性——TPS），能够保证去中心化的区块链项目的TPS性能非常低。例如，BTC 每秒约 7-10 笔交易，ETH 约 15-20 笔交易。

在 Web3Tube 中，内容创作者设定价格，消费者购买，然后实时下载或播放，都属于上述交易。Web3Tube 可以使用上述任何一种新型公链来实现去中心化交易。对于 Web3Tube 的第一个发布版本，Solana 被用作去中心化交易的公共链。

总结

以上Web3Tube解决方案分析了一个完全去中心化的应用所需要的技术模块，分析并整合了最依赖去中心化技术的模块，构建了一个可以在商业环境中实现并具有应用价值的实用Web 3.0应用。 . 相反，这个应用程序可以用来测试当前Web 3.0技术模块的成熟度。

如前所述，其中一些技术模块不是那么去中心化的，或者说是不成熟的去中心化技术模块。未来，Web3Tube 可以再次选择不同的技术模块来构建和形成不同的分叉，这也代表了不同程度的去中心化成熟度。显然，成熟度最高的分叉可以代表整个 Web 3.0 技术的成熟度。

Web3Tube 是 Web 3 的一个令人兴奋和开创性的应用程序，它将很快以最完整的形式推出。第三阶段空投，鼓励新的和现有的节点运营商在 Web3Tube 环境中完成任务，将于 3 月 25 日开始，进入热身阶段。这将为进入活动阶段铺平道路，Web3Tube 上的活动、带宽和参与度都是促成 AUFS 代币空投的因素。贡献越高，空投越大。

有关设置节点和参与 Web3Tube/Phase III 空投活动的最新公告和信息可在 Aurora Gitbook 以及 Telegram、Discord 和 Twitter 上找到。

---

*Originally published on [connectweb3](https://paragraph.com/@connectweb3/web3tube)*
