跳至内容
返回 Nymchat

知识库 关闭互联网

蓝牙网状网络

无需互联网、手机服务和任何基础设施即可发送消息 善良。附近的设备通过蓝牙 LE 进行链接并相互中继,以便消息到达 人们通过在无线电范围之间跳跃来超越无线电范围。

网格是什么

网格是与中继一起运行的第二个传输,而不是单独的应用程序或单独的 身份。公共频道和私人消息都可以处理它,应用程序决定哪个 自行采取的路线:在线发送通过互联网进行,并在以下情况下回退到蓝牙 它不可用,而只能通过无线电到达的对等点无论如何都留在网格上。

这是一个洪水网络,每个设备都将数据包传递给它可以听到的设备,其跳跃限制为 7两个人无法直接听到对方,只要他们之间有设备链,仍然交换消息。

在此基础上,每对同伴都运行一个 噪音XX 握手并讨论其 自己的加密会话。数据包被填充,当数据包很大时,数据包会被碎片化,所以数据包的大小 您发送的内容尽可能少地说明它是什么。

洪水只会到达那些在那一刻倾听的人,所以三个东西携带了过去的信息:设备。 记住最近的公共历史 把它传递给那些错过它的人, 附近的同行携带封闭的邮件 对于一个距离之外的人,任何没有互联网发送的东西都是 发表后 当互联网回来的时候。

打开它

打开蓝牙网状网络面板并按 打开。接下来会发生什么取决于 你正在运行它。

Nymchat 蓝牙网格面板,显示网格状态、配对设备、网格上的对等点和无线电日志。
网格面板:状态、配对设备、听到的对等点和实时无线电日志。

在 Android 和 iOS 上

该应用程序同时运行两个蓝牙角色——为自己做广告并扫描其他人 - 因此任何两个附近的设备都会连接起来,无论其中一个设备注意到另一个设备。格兰特 当询问蓝牙权限时,它会自行找到对等点。

在浏览器中

Web 应用程序通过 Web 蓝牙在 Chromium 浏览器上加入同一网格:Chrome、Edge、 歌剧和勇敢。在不实现网络蓝牙的 Safari 和 Firefox 上,mesh 控件完全隐藏而不是提供,然后失败。

浏览器作为叶子加入

浏览器只能带蓝牙 中央 作用:它不能为自己做广告,所以 其他设备无法发现它。它向外连接到附近的电话并通过 他们。您可以通过浏览器自己的设备选择器选择每个设备一次,然后 自行重新连接。两个浏览器无法直接相互链接。

与 Bitchat 共享网格

Nymchat 实现 Bitchat的 网络上的网状协议,逐字节 — 相同的 GATT 服务和特征 UUID、相同的数据包标头、相同的消息类型、相同的默认跃点限制。两人 应用程序不通过任何东西桥接;它们只是在同一个网格上,并且是一个 Nymchat 设备 Bitchat 设备发现对方并直接交换加密消息。

通告数据包还可以携带 nostrLink:从网格对等点到的签名链接 他们真正的Nostr身份。当有人在场并进行验证时,您通过蓝牙认识的同伴 显示为您在中继中认识的同一个人。

下面描述的历史和传递邮件也是Bitchat的格式,所以这两款应用不仅在同一个网格上共存,而且还会同步对方的公共历史,并携带对方的信封。

历史:Mesh Carries

洪水向任何在那一刻的无线电范围内的人发送公共信息. 走进房间一分钟后,它消失了. 因此,每个设备都保持了最近听到的公共信息的窗口 - 最多 6小时,被限制在1000个包 - 并与它遇到的每个同行和解那个窗口,大约每一个 15秒無論你缺少什麼,他們會派你去;無論他們缺少什麼,你會派他們去。

比较是用一个紧凑的概率集(一个Golomb编码的过滤器),所以调和一千条消息花费大约一千字节,而不是十六。

窗口存储在设备上,所以它可以幸存于重新启动,这就是让手机作为一个城市呼喊器的作用:从来没有彼此距离的两组之间行走,或者几个小时后返回,并将对方错过的东西传递给对方。

只有公共信息

只有公共交通是以这种方式传输的 - 消息已经可见到任何人在无线电范围内. 私人消息,握手和加密会话从未成为其中的一部分。

其他人发送的邮件

如果你写信给一个不在无线电范围内的人,没有人可以传递消息,Nymchat将其密封到该人的密钥上,并将密封的副本发送给几位同行。 接近,他们携带它,并交付它,如果他们遇到接收者。

该副本对于携带它的任何人来说都是不透明的,其唯一的路由信息是标签。 每日旋转 并且只能由已经知道收件人的密钥的人计算,所以在不同日期为同一个人写的两封信看起来与其他人无关,只有收件人才能打开一封信 - 当他们这样做时,他们就会知道是谁写的,因为发件人的身份被密封在里面。

副本不会倍增. 每个运营商持有预算,当它将份额交给其他人时将其减半,所以消息传播到少数运营商,然后停止。 24小时,而且只有已被验证身份的同行才会被给予任何。

在可能的情况下,Nymchat将信封密封到一个 一次性钥匙 每个设备都发布了一小批这些,签名,以便它们不能被伪造,并且该批旅行的方式是相同的传送历史 - 这就是使它可用,而它的所有者不在,正是当他们的邮件正在被传送时。

Deletion 等待 48小时,因为多个运营商可能持有相同封信的副本,他们随时抵达,他们的运营商碰巧会见到你;删除第一个将使每个后续副本看起来像丢失的邮件。

航母学到什么

交给某人信封告诉他们一个消息存在,你发送了它. 从来没有内容,从来没有它是为了谁 - 但事实。

没有互联网的播放

您在离线时发送的消息立即通过无线电传出,它可以到达附近的任何人 - 没有其他人,因为在传输方面它从未存在过。

任何已经通过Bluetooth接收的用户都不会看到它两次:重新发布的副本携带一个标记,允许他们的设备识别它。 24小时一个从不做它被标记为失败,而不是离开寻找发送。

然而,它不只是等待,同时,Nymchat要求附近的同行谁仍然有一个信号,以其名义发布消息 - 房间中的一个连接是足够的,每个人在它。 该消息是由您的设备签署,然后它离开,所以携带的同行是一个邮箱:它不能改变一个字,它发布的内容,传输器会拒绝它,如果它尝试。 阅读 通过一个有一个邻居的渠道。

這是一個簡短,永遠不是唯一的副本。沒有什麼可以告訴您的裝置,鄰居是否實際上成功發布,所以訊息無論如何都會排列為您的連線。如果兩個副本都起作用,兩個副本都是相同的字母為字母的訊息,而傳輸將保持一個。

幽灵模式

网状设备是一种可以反复播报自身信息的无线电,这正是它变得简单的原因 跨地点和会话进行跟踪。幽灵模式是选择加入的答案。

当它开启时, 每一个 公告携带的标识符被一次性替换 值,并且它们全部一起旋转:

  • 噪声静态密钥 — 对等 ID 和指纹从中派生;
  • Ed25519 签名密钥;
  • 广告中的蓝牙名称;
  • 昵称;
  • 宣布的 nostrLink,它保持真实但变得短暂,因此同行仍然可以 没有任何问题可以解决您的 npub 问题。

旋转发生在大约 15分钟。退休身份 保持可解密状态长达 8个纪元 所以迟到的答复仍然到达,并且 对话开始时,幽灵被永久固定在网格上,而不是默默地 迁移到您真实密钥下的中继。

当幽灵模式处于活动状态时,头像和横幅共享被拒绝:重复的图像链接两个 纪元在一起的速度比任何密钥都快。

上面的两条交付途径都关闭了,出于同样的原因。幽灵设备从来没有要求任何人携带邮件 - 一个邮递员在你旋转后仍然持有信封是两种身份之间的线条。 并连接到网格的对话永远不会再发布到传输器上,因为那份副本会被签署用你的真实密钥,并准确地告诉对方幽灵是谁。

幽灵模式不是匿名的

它使设备更难跟踪。它不会使其变得不可追踪。蓝牙 硬件地址由操作系统控制,而不是由应用程序控制,并且定时和 社交模式保持相关性——同一个人,在同一地点,与同一个人交谈 相同的人,相同的时间。

限制

  • 范围是蓝牙范围。 十几米在开放,少通过墙壁。网格通过跳跃扩展到达,而不是尖叫声更大。网格面板中的同行列表会告诉你它是什么: ping a peer 并报告圆圈之旅和他们实际上有多少跳跃。
  • 带宽较小。 帧的上限为 512 字节和更大的消息 是支离破碎的。它是为文本而不是媒体而构建的。
  • 交付是尽力而为。 七跳洪水没有承诺,也没有延伸它的路径:携带的历史只有当你遇到一个保持它的设备时才会到达你,而邮递员只有当它碰巧遇到收件人时才会交付。
  • 浏览器是叶子,如上所述,并取决于附近的电话。
  • 收音机消耗电池,因为扫描和广告不断 是网格发挥作用的原因。