paint-brush
Waku Network:扩展 P2P、注重隐私的通信by@logos
731
731

Waku Network:扩展 P2P、注重隐私的通信

Logos10m2024/02/27
Read on Terminal Reader

Waku 网络是第一个去中心化的隐私保护网络,为点对点消息传递提供拒绝服务 (DoS) 保护。它旨在通过实施创新协议和技术来增强点对点通信的隐私和安全性。
featured image - Waku Network:扩展 P2P、注重隐私的通信
Logos HackerNoon profile picture

去年 12 月, 我们宣布了 Waku Network


Waku 网络是第一个去中心化的隐私保护网络,为点对点消息传递提供拒绝服务 (DoS) 保护。它旨在通过实施创新协议和技术来增强点对点通信的隐私和安全性。


让我们更深入地了解 Waku Network 的原因和内容。

起源

如果您一直关注WakuStatus ,您可能会熟悉 Waku 的起源。 Status 移动应用程序是作为 web3 超级应用程序创建的,它是以太坊生态系统的门户,利用了三个原始支柱:用于共识的以太坊、用于存储的 Swarm 和用于通信的 Whisper。


Status 开发团队尝试使用 Whisper 构建 Status,但该协议有根本性的限制,特别是对于资源受限的设备(例如移动电话)。 Waku 作为 Whisper 的继承者而诞生,从其缺陷中吸取教训,提供适合移动设备和浏览器的可扩展的点对点通信网络。

挑战/所需的性能

Waku 旨在克服以下挑战:

  • 通用消息传递:Waku 旨在提供能够传输任意有效负载的协议和网络。虽然 Waku 最初是为聊天应用程序 Status 创建的,但其目标是足够通用,以便在 Waku 上构建任何去中心化通信或信号应用程序。


  • 临时消息传递:Waku 旨在解决实时通信问题,其目的是提供公平的延迟,使一个或多个用户能够交换小数据有效负载。这与 IPFS 或其他去中心化存储系统形成鲜明对比,后者提供了一种以延迟和响应能力为代价存储大量数据的方法。


  • 抗审查:Waku 旨在提供抗审查解决方案,外部参与者无法阻止用户访问 Waku 基础设施。但对于应用程序开发人员来说,他们也能够以不作恶的心态进行开发,因为他们没有王国的钥匙,也没有能力让用户失去平台。


  • 注重隐私:为应用程序开发人员提供在用户数据和元数据收集方面遵循不作恶原则的能力。这意味着,即使他们想要或受到压力,他们或任何第三方也无法从用户那里收集社交图或活动模式等元数据。


  • 匿名:与隐私类似,这是用户不将个人身份信息 (PII) 与他们在 Waku 网络或使用该网络的应用程序上的活动联系起来的能力。这里考虑的 PII 涉及网络(IP 地址)、区块链(例如以太坊地址)和路由(消息关联)。


  • 资源受限设备:如前所述,在设计 Waku 时,我们努力考虑移动设备和浏览器等环境,以使开发人员能够为这些平台构建 DApp,并提供尽可能多的上述属性。


  • 可扩展性:Waku 旨在支持数百万用户,同时保持上述原则;这需要经过深思熟虑的设计和测试。


上述所有特性意味着在设计 Waku 时还需要克服其他问题:

  • DOS保护:确保网络不会被消息淹没,导致资源较少的用户被引导离开网络。


  • 网络可持续性和激励:如何确保网络中有足够的资源使浏览器、移动设备等设备能够访问网络?


  • 去中心化:Waku 需要在多个层面进行去中心化才能实现这些特性。我们如何保持公平的去中心化水平,以确保这些财产随着时间的推移而保留?

瓦库网络

Waku Network 如何帮助交付上述属性?


让我们回顾一下网络中组合的不同 Waku 协议以及它们如何帮助我们实现这一壮举。

同行发现

对于任何可靠且去中心化的点对点系统,必须有一种机制来在该系统中找到新的对等点或节点,通常称为对等点发现


Waku 使用discv5,类似于以太坊。对 ENR 进行了一些小幅增强,以使 Waku 节点能够进行广告:


  • 它们正在运行的分片(请参阅消息路由 - 分片
    • 他们启用的协议

    • 他们可能有替代的多地址,例如,让浏览器通过 WebSocket 连接到所述节点。


Discv5 是去中心化的,可以防止潜在的女巫攻击(攻击者试图包围受害者的节点以提供受操纵的网络视图)。


这有助于实现匿名性、隐私性和抗审查性。


由于所公布的服务协议,它使移动电话和浏览器能够找到可以为它们提供服务的节点。

消息路由 - Gossipsub

与以太坊类似,Waku 使用 libp2p-gossipsub。这带来了几个好处:

  • 与 Whisper 相比,改进了带宽性能:在 gossipsub 中,节点形成一组向其发送消息的邻居(网格)。给定节点只会尝试与其他节点保持连接并主动交换消息。减少每条消息的上传或下载次数。


  • 可靠性:gossipsub 具有内置冗余,在分散的对等网络中运行时提供了相当的可靠性,在该网络中,没有节点可以被信任是可靠的或行为良好的。


  • 匿名性:当节点从其网格中的其他节点转发消息时,并且各个消息上不存在元数据(例如,没有纯文本签名),这提供了公平的匿名性,因为观察者不可能知道其邻居是否发起或转发一个消息。当与去中心化的对等发现机制(例如discv5)结合使用时,这可以发挥作用。


我们命名了 Waku 对 gossipsub 的使用、协议和网络。瓦库中继。

消息路由-分片

Gossipsub 的缺点之一是网络中的每个节点都会接收和发送网络的每条消息,并进行一定程度的放大。人们可以看到这如何限制了可扩展性:不能期望通过家庭互联网连接传输网络的全部流量。


为了解决这个问题,使用分片而不是使用一个 gossipsub 网络。 Waku 网络被细分为几个不同的消息路由子网络或分片。目前,Waku 网络分为八个分片。这意味着 Waku 应用程序的任何用户只能中继一个分片或整个网络的八分之一(大约)的流量。


八本来就是一个很小的、任意的数字。我们的理论分析表明,一个分片可以支持大约 10k 活跃用户,同时保持大约 4Mbps 的平均带宽需求,这意味着整个网络需要 80k。


我们正在努力进行进一步的模拟以证实我们的假设。我们还在网络上邀请开发人员和用户来测试该理论。目的是随着时间的推移增加网络中的分片数量。


由于 Discv5 的增强功能,节点可以在连接到其他对等点之前知道它们正在服务哪些分片。

消息路由-自动分片

分片的一个问题是用户和应用程序必须知道要使用什么分片。


一个应用程序可以任意决定他们想要使用哪个分片,但这可能需要大量工作,特别是在添加新分片时。这也是开发商要做的又一个决定;我们希望让开发者体验尽可能简单。它还允许开发人员构建分布在多个分片上的应用程序,而无需将分片选择委托给用户。


自动分片是一种简单的协议,它根据应用程序在分片上调度消息。

消息路由 - RLN 中继

Waku 具有通用性和隐私保护性,这意味着可以传输任何类型的有效负载。因此,“垃圾邮件”没有严格的定义。无论该消息包含meme还是私人 DeFi 的 zk 笔记,Waku 都不应该知道内容;元数据和数据应保持私有。


因此,存在有人将千兆数据推送到网络的风险。这可能是不同级别的问题:

  • 带宽使用:这可能会导致用户的带宽被占用并影响其他服务(流媒体、质押)或意外账单。


  • 连接性:如果节点没有足够的带宽来发送/接收 gossipsub 层上的所有消息,则其行为可能会被可能与其断开连接的其他节点视为不正确。


  • 可靠性:如果流量高于可用带宽,节点可能无法可靠地发送和接收消息。


  • 其他资源:内存使用量与流量相关,商店服务的磁盘空间也与流量相关。


因此,我们没有定义“垃圾邮件”消息的样子,而是在网络上引入了速率限制,以实现 Waku 的公平使用,并限制每个分片的带宽使用量。这是通过 RLN(即速率限制无效器)来完成的,它限制给定发布者发送消息的速率。当前设置为 1 消息/秒。


结合最大消息大小(150kB)和最大发布者数量(80k,待定),我们可以假设每个分片的最大带宽使用量(大约 10Mbps)。


以抗审查和私密的方式限制出版商的速率是很困难的;这就是我们使用零知识技术的原因:

  1. 用户将其 RLN 凭证推送到智能合约(目前在以太坊 Sepolia 测试网上)。


  2. 节点跟踪合约上的所有注册会员资格。


  3. 发送消息时,用户将带有当前纪元(时间戳以秒为单位)的 RLN 证明附加到消息中。


  4. 节点可以验证证明,而无需将用户的以太坊地址(在智能合约上使用)与发送的消息关联起来,从而保持匿名性。


  5. 如果用户尝试发送超过 1 条消息/秒,节点可以检测到这一情况并丢弃多余的消息或垃圾邮件,从而保护网络。

为大部分离线和资源受限的设备提供服务

最后,Waku 对于手机和网络浏览器等资源受限的设备有何用处? Waku 定义了许多[请求-响应协议( https://rfc.vac.dev/spec/10/#re questreply-domain),使此类设备能够访问 Waku 网络,而无需始终在线或消耗大量数据带宽,即不参与 Waku 中继网络。


轻推送协议(链接到文档)使轻客户端能够发送要转发到 Waku 中继网络的消息,并确认来自远程节点的接收。过滤器协议使轻客户端能够订阅远程对等点,并且仅请求消息的子集,而不是在分片上传输的所有消息。


最后,存储协议使轻客户端中继节点能够检索可能丢失的历史消息。

Waku Network 的价值主张

虽然我们已经定义了所需的属性和技术,但了解 Waku 网络的潜在用例也很重要。本期目前描述了几个 USP(独特价值主张),我们将进一步记录该主题。除了构建任何机器对机器或人对人的通信应用程序之外,还有一些值得注意的用例:


  • 无基础设施 DApp:结合各种去中心化技术(Waku、以太坊、IPFS)来部署 DApp,而无需向中心化托管提供商付费。


  • 轻客户端对去中心化网络的抗审查访问:使用请求响应协议使轻客户端能够访问您的点对点网络,而无需依赖集中式、可审查的 Web 网关。


  • 信号网络:使用 Waku 网络寻找其他对等点并协商特定参数以形成您自己的点对点,无论是否 Waku,具有不同规则(更高的速率限制等)的网络。

我们还是空白吗?

我们已经描述了 Waku 所需的特性以及 Waku 网络如何实现这些特性。这是否意味着 Waku 具有抗审查性、私密性、可持续性和可扩展性?不完全的。


引导是我们没有提到的所有对等网络的一个组成部分:新节点如何找到网络中的其他节点?我们使用以太坊技术进行引导(ENR + DNS 发现)。然而,这项技术可以更加去中心化。我们打算在 2024 年底或 2025 年左右提高这一潜力。


一般来说,网络需要去中心化才能实现所需的属性。虽然有些技术可以实现这种去中心化(我们正在努力改进不能实现这种去中心化的部分),但这个问题有一个社会因素。如果 Waku 团队是唯一一个运行节点,那么从本质上来说,该网络不能被认为是去中心化的,因此不能被视为抗审查等。


为了解决这个问题,我们需要推动 Waku 网络的采用,这样我们就可以建立良好的节点运营商和开发人员基础,在不依赖 Waku 团队的情况下运行节点。


我们去年加大了这方面的力度,今年还将继续。另一方面是为节点运营商提供货币激励来运行节点,以便网络能够自我维持。我们没有这样的协议;我们正在构建第一个 PoC。


Waku Network 在这里发挥着重要作用。一旦这样的协议可用,开发者/用户和运营商就需要一个共同的(市场)场所来找到彼此; Waku Network 就是这样一个地方。

结论

Waku 旨在实现具有特定属性的主权通信。 Waku 网络是实现这一目标并创建一个通用的去中心化网络的重要里程碑,开发人员可以在该网络上进行构建,并且我们可以添加更多协议。虽然我们不能说 Waku 已经达到了它今天的目标,但它已经是无需许可的,并且在多个层面上都是去中心化的。


我们现在不仅致力于将缺失的部分添加到协议中,而且还在推动 Waku 的采用,使其事实上去中心化,从而使每个人都能够抵制私人和审查制度。


如果您想加入志同道合的社区,致力于为数百万用户提供点对点通信,请加入 Waku Discord或在X上关注我们。


订阅我们的每月通讯,直接在您的收件箱中接收我们的新闻。


如果该技术适合您,请查看我们的空缺职位或破解我们的一些赏金

您还可以通过运行您自己的 Waku 节点来帮助确保我们保持去中心化!