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