RepoDaily · 2026-07-27 · Security tool

bitchat:把互联网当作可选项的蓝牙 mesh 通讯应用

#2 Security tool Swift +1,198 permissionlesstech/bitchat 打开仓库

bitchat 用蓝牙 LE mesh 叠加 Nostr 中继,提供无需账号、IRC 风格的聊天体验,在网络中断、被干扰或处于敌对环境时仍可使用。

项目类型Security tool
最适合离线优先的通讯用户、现场与灾害响应团队,以及希望在没有手机号、没有服务器的前提下使用 IRC 风格聊天的隐私用户。
风险等级中等 —— 志愿维护,Nostr 私信封装为私有格式,且 mesh 元数据暴露已在文档中说明。
评估时间1–2 小时:从 App Store 安装,通过 BLE 跑通 `/who` 和 `/msg`,并阅读 WHITEPAPER.md 与 SECURITY.md。

核心问题: BLE 加 Nostr 的双传输架构,是否比标准端到端加密通讯更契合你的威胁模型?

89/100

RepoDaily 采用评分

RepoDaily 将该项目的采用分评为 89/100(强):分数来自文章来源、安装路径、生产风险、差异化、许可证清晰度以及 AI/Agent 适配度。

基于 RepoDaily 来源和采用说明的方向性评分,不是基准测试。风险: 中
100证据质量

包含 5 个来源、覆盖 4 类来源;如有 RepoDaily 独有模块,会进一步提高证据分。

92可安装/可试用性

检测到 7 个工作流步骤、6 个下一步动作,以及 1 个命令/安装信号。

70维护可信度

趋势热度为 +1,198 stars;如内容中有 release、issue 或维护信号,会提高维护可信度。

96生产准备度

采纳风险标记为 medium,并包含 7 条安全说明与 4 条跳过条件。

100差异化

3 个机会视角、4 个替代方案,以及 3 个类型化模块支撑差异化判断。

82许可证清晰度

文章中包含许可证来源或许可证表述。

60Agent / AI 适配度

文章正文和元数据中检测到 2 个 AI/Agent 相关信号。

项目概览

bitchat 是一款用 Swift 编写的去中心化点对点通讯应用,以 iOS 和 macOS 通用应用形式发布。它的核心是双传输架构:本地蓝牙低功耗 mesh 用于离线通讯,Nostr 协议用于互联网可达时的全球通讯。README 直接把它定位成 “the side-groupchat”——没有账号、没有手机号、没有中心服务器。

离线路径是 bitchat 最具差异化的部分。设备之间通过蓝牙 LE 互相发现,并在最多 7 跳之内转发消息,因此一条消息可以越过单个无线电的范围,且完全不依赖基础设施。当互联网可用时,应用会回退到 Nostr 中继——README 称已接入超过 290 个——并使用 geohash 坐标构建覆盖全球的地理位置频道。

安全并非事后补丁。私信在 mesh 上使用 Noise Protocol,在 Nostr 上使用 BitChat 自有的加密信封。应用提供熟悉的 IRC 风格命令(`/slap`、`/msg`、`/who`),内置三连击紧急擦除,并通过 LZ4 压缩和自适应电池模式优化性能。仓库还遭遇过下架要求,README 因此提供了 docs/VERIFYING-A-BUILD.md 中的每次发布哈希清单。

解决什么问题

  • 主流通讯应用依赖中心服务器和手机号身份,在基础设施不可用或注册环节被监控时即失效。
  • 灾害救援、抗议现场和野外作业往往没有任何稳定的互联网通路。
  • 许多“隐私”应用仍通过手机号发现、推送 token 注册或中继侧账号绑定泄漏元数据。
  • 既有的 mesh 工具往往平台割裂、难以校验,或在 iOS 与 macOS 上无支持。

工作原理

  1. 从 App Store(bitchat-mesh,id6748219622)安装,或按 docs/VERIFYING-A-BUILD.md 校验后从源码自行构建。
  2. 生成本地身份密钥——不需要手机号,也不需要账号。
  3. 附近设备通过蓝牙 LE 互相发现并组成 mesh;消息按文档所述最多经 7 跳在设备间转发。
  4. mesh 上的私信使用 Noise Protocol 会话,且对在线会话提供前向安全性。
  5. 当互联网可达时,应用回退到 Nostr 中继,把私有载荷封装进 kind-1059 事件中的 BitChat 私有信封。
  6. 加入基于 geohash 的地理频道,或使用 `/who`、`/msg`、`/slap` 等 IRC 风格命令交互。
  7. 需要时三连击触发紧急擦除,立即清除全部本地数据。

架构解读:双传输到底如何衔接

  • 蓝牙 LE mesh 负责离线通讯,支持节点发现、多跳转发,文档明确最大 7 跳。
  • mesh 私信使用 Noise Protocol,对在线会话提供前向安全性;存储转发的邮件则不带前向安全封装,README 指向白皮书作了说明。
  • Nostr 传输连接超过 290 个中继以实现全球可达,并使用 geohash 坐标构建地理频道。
  • Nostr 私有流量使用 BitChat 私有信封,封装在 kind-1059 事件里,其 `v2:` 前缀内容是 BitChat 自有的 XChaCha20-Poly1305 构造,明确不兼容 NIP-17、NIP-44 或 NIP-59。
  • 每个 geohash 区域使用临时密钥,降低跨位置的可链接性。
  • 性能优化包括 LZ4 消息压缩、自适应电池模式,以及为蓝牙 LE 限制优化的二进制封包格式。

上手路径:在信任之前先校验构建

README 明确说明:除了 App Store 或你自行校验过的源码构建之外,来自其他任何地方的编译产物都无法核对。请从 App Store 列表 apps.apple.com/us/app/bitchat-mesh/id6748219622 安装,或克隆 permissionlesstech/bitchat,按 docs/VERIFYING-A-BUILD.md 把源码与每次发布的哈希清单对比。

在蓝牙范围内的两台设备上打开 `mesh #bluetooth` 频道,运行 `/who` 列出附近节点,用 `/msg` 发送私信以确认 Noise 会话建立。然后关闭两台设备的网络,确认消息仍能跨跳转发。最后再恢复网络,确认 geohash 频道能够触达 Nostr 中继。三连击紧急擦除应放在最后测试,以便确认所有本地数据都被销毁。

维护风险:志愿项目,范围有限

  • SECURITY.md 直言 bitchat 由志愿者维护,目标响应时间在一周以内,且没有漏洞赏金。
  • 修复只发布到最新的 App Store 版本和 `main` 分支,旧版本不再维护。
  • 仓库曾遭遇下架要求;仓库或发布页一旦消失,可能出现无法核对的镜像。
  • 据 SECURITY.md,历史上确认的协议与密钥处理问题通常在数天内修复。

谁适合关注

适合关注

  • 需要在蜂窝与 Wi-Fi 不可靠时仍可沟通的现场团队、灾害响应小组和活动工作人员。
  • 希望在没有手机号、账号和中心服务器前提下通讯的隐私用户。
  • 希望在 mesh 通讯应用中得到原生 IRC 风格命令界面的 iOS 和 macOS 用户。
  • 希望审计 Noise-over-BLE 与私有 Nostr 信封格式的安全研究者。

可以先跳过

  • 需要保证多日消息送达与服务端搜索的团队。
  • 需要与其他 Nostr 客户端互通 NIP-17、NIP-44 或 NIP-59 的用户。
  • 需要供应商 SLA、付费支持或正式漏洞赏金计划的组织。
  • 不能接受 BLE 邻近可被观测、mesh 广播内容公开属于既定设计的用户。

风险与注意事项

对离线优先场景的威胁模型契合度高,但志愿维护和私有 Nostr 信封限制了规模化与互操作。

  • SECURITY.md 明确为志愿维护,且无漏洞赏金。
  • Nostr 私有信封为 BitChat 自有,明确不兼容 NIP-17、NIP-44、NIP-59。
  • mesh 广播、昵称、公钥与 geohash 频道内容按设计即公开。
  • 旧版本不受支持,只有最新 App Store 版本和 `main` 接收修复。
  • 存在下架要求,用户在信任二进制前必须按 docs/VERIFYING-A-BUILD.md 校验构建。
  • mesh 上使用 Noise Protocol 进行端到端加密,在线会话具备前向安全性。
  • Nostr 私信使用 BitChat 私有信封——kind-1059 事件内的 XChaCha20-Poly1305 自有构造,而非 NIP-44。
  • 按设计不需要账号、手机号或中心服务器。
  • 三连击紧急擦除列入 SECURITY.md 的范围内,必须真正销毁其声称销毁的数据。
  • 降级路径——任何将流量从加密路径悄然转为明文的行为——明确属于漏洞范围。
  • Tor 路由正确性与 vendored 二进制的供应链完整性均被列为范围内的安全属性。
  • 公开的 mesh 广播、BLE 邻近可观测、mesh 泛洪与第三方中继行为被明确列为范围外,而非漏洞。

替代方案比较

方案适用场景代价
Briar
需要成熟的跨平台 mesh 通讯,配合 Tor 互联网传输与长文论坛时。免费,GPL 授权。
Signal
希望使用审计最充分的端到端加密通讯,且不需要离线 mesh 时。免费。
Nostr 客户端(如 Damus)
优先考虑与更广泛 Nostr 生态原生互通 NIP-17/NIP-44/NIP-59 时。免费。
Bridgefy
需要商用蓝牙 mesh 通讯,覆盖更多设备并有付费支持时。免费,含商业套餐。

这个趋势说明了什么

离线优先的现场通讯

BLE mesh 最多 7 跳、不依赖互联网,契合灾害响应、活动和野外作业等基础设施不可用的场景。

在飞行模式下进行双机测试,确认通过 `mesh #bluetooth` 的 `/who` 与 `/msg` 能送达消息。

抗审查的群组聊天

无账号、无手机号,并可回退到 290+ 个 Nostr 中继,降低了监控与下架的攻击面。

开启网络后确认 geohash 频道可达 Nostr,再用三连击擦除验证状态被清除。

安全研究面

BitChat 私有信封与 Noise-over-BLE 路径是具体的协议与密钥处理审计目标。

阅读 WHITEPAPER.md,再按 SECURITY.md 要求通过 GitHub 私密漏洞报告提交发现。

下一步建议

安装、校验,并跑一次双机 BLE 烟雾测试

从 App Store 或已校验的源码构建开始,然后在任何敏感场景下先充分测试离线路径。

  1. 从 App Store(bitchat-mesh,id6748219622)安装,或按 docs/VERIFYING-A-BUILD.md 校验后从 `main` 构建。
  2. 阅读 WHITEPAPER.md 了解身份与元数据暴露,阅读 SECURITY.md 了解范围内外的界定。
  3. 在蓝牙范围内的两台设备上打开 `mesh #bluetooth`,运行 `/who`、`/msg` 和 `/slap`。
  4. 关闭两台设备的网络,确认多跳转发仍能送达。
  5. 恢复网络,加入 geohash 频道,确认 Nostr 回退能触达中继。
  6. 最后测试三连击紧急擦除,确认所有本地数据被销毁。

RepoDaily 判断

bitchat 是一款极具辨识度的 Swift 通讯应用:离线走 BLE mesh,在线走 Nostr,IRC 风格命令,没有账号。其私有 Nostr 信封、志愿维护以及文档中坦承的 mesh 元数据暴露,使其非常适合离线优先与抗审查场景,但并不适合作为主流加密聊天的直接替代品。

信息来源