引言
"政府不喜欢 BitChat 这类技术,并且想要让它下线。"
— Jack Dorsey,2026 年 7 月 24 日发布在 X 上的原文
这是"每日一个开源项目"系列的第168篇文章。今天的主角是 BitChat——Jack Dorsey 开发的去中心化 P2P 加密通信应用。
BitChat 在技术上是一个有意思的系统:蓝牙 Mesh 组网、Nostr 协议互联、端到端加密、无账号无服务器,断网状态下依然可以通信。这个项目已经积累了 30.4k Stars,但让它最近突然进入全球视野的,不是一篇技术文章,而是一张政府下架令截图。
2026 年 7 月 23 日,印度内政部通过印度网络犯罪协调中心(I4C)向 GitHub 发出通知,要求在 3 小时内下架 BitChat 的三个代码仓库,理由是该应用"可能被反国家分子、恐怖分子和有组织犯罪团伙用于规避合法监控"。
背后的直接触发因素:数万名印度学生在新德里 Jantar Mantar 广场抗议 NEET 考试泄题丑闻,政府一周内五次切断抗议现场的移动网络,而抗议者开始用 BitChat 通过蓝牙继续协调。
你将学到什么
- BitChat 的双轨传输架构:蓝牙 Mesh(断网)+ Nostr(有网)
- 7 跳蓝牙 Mesh 路由的工作原理
- XChaCha20-Poly1305 + Noise Protocol 的加密设计
- 印度 NEET 抗议事件背景:考试丑闻如何演变成政治危机
- 印度政府封禁 BitChat 的法律依据和争议点
- GitHub 的回应和数字权利组织的立场
前置知识
- 了解 P2P 网络和加密通信的基本概念
- 了解 Nostr 协议(或有概念)
- 对数字权利和网络管控议题有基本认知
项目背景
项目简介
BitChat 的核心理念用三句话概括:无账号、无电话号码、无中央服务器。
它是一个双模式通信应用:
- 蓝牙 Mesh 模式:设备之间直接通信,不需要互联网,最多 7 跳中继
- Nostr 模式:通过 290+ 个全球分布的 Nostr 中继服务器通信
两种模式无缝切换,用户感知不到底层传输在用哪条路径。
作者/团队介绍
- 开发者: Jack Dorsey(Twitter/X 联合创始人,Square/Block 创始人)
- 组织: permissionlesstech
- License: Unlicense(公有领域,最宽松的开源协议,代码完全属于公众)
- 技术栈: Swift,iOS + macOS 通用
项目数据
- ⭐ GitHub Stars: 30,400+
- 🍴 Forks: 4,700+
- 📄 License: Unlicense(公有领域)
- 📱 平台: iOS、macOS
核心技术架构
双轨传输
用户发送消息
↓
├── 有互联网 → Nostr 协议
│ 290+ 中继节点全球分布
│ 去中心化,无单点故障
│
└── 无互联网(断网/关机/地下室)→ 蓝牙 Mesh
蓝牙 LE
最多 7 跳中继
覆盖半径随人群密度扩展关键设计:BitChat 的私信信封格式是自定义协议,不兼容标准的 NIP-17/44/59 格式。这个选择换来了更强的隐私性——消息结构不符合任何已知的监控工具分析模式。
7 跳蓝牙 Mesh 路由
蓝牙 LE 在空旷环境下的直连距离大约 10-30 米,但 BitChat 支持 7 跳 Mesh 转发:
Alice [BLE] → 中继1 [BLE] → 中继2 [BLE] → ... → Bob
(每个设备同时是终端和路由节点)
理论覆盖:7 × 30m = 210m+(取决于人群密度)
实际效果:密集人群中覆盖范围显著扩展在 Jantar Mantar 广场的抗议现场,数千人聚集的密度使这个机制格外有效——每一部运行 BitChat 的手机都自动成为 Mesh 网络的节点。
加密设计
私信(P2P):
Noise Protocol 握手(身份验证 + 密钥协商)
XChaCha20-Poly1305 对称加密
→ 前向保密(每次会话独立密钥)
→ 认证加密(AEAD,同时保证机密性和完整性)
→ 抗重放攻击
频道消息:
LZ4 压缩(减小蓝牙传输体积)
可选端到端加密其他设计细节
- 紧急擦除:三次快速点击立即清除所有本地消息和密钥
- 基于地理位置的频道:使用 geohash 坐标(精度从街区到国家级可选)
- 自适应电量模式:根据电池状态调整蓝牙扫描频率
- IRC 风格命令:
/msg私信、/who查看在线、/slap等
快速开始
安装
BitChat 目前是 iOS + macOS 原生应用(Swift),通过 GitHub 源码或 TestFlight 获取。
# 克隆源码
git clone https://github.com/permissionlesstech/bitchat.git
# 用 Xcode 打开
open bitchat.xcodeproj使用模式
本地通信(完全断网):
- 打开应用,不需要注册
- 附近运行 BitChat 的设备自动组成 Mesh
- 加入或创建频道(可用 geohash 创建基于位置的频道)
全球通信(有网):
- 应用自动切换到 Nostr 模式
- 通过 290+ 全球中继节点通信
- 无需账号,使用密钥对身份
印度为何要封它
事件背景:NEET 泄题引发的学潮
2026 年,印度爆发了规模最大的学生抗议运动之一。直接导火索是 NEET(全国医学入学考试)泄题丑闻:
- NEET 是印度学生进入医学院的唯一通道,竞争极为激烈
- 2026 年 5 月,考试结果发布前突然取消,原因被证实是试题外泄
- 一名 22 岁备考生在消息公布后数天内自杀
- 多名学生因压力和绝望相继轻生
- 学生群体将矛头指向教育腐败和官员渎职,要求教育部长辞职
抗议演变为更大范围的反腐运动,参与者自称"蟑螂人民党"(Cockroach Janta Party,CJP)——蟑螂在印度语境里象征顽强生存、打不死。
断网和 BitChat 的出现
印度政府一周内五次切断 Jantar Mantar 广场的移动网络,试图阻断抗议者的协调能力。
结果适得其反——部分抗议者开始使用 BitChat,通过蓝牙 Mesh 在断网状态下继续通信。这让政府意识到传统断网手段对这类应用无效。
政府的下架令
2026 年 7 月 23 日,内政部通过 I4C 向 GitHub 发出通知,核心内容:
- 要求:3 小时内下架三个 BitChat 仓库
- 理由:该应用可被"反国家分子、恐怖分子和有组织犯罪团伙"用于"规避合法监控"
- 技术关切:应用可在互联网断网期间运行,没有中央服务器可用于追踪
Jack Dorsey 将通知截图发布在 X 上,附文:
"印度政府不喜欢 BitChat 这类技术,并且想要让它下线。"
法律依据的争议
印度政府通常援引《信息技术法》第 69A 条(IT Act Section 69A)封锁内容,该条款允许政府以国家安全、公共秩序等理由要求平台下架内容。
但多个数字权利组织指出这次援引有明显问题:
互联网自由基金会(IFF)的声明(2026 年 7 月 24 日):
"封锁 BitChat 在 GitHub 上的代码是违宪和威权主义的。删除代码仓库不会从已安装应用的手机上删除这个应用,反而阻止了公众对底层代码的审查。"
**SFLC.in(软件自由法律中心)**的意见:
第 69A 条的设计是针对特定违法内容,而不是针对某种软件的功能特性。"这个应用在断网时仍能工作"本身不构成可封锁的理由——这个逻辑等同于封锁所有支持离线功能的通信软件。
Access Now(获取渠道组织):
在互联网断网期间阻止离线通信工具,可能制造"通信全面断绝"的局面,侵犯宪法保障的基本权利。
GitHub 的回应
GitHub 没有公开确认收到通知。截至通知发出后,BitChat 的仓库在印度仍然可以访问。
更大的背景:围绕去中心化通信的张力
BitChat 事件不是孤立的。这是一个反复出现的冲突模式:
政府的立场:通信基础设施必须有"合法拦截"能力,这是情报机构和执法机构的基本要求。去中心化、加密、无服务器的通信工具,系统性地排除了这种能力。
技术社区和数字权利组织的立场:断网是对言论自由和集会自由的直接压制。在断网期间仍能通信的工具保护的是基本人权,不只是抗议权利。
Unlicense 协议的含义:BitChat 使用公有领域协议,这意味着任何人都可以自由复制、修改、重新分发,包括代码本身。即使 GitHub 仓库被下架,代码已经存在于全球数千个克隆中,理论上无法彻底删除。
这个设计决定在当前的政治事件中显示出了它的意图。
项目地址与资源
- 🌟 GitHub: permissionlesstech/bitchat
- 🌐 Nostr: Jack Dorsey 在 Nostr 上的账号发布更新
- 📰 事件报道: TechCrunch · The Hindu · Indian Express
总结
BitChat 是一个在技术上相当精心的项目:蓝牙 Mesh + Nostr 双轨设计使它在任何网络条件下都能工作,XChaCha20-Poly1305 加密和无服务器架构使它在隐私保护上达到了相当高的水准,Unlicense 协议使它在法律上无法被真正"删除"。
印度封禁事件的意义不只在于一个应用和一个政府之间的冲突。它说明了一件事:当断网成为政府的惯常工具,工程上绕过断网的方案就会被开发出来;当这类方案出现,争议就从"能否断网"转向"能否封锁工具本身"。
IFF 的说法值得引用:删除代码仓库不会从手机上删除应用,反而阻止了公众对代码的审查。开源代码的透明性——让任何人都可以验证里面没有后门——恰恰是这类工具可信的基础。
30.4k Stars,Unlicense,全球 4,700+ 个 Fork。这段代码已经存在于太多地方,下架令能做的事情有限。
探索 PrimeSkills —— 精选 AI Agent 与技能的市场,每一个都经过真实企业工作流验证,去掉浮夸,留下真正有用的。
欢迎访问我的个人主页,发现更多有价值的见解和有趣的产品。