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 采用智能路由系统来确定直接消息的最高效和最私密的传输方式:
- 蓝牙优先: 应用更倾向于使用已建立 Noise 会话的直接蓝牙连接,以获得最大的隐私和速度。
- Nostr 后备: 如果蓝牙不可用,应用会回退到使用收件人的 Nostr 公钥,并通过全球中继网络路由消息。
- 智能排队: 如果两种传输方式都不可用,消息将被排队,并在建立连接后自动投递。
技术特性和隐私
BitChat 采用“隐私优先”的理念设计,不需要持久标识符或账户。
- 加密: 它为网状网络使用 Noise Protocol,为 Nostr 使用 NIP-17。
- 数据管理: “紧急擦除”功能允许用户通过三击操作立即清除所有数据。
- 性能: 应用包含 LZ4 消息压缩以减少数据开销。
- 界面: 应用支持类似 IRC 的命令,例如
/slap、/msg和/who。
社区见解和实际测试
用户讨论突显了去中心化网状网络的潜力和实际挑战。
网络密度挑战
在大型活动(Fusion Festival)上的实际测试表明,网络密度是应用有效性的关键因素。一位用户报告称在 80,000 名参与者中看到大约 20 台设备,并指出大多数跳数限制为 2,这阻止了消息在场地内传达到有意义的距离。
抗审查能力
社区成员指出,该项目曾受到政府实体的压力。有报道称印度政府曾请求从 GitHub 删除 BitChat,导致该项目出现在 Radicle 上,Radicle 是一个去中心化的代码协作平台。
用户体验
用户描述在没有 WiFi 或蜂窝服务的情况下发短信的体验是“超现实的”,强调了该工具对那些寻求集中式企业通信平台替代方案的人的价值。