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 字元 | 社群級 | 社群交流 |
| 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 提醒我們:真正的通訊自由,是不需要任何人的許可。