去年 12 月, 我们宣布了 Waku Network 。
Waku 网络是第一个去中心化的隐私保护网络,为点对点消息传递提供拒绝服务 (DoS) 保护。它旨在通过实施创新协议和技术来增强点对点通信的隐私和安全性。
让我们更深入地了解 Waku Network 的原因和内容。
如果您一直关注Waku或Status ,您可能会熟悉 Waku 的起源。 Status 移动应用程序是作为 web3 超级应用程序创建的,它是以太坊生态系统的门户,利用了三个原始支柱:用于共识的以太坊、用于存储的 Swarm 和用于通信的 Whisper。
Status 开发团队尝试使用 Whisper 构建 Status,但该协议有根本性的限制,特别是对于资源受限的设备(例如移动电话)。 Waku 作为 Whisper 的继承者而诞生,从其缺陷中吸取教训,提供适合移动设备和浏览器的可扩展的点对点通信网络。
Waku 旨在克服以下挑战:
可扩展性:Waku 旨在支持数百万用户,同时保持上述原则;这需要经过深思熟虑的设计和测试。
上述所有特性意味着在设计 Waku 时还需要克服其他问题:
Waku Network 如何帮助交付上述属性?
让我们回顾一下网络中组合的不同 Waku 协议以及它们如何帮助我们实现这一壮举。
对于任何可靠且去中心化的点对点系统,必须有一种机制来在该系统中找到新的对等点或节点,通常称为对等点发现。
Waku 使用discv5,类似于以太坊。对 ENR 进行了一些小幅增强,以使 Waku 节点能够进行广告:
他们启用的协议
他们可能有替代的多地址,例如,让浏览器通过 WebSocket 连接到所述节点。
Discv5 是去中心化的,可以防止潜在的女巫攻击(攻击者试图包围受害者的节点以提供受操纵的网络视图)。
这有助于实现匿名性、隐私性和抗审查性。
由于所公布的服务协议,它使移动电话和浏览器能够找到可以为它们提供服务的节点。
与以太坊类似,Waku 使用 libp2p-gossipsub。这带来了几个好处:
匿名性:当节点从其网格中的其他节点转发消息时,并且各个消息上不存在元数据(例如,没有纯文本签名),这提供了公平的匿名性,因为观察者不可能知道其邻居是否发起或转发一个消息。当与去中心化的对等发现机制(例如discv5)结合使用时,这可以发挥作用。
我们命名了 Waku 对 gossipsub 的使用、协议和网络。瓦库中继。
Gossipsub 的缺点之一是网络中的每个节点都会接收和发送网络的每条消息,并进行一定程度的放大。人们可以看到这如何限制了可扩展性:不能期望通过家庭互联网连接传输网络的全部流量。
为了解决这个问题,使用分片而不是使用一个 gossipsub 网络。 Waku 网络被细分为几个不同的消息路由子网络或分片。目前,Waku 网络分为八个分片。这意味着 Waku 应用程序的任何用户只能中继一个分片或整个网络的八分之一(大约)的流量。
八本来就是一个很小的、任意的数字。我们的理论分析表明,一个分片可以支持大约 10k 活跃用户,同时保持大约 4Mbps 的平均带宽需求,这意味着整个网络需要 80k。
我们正在努力进行进一步的模拟以证实我们的假设。我们还在网络上邀请开发人员和用户来测试该理论。目的是随着时间的推移增加网络中的分片数量。
由于 Discv5 的增强功能,节点可以在连接到其他对等点之前知道它们正在服务哪些分片。
分片的一个问题是用户和应用程序必须知道要使用什么分片。
一个应用程序可以任意决定他们想要使用哪个分片,但这可能需要大量工作,特别是在添加新分片时。这也是开发商要做的又一个决定;我们希望让开发者体验尽可能简单。它还允许开发人员构建分布在多个分片上的应用程序,而无需将分片选择委托给用户。
自动分片是一种简单的协议,它根据应用程序在分片上调度消息。
Waku 具有通用性和隐私保护性,这意味着可以传输任何类型的有效负载。因此,“垃圾邮件”没有严格的定义。无论该消息包含meme还是私人 DeFi 的 zk 笔记,Waku 都不应该知道内容;元数据和数据应保持私有。
因此,存在有人将千兆数据推送到网络的风险。这可能是不同级别的问题:
其他资源:内存使用量与流量相关,商店服务的磁盘空间也与流量相关。
因此,我们没有定义“垃圾邮件”消息的样子,而是在网络上引入了速率限制,以实现 Waku 的公平使用,并限制每个分片的带宽使用量。这是通过 RLN(即速率限制无效器)来完成的,它限制给定发布者发送消息的速率。当前设置为 1 消息/秒。
结合最大消息大小(150kB)和最大发布者数量(80k,待定),我们可以假设每个分片的最大带宽使用量(大约 10Mbps)。
以抗审查和私密的方式限制出版商的速率是很困难的;这就是我们使用零知识技术的原因:
用户将其 RLN 凭证推送到智能合约(目前在以太坊 Sepolia 测试网上)。
节点跟踪合约上的所有注册会员资格。
发送消息时,用户将带有当前纪元(时间戳以秒为单位)的 RLN 证明附加到消息中。
节点可以验证证明,而无需将用户的以太坊地址(在智能合约上使用)与发送的消息关联起来,从而保持匿名性。
如果用户尝试发送超过 1 条消息/秒,节点可以检测到这一情况并丢弃多余的消息或垃圾邮件,从而保护网络。
最后,Waku 对于手机和网络浏览器等资源受限的设备有何用处? Waku 定义了许多[请求-响应协议( https://rfc.vac.dev/spec/10/#re questreply-domain),使此类设备能够访问 Waku 网络,而无需始终在线或消耗大量数据带宽,即不参与 Waku 中继网络。
轻推送协议(链接到文档)使轻客户端能够发送要转发到 Waku 中继网络的消息,并确认来自远程节点的接收。过滤器协议使轻客户端能够订阅远程对等点,并且仅请求消息的子集,而不是在分片上传输的所有消息。
最后,存储协议使轻客户端和中继节点能够检索可能丢失的历史消息。
虽然我们已经定义了所需的属性和技术,但了解 Waku 网络的潜在用例也很重要。本期目前描述了几个 USP(独特价值主张),我们将进一步记录该主题。除了构建任何机器对机器或人对人的通信应用程序之外,还有一些值得注意的用例:
我们已经描述了 Waku 所需的特性以及 Waku 网络如何实现这些特性。这是否意味着 Waku 具有抗审查性、私密性、可持续性和可扩展性?不完全的。
引导是我们没有提到的所有对等网络的一个组成部分:新节点如何找到网络中的其他节点?我们使用以太坊技术进行引导(ENR + DNS 发现)。然而,这项技术可以更加去中心化。我们打算在 2024 年底或 2025 年左右提高这一潜力。
一般来说,网络需要去中心化才能实现所需的属性。虽然有些技术可以实现这种去中心化(我们正在努力改进不能实现这种去中心化的部分),但这个问题有一个社会因素。如果 Waku 团队是唯一一个运行节点,那么从本质上来说,该网络不能被认为是去中心化的,因此不能被视为抗审查等。
为了解决这个问题,我们需要推动 Waku 网络的采用,这样我们就可以建立良好的节点运营商和开发人员基础,在不依赖 Waku 团队的情况下运行节点。
我们去年加大了这方面的力度,今年还将继续。另一方面是为节点运营商提供货币激励来运行节点,以便网络能够自我维持。我们没有这样的协议;我们正在构建第一个 PoC。
Waku Network 在这里发挥着重要作用。一旦这样的协议可用,开发者/用户和运营商就需要一个共同的(市场)场所来找到彼此; Waku Network 就是这样一个地方。
Waku 旨在实现具有特定属性的主权通信。 Waku 网络是实现这一目标并创建一个通用的去中心化网络的重要里程碑,开发人员可以在该网络上进行构建,并且我们可以添加更多协议。虽然我们不能说 Waku 已经达到了它今天的目标,但它已经是无需许可的,并且在多个层面上都是去中心化的。
我们现在不仅致力于将缺失的部分添加到协议中,而且还在推动 Waku 的采用,使其事实上去中心化,从而使每个人都能够抵制私人和审查制度。
如果您想加入志同道合的社区,致力于为数百万用户提供点对点通信,请加入 Waku Discord或在X上关注我们。
订阅我们的每月通讯,直接在您的收件箱中接收我们的新闻。
如果该技术适合您,请查看我们的空缺职位或破解我们的一些赏金。