Waku网络:技术概述

  • waku__
  • 发布于 2024-03-27 23:58
  • 阅读 9

本文全面概述了Waku网络,它是一个去中心化且保护隐私的点对点消息传递网络,旨在通过创新协议和技术增强点对点通信中的隐私和安全性。文章详细介绍了Waku网络的起源、面临的挑战、关键特性(如消息路由、分片、抗审查性、隐私性等)以及各组件如何协同工作以实现这些特性,同时讨论了Waku网络的潜在用例以及未来发展方向。

Waku网络全面概述


去年十二月,我们宣布了Waku网络

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

让我们更深入地探讨一下Waku网络的原因和内容。

起源

如果你一直在关注Waku或Status,你可能熟悉Waku的起源。

Status移动应用程序的创建是为了成为一个web3超级应用,一个通往以太坊生态系统的门户,它利用了最初的三个支柱:以太坊用于共识,Swarm用于存储,Whisper用于通信。

Status开发团队曾尝试使用Whisper构建Status,但该协议存在根本性的局限性,尤其是对于资源受限的设备,如手机。

Waku诞生于Whisper的继承者,从其缺陷中吸取教训,以提供适合移动设备和浏览器的可扩展的点对点通信网络。

挑战/期望的属性

Waku旨在克服以下挑战:

  • 通用消息传递:Waku旨在提供协议和一个网络,以实现任意payload的传输。虽然Waku最初是为聊天应用程序Status而创建的,但目标是足够通用,以便在Waku上构建任何去中心化通信或信令应用程序。
  • 短暂消息传递:Waku旨在解决实时通信的问题,旨在提供公平的延迟,使一个或多个用户能够交换小型数据payload。这与IPFS或其他去中心化存储系统形成对比,后者提供了一种以牺牲延迟和响应能力为代价来存储大量数据的方法。
  • 抗审查性:Waku旨在提供一种抗审查的解决方案,外部参与者无法阻止用户访问Waku基础设施。而且,应用程序开发者能够以一种无法作恶的心态进行构建,他们没有掌控一切的钥匙,也没有能力取消其用户的平台资格。
  • 注重隐私:为应用程序开发者提供一种在用户数据和元数据收集方面以无法作恶原则进行操作的能力。这意味着,即使他们想或受到压力,他们或任何第三方都无法从其用户那里收集元数据,如社交图谱或活动模式。
  • 匿名性:与隐私类似,这是用户不将个人身份信息(PII)与其在Waku网络或使用该网络的应用程序上的活动联系起来的能力。这里考虑的PII是指网络(IP地址)、区块链(例如,以太坊地址)和路由(消息关联)。
  • 资源受限设备:如前所述,在设计Waku时,会努力考虑移动和浏览器等环境,以使开发人员能够为这些平台构建DApp,并尽可能多地提供上述属性。
  • 可扩展性:Waku旨在在保持上述原则的同时支持数百万用户;这需要经过周密的设和测试。

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

  • DOS保护:确保网络不会被消息淹没,导致资源较少的用户被踢出网络。
  • 网络可持续性和激励:我们如何确保网络中有足够的资源,使浏览器和移动设备等设备能够访问网络?
  • 去中心化:Waku需要在多个层面上实现去中心化,以实现这些属性。我们如何维持公平的去中心化程度,以确保这些属性随着时间的推移而保持不变?

Waku网络

Waku网络如何帮助实现上述属性?

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

节点发现

对于任何点对点系统来说,要实现可靠和去中心化,必须有一种机制来查找该系统中的新节点或节点,通常称为节点发现

Waku使用discv5,类似于以太坊。已经对ENR进行了小的增强,以使Waku节点能够广播:

  • 他们正在运行的分片(参见消息路由 - 分片
  • 他们启用的协议
  • 他们可能拥有的替代multiaddr,例如,供浏览器通过WebSocket连接到所述节点。

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

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

由于正在广播的协议服务,它使手机和浏览器能够找到可以为其服务的节点。

消息路由 - Gossipsub

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

  • 与Whisper相比,提高了带宽性能:在gossipsub中,节点形成一组邻居(mesh),它们向这些邻居发送消息。给定的节点只会尝试维护连接并与其他节点主动交换消息。减少了每次上传或下载消息的次数。
  • 可靠性:gossipsub具有内置的冗余,在去中心化的点对点网络中运行时,它具有公平的可靠性,在这种网络中,没有节点可以被信任是可靠或行为良好的。
  • 匿名性:由于节点转发来自其mesh中其他节点的消息,并且各个消息上不存在元数据(例如,没有纯文本签名),因此这提供了相当的匿名性,因为观察者无法知道他们的邻居是发起还是转发了消息。当与去中心化的节点发现机制(如discv5)结合使用时,这会起作用。

我们将Waku对gossipsub的使用称为协议和网络。Waku Relay.

消息路由 - 分片

Gossipsub的一个缺点是,网络中的每个节点都会接收和发送网络中的每条消息,并进行一些放大。

人们可以看到这如何限制可扩展性:不能期望从家庭互联网连接传输整个网络的流量。

为了解决这个问题,我们使用分片而不是使用一个gossipsub网络。Waku网络被细分为几个不同的消息路由子网络,或分片。

目前,Waku网络被分成八个分片。

这意味着任何Waku应用程序的用户都只会中继一个分片的流量,或者大约是整个网络的八分之一。

八个是一个小的、任意的起始数字。我们的理论分析表明,一个分片可以支持大约1万个活跃用户,同时保持大约4Mbps的平均带宽要求,这意味着整个网络需要8万个用户。我们正在进行进一步的模拟以确认我们的假设。我们还在网络上引导开发人员和用户以测试该理论。

目标是随着时间的推移增加网络中的分片数量。

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

消息路由 - 自动分片

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

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

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

消息路由 - RLN Relay

Waku是通用且保护隐私的,这意味着可以传输任何类型的payload。因此,对“垃圾邮件”没有严格的定义。无论消息包含meme还是用于私有DeFi的zk note,Waku甚至都不应该知道其内容; 元数据和数据应保持私有。

因此,存在有人将千兆字节的数据推送到网络的风险。这可能在不同层面上成为一个问题:

  • 带宽使用:这可能导致用户的带宽被占用并影响其他服务(流媒体、staking)或产生意外账单。
  • 连接性:如果一个节点没有足够的带宽来在gossipsub层上发送/接收所有消息,那么它的行为可能会被其他可能断开连接的节点视为不正确。
  • 可靠性:如果流量高于可用带宽,那么节点可能无法可靠地发送和接收消息。
  • 其他资源:内存使用与流量相关,存储服务的磁盘空间也是如此。

因此,我们没有定义“垃圾邮件”消息是什么样子,而是在网络上引入了速率限制,以实现Waku的公平使用,每个分片的带宽使用都有上限。

这是通过RLN(即速率限制Nullifier)完成的,它限制了给定发布者发送消息的速率。

目前设置为1 msg/s。再加上最大消息大小(150kB)和最大发布者数量(80k,待定),我们可以假定每个分片的最大带宽使用量约为10Mbps。有关最大带宽的更多信息,请点击此处

以抗审查和私密的方式对发布者进行速率限制是困难的; 这就是我们使用零知识技术的原因:

  1. 用户将其RLN凭据推送到智能合约(目前在以太坊Sepolia测试网上)。
  2. 节点跟踪合约上的所有已注册成员身份。
  3. 发送消息时,用户将具有当前epoch(以秒为单位的时间戳)的RLN证明附加到消息。
  4. 节点可以验证该证明,而无法将用户的以太坊地址(在智能合约上使用)与正在发送的消息相关联,从而保持匿名性。
  5. 如果用户尝试发送超过1 msg/s,节点可以检测到这一点并删除多余的消息或垃圾邮件,从而保护网络。

为主要离线和资源受限设备提供服务

最后,Waku如何对资源受限的设备(如手机和Web浏览器)有用?

Waku定义了许多请求-响应协议,以使此类设备能够访问Waku网络,而无需始终在线或消耗大量带宽,即无需参与Waku Relay网络。

轻推送协议发送一条消息,该消息将被转发到Waku Relay网络,并获得来自远程节点的接收确认。

过滤器协议使轻客户端能够订阅远程对等方,并且仅请求消息的子集,而不是在分片上传输的所有消息。

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

Waku网络的价值主张

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

  • 无基础设施DApp:结合各种去中心化技术(Waku、以太坊、IPFS)来部署DApp,而无需支付中心化托管服务提供商。
  • 轻客户端对去中心化网络的抗审查访问:使用请求-响应协议使轻客户端能够访问你的点对点网络,而无需依赖中心化的、可审查的Web网关。
  • 信令网络:使用Waku网络查找其他对等方并协商特定参数,以形成你自己的点对点、Waku或非Waku网络,该网络具有不同的规则(更高的速率限制等)。

我们“准备好了”吗?

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

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

通常,网络需要去中心化才能实现所需的属性。虽然某些技术可以实现这种去中心化(并且我们正在努力改进未去中心化的部分),但这个问题具有社会组成部分。如果Waku团队是唯一运行节点的团队,那么本质上,该网络不能被认为是去中心化的,因此也不能被认为是抗审查的等。为了解决这个问题,我们需要推动Waku网络的采用,这样我们就可以构建一个良好的节点运营商和开发人员基础,他们在无需依赖Waku团队的情况下运行节点。

我们去年加大了这方面的努力,今年将继续这样做。

另一方面,为节点运营商提供经济激励来运行节点,以便网络能够实现自我维持。我们没有这样的协议;我们正在构建第一个PoC。

Waku网络在这里发挥着重要作用。一旦有了这样的协议,就需要一个通用的(市场)场所供开发人员/用户和运营商相互寻找;Waku网络将是这样一个场所。

结论

Waku旨在实现具有特定属性的主权通信。Waku网络是实现这一目标并创建一个通用的、可去中心化的网络(开发人员可以在该网络上构建)以及我们可以添加更多协议的关键里程碑。

虽然我们不能说Waku今天已经实现了它的所有目标,但它已经在多个层面上具有无需许可和可去中心化的特性。

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


如果你对Waku的开发路线图有疑问,或者想加入一个志同道合的社区,专注于将点对点通信带给数百万用户,请加入Waku Discord或在X上关注我们。

  • 原文链接: blog.waku.org/2024-03-26...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
waku__
waku__
江湖只有他的大名,没有他的介绍。