bitchat 是什么?

bitchat 是一个去中心化的 P2P 即时通讯应用,它最酷的地方在于:完全不需要互联网。通过蓝牙低功耗(BLE)Mesh 网络,附近的设备可以自动组网、多跳中继消息,实现真正的离线通信。

项目目前在 GitHub 上已获得超过 28,000 Star,是近期最火的开源通信项目之一。采用 Unlicense(公共领域) 许可证,完全自由使用。

核心特性一览

特性 说明
🔌 双传输架构 蓝牙 Mesh(本地离线)+ Nostr 协议(互联网全球通信)
🔒 端到端加密 蓝牙使用 Noise Protocol,Nostr 使用 NIP-17
📡 自动组网 设备自动发现、多跳消息中继(最多 7 跳)
🕵️ 完全匿名 无需账号、无需手机号、无持久标识符
🌍 地理频道 基于 geohash 的地理位置聊天室
🚨 紧急擦除 三击屏幕瞬间清除所有数据
📱 全平台 iOS + macOS 原生支持

和传统聊天应用有什么区别?

微信/Telegram/Signal:
  用户 → 互联网 → 中心服务器 → 互联网 → 用户

bitchat(蓝牙模式):
  设备A → 设备B → 设备C → 设备D(多跳 Mesh,无需互联网)

bitchat(Nostr 模式):
  用户 → Nostr 中继网络(去中心化)→ 用户

关键区别:当基站断了、网络瘫了、或者你在深山老林里,bitchat 照样能用。

技术架构深度解析

bitchat 的精妙之处在于它的双传输混合架构——蓝牙负责本地通信,Nostr 负责全球互联,两者无缝切换。

蓝牙 Mesh 网络层

蓝牙 Mesh 是 bitchat 的核心创新。它利用 Bluetooth Low Energy(BLE)实现设备间的直接通信:

  • 自动发现:设备进入范围后自动识别附近节点
  • 多跳中继:消息可以在设备间跳转,最多 7 跳,大幅扩展通信范围
  • Noise Protocol 加密:端到端加密 + 前向保密,即使密钥泄露也无法解密历史消息
  • 二进制协议:针对 BLE 带宽限制优化的紧凑数据包格式
  • 自适应电源管理:智能占空比调节,延长电池续航

Nostr 协议层

当蓝牙不可用时,bitchat 会自动切换到 Nostr 协议进行互联网通信:

  • 290+ 全球中继节点:分布式网络确保可靠性
  • 地理位置频道:基于 geohash 坐标的本地社区聊天
  • NIP-17 加密:Gift-wrapped 私聊消息,保护互联网隐私
  • 临时密钥:每个 geohash 区域使用全新的加密身份

智能消息路由

bitchat 的消息路由策略非常聪明:

优先级 1:蓝牙直连(最快、最私密)
    ↓ 不可用
优先级 2:Nostr 中继(全球覆盖)
    ↓ 不可用
优先级 3:消息队列(等待连接恢复后自动投递)

安装与快速上手

iOS / macOS 安装

bitchat 是 Apple 生态原生应用,可以直接从 App Store 下载:

App Store 搜索 "Bitchat Mesh" 即可安装

从源码构建(开发者)

如果你想自己编译或参与开发:

# 克隆仓库
git clone https://github.com/permissionlesstech/bitchat.git
cd bitchat

# macOS 用户一键运行
brew install just
just run

# 或者用 Xcode 打开
open bitchat.xcodeproj

从源码构建需要注意几个配置步骤:

# 1. 复制本地配置模板
cp Configs/Local.xcconfig.example Configs/Local.xcconfig

# 2. 在 Local.xcconfig 中添加你的 Developer Team ID
# 3. 手动更新 Entitlements:
#    将 group.chat.bitchat 替换为 group.<你的TeamID>

第一次使用

打开 bitchat 后,你会看到一个 IRC 风格的终端界面——这正是它的特色:

╔══════════════════════════════════╗
║         bitchat v2.0             ║
║   bluetooth mesh chat            ║
╠══════════════════════════════════╣
║ [mesh] 欢迎加入 mesh 网络!      ║
║ [mesh] 发现 3 个附近设备         ║
║                                  ║
║ <alice> 嘿,有人吗?             ║
║ <bob>   在的!信号很好           ║
║ <you>   测试消息,离线也能发     ║
║                                  ║
║ > /help 查看所有命令              ║
╚══════════════════════════════════╝

IRC 风格命令速查

bitchat 采用了经典的 IRC 命令风格,老网民会非常熟悉:

# 基础命令
/msg <用户名> <消息>    # 发送私聊消息
/who                    # 查看在线用户
/slap <用户名>          # 经典 IRC 互动( slap 一下)
/help                   # 查看所有可用命令

# 频道与地理
/join <频道名>          # 加入频道
/geo                    # 查看当前地理频道
/location <精度>        # 设置地理频道精度
                        #   block      = 街区级别
                        #   neighborhood = 社区级别
                        #   city       = 城市级别
                        #   province   = 省/州级别
                        #   region     = 国家/大区域

# 安全
/wipe                   # 紧急擦除所有数据(三击也可触发)

进阶用法

配置地理位置频道

bitchat 的地理频道是一个杀手级功能——你可以和同一区域内的 bitchat 用户自动聊天,无需互加好友:

# 设置为城市级别(附近几公里的人都能看到)
/location city

# 设置为街区级别(只有非常近的人)
/location block

# 查看当前所在地理频道
/geo

地理频道基于 geohash 编码,精度从粗到细:

精度 geohash 长度 覆盖范围 适用场景
region 2 字符 国家级 全国讨论
province 4 字符 省/州级 省内交流
city 5 字符 城市级 同城社区
neighborhood 6 字符 社区级 neighborhood 交流
block 7 字符 街区级 面对面活动

私聊加密原理

bitchat 的私聊加密根据传输方式自动选择最优方案:

蓝牙模式(Noise Protocol):

1. 双方建立 BLE 连接
2. 执行 Noise Protocol 握手
3. 生成会话密钥(前向保密)
4. 所有消息端到端加密传输

Nostr 模式(NIP-17 Gift Wrap):

1. 获取对方 Nostr 公钥
2. 消息用对方公钥加密
3. 外层再用临时密钥包装(gift wrap)
4. 通过 Nostr 中继投递,中继无法解密内容

紧急安全机制

在敏感场景下(如抗议活动、灾难现场),bitchat 提供了快速擦除功能:

  • 三击擦除:连续点击屏幕三次,瞬间清除所有聊天数据、密钥和身份信息
  • 无持久标识:每次连接使用临时身份,不留痕迹
  • 本地存储:所有数据仅存设备本地,不上传任何服务器

实战场景

场景 1:户外活动 / 登山徒步

在没有手机信号的山里,bitchat 可以让队友之间保持通信:

# 所有队员打开 bitchat
# 自动发现附近设备,组建 Mesh 网络
# 消息通过多跳中继,即使队员分散也能通信

# 设置同城频道,方便联系附近的人
/location city

场景 2:大型活动 / 音乐节

演唱会、音乐节现场基站经常过载,bitchat 完全不受影响:

# 设置街区级别频道
/location block

# 和附近的人聊天、分享位置
/msg friend 我在舞台左边,找到了吗?

场景 3:灾难应急通信

地震、洪水等灾害导致基站瘫痪时,bitchat 可以成为救命工具:

# 完全离线工作,不需要任何基础设施
# 多跳 Mesh 让消息传递更远
# 端到端加密保护求救信息隐私

场景 4:隐私敏感场景

不想被监控的通信需求:

# 完全匿名,无需手机号注册
# 蓝牙模式不经过任何服务器
# 三击擦除,快速清除证据

与其他去中心化通信工具对比

特性 bitchat Briar Bridgefy Meshtastic
蓝牙 Mesh ✅(LoRa)
互联网回退 ✅ Nostr ✅ Tor
端到端加密
匿名无需注册
iOS 支持
地理频道
开源协议 Unlicense GPL 部分开源 GPL
GitHub Stars 28K+ 5K+ 3K+ 4K+

bitchat 的独特优势在于蓝牙 + Nostr 双模架构地理频道功能,这在同类工具中是独一无二的。

总结

bitchat 是一个设计精巧的去中心化通信工具,它证明了:在基础设施失效的场景下,我们仍然可以保持连接。

适合谁? - 🏕️ 户外爱好者(登山、露营、探险) - 🎪 大型活动参与者(音乐节、展会、体育赛事) - 🔐 隐私极客(追求完全匿名通信) - 🆘 应急通信需求者(灾难救援、应急准备) - 👨‍💻 开发者(对 Mesh 网络和去中心化协议感兴趣)

项目地址: github.com/permissionlesstech/bitchat

下载: iOS/macOS 直接在 App Store 搜索 "Bitchat Mesh"

在一个所有通信都依赖中心化服务器的时代,bitchat 提醒我们:真正的通信自由,是不需要任何人的许可。