BitChat: 去中心化的蓝牙和Nostr网状消息传递

BitChat: 去中心化的蓝牙和Nostr网状消息传递

BitChat 是一款用于 iOS 和 macOS 的去中心化点对点消息传递应用,消除了对中央服务器、电话号码或用户账户的需求。它采用双传输架构,使用户能够通过本地蓝牙网状网络进行离线通信,并通过 Nostr 协议进行全球通信。

混合消息架构

BitChat 利用两种互补的传输层来确保消息传递,无论是否有互联网可用。

蓝牙网状网络(离线)

对于离线通信,BitChat 实现了一个蓝牙低能耗(BLE)网状网络。该系统专为灾难场景、抗议活动或蜂窝和 WiFi 基础设施不可用的偏远地区而设计。

  • 多跳中继: 消息可以通过最多 7 次跳转的附近设备进行路由,扩展范围超越单个直接连接。
  • 安全: 端到端加密通过 Noise Protocol 处理,提供前向保密。
  • 效率: 应用使用紧凑的二进制协议和自适应功率 duty cycling 来优化移动设备的电池寿命。
  • 自动发现: 对等发现和连接管理会自动处理,无需手动配对。

Nostr 协议(互联网)

当互联网可用时,BitChat 利用 Nostr 协议提供全球连接。

  • 全球中继网络: 消息通过超过 290 个中继的分布式网络进行路由。
  • 基于位置的频道: BitChat 使用 geohash 坐标创建地理聊天室。这些按精度级别分类:
    • Block (7 chars): 城市街区级别
    • Neighborhood (6 chars): 社区/街区
    • City (5 chars): 城市级别
    • Province (4 chars): 州/省
    • Region (2 chars): 国家/大区域
  • 隐私: 私密消息使用 NIP-17 "礼物包装" 加密以在互联网上保持隐私。

智能消息路由

BitChat 采用智能路由系统来确定直接消息的最高效和最私密的传输方式:

  1. 蓝牙优先: 应用更倾向于使用已建立 Noise 会话的直接蓝牙连接,以获得最大的隐私和速度。
  2. Nostr 后备: 如果蓝牙不可用,应用会回退到使用收件人的 Nostr 公钥,并通过全球中继网络路由消息。
  3. 智能排队: 如果两种传输方式都不可用,消息将被排队,并在建立连接后自动投递。

技术特性和隐私

BitChat 采用“隐私优先”的理念设计,不需要持久标识符或账户。

  • 加密: 它为网状网络使用 Noise Protocol,为 Nostr 使用 NIP-17。
  • 数据管理: “紧急擦除”功能允许用户通过三击操作立即清除所有数据。
  • 性能: 应用包含 LZ4 消息压缩以减少数据开销。
  • 界面: 应用支持类似 IRC 的命令,例如 /slap/msg/who

社区见解和实际测试

用户讨论突显了去中心化网状网络的潜力和实际挑战。

网络密度挑战

在大型活动(Fusion Festival)上的实际测试表明,网络密度是应用有效性的关键因素。一位用户报告称在 80,000 名参与者中看到大约 20 台设备,并指出大多数跳数限制为 2,这阻止了消息在场地内传达到有意义的距离。

抗审查能力

社区成员指出,该项目曾受到政府实体的压力。有报道称印度政府曾请求从 GitHub 删除 BitChat,导致该项目出现在 Radicle 上,Radicle 是一个去中心化的代码协作平台。

用户体验

用户描述在没有 WiFi 或蜂窝服务的情况下发短信的体验是“超现实的”,强调了该工具对那些寻求集中式企业通信平台替代方案的人的价值。

Sources