# Bitchat이 Radicle에 공개됨

> Clean Markdown view of GeekNews topic #31831. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=31831](https://news.hada.io/topic?id=31831)
- GeekNews Markdown: [https://news.hada.io/topic/31831.md](https://news.hada.io/topic/31831.md)
- Type: GN+
- Author: [neo](https://news.hada.io/@neo)
- Published: 2026-07-26T23:38:51+09:00
- Updated: 2026-07-26T23:38:51+09:00
- Original source: [radicle.network](https://radicle.network/nodes/rosa.radicle.network/rad%3Az2v9tRJz1oknFAqCSY5W5c76nVvm6)
- Points: 1
- Comments: 1

## Topic Body

- **Bitchat**은 Bluetooth 메시 네트워크와 인터넷 기반 Nostr를 결합해 계정·전화번호·중앙 서버 없이 작동하는 iOS·macOS용 탈중앙 P2P 메시징 앱임
- 오프라인에서는 Bluetooth LE로 최대 **7홉 중계**를 지원하고, 인터넷 연결 시 290개 이상의 Nostr 릴레이를 통해 전 세계 및 위치 기반 채널에 연결함
- 개인 메시지는 Bluetooth의 **Noise Protocol**을 우선 사용하고, 연결할 수 없으면 Nostr의 NIP-17로 전환하며, 둘 다 불가능하면 전송할 수 있을 때까지 대기열에 보관함
- geohash 정밀도에 따라 블록·동네·도시·주·국가 단위 채널을 제공하며, `/slap`, `/msg`, `/who` 같은 IRC식 명령과 세 번 탭해 데이터를 지우는 **Emergency Wipe**를 지원함
- 프로젝트는 **퍼블릭 도메인**으로 공개됐으며 Xcode 또는 `just`로 실행할 수 있지만, 실제 기기 빌드에는 Developer Team ID와 entitlement 설정이 필요함

---

### Bluetooth와 Nostr를 결합한 전송 구조
- [Bitchat](http://bitchat.free/)은 Bluetooth 메시와 Nostr를 결합한 iOS·macOS 네이티브 앱이며 [App Store](https://apps.apple.com/us/app/bitchat-mesh/id6748219622)에서도 제공됨
- **Bluetooth 메시 네트워크**는 인터넷 없이 주변 기기를 자동으로 탐색하고 연결함
  - Bluetooth LE로 직접 P2P 통신하며, 인접 기기를 거쳐 최대 7홉까지 메시지를 중계함
  - Noise Protocol 기반 종단 간 암호화와 순방향 비밀성을 지원함
  - Bluetooth LE 제약에 맞춘 압축 바이너리 패킷 형식과 배터리 최적화 듀티 사이클을 사용함
  - `mesh #bluetooth` 채널은 시위·재난·외딴 지역 등의 오프라인 통신을 대상으로 함
- **Nostr 전송 계층**은 290개 이상의 전 세계 릴레이를 통해 인터넷 메시징을 제공함
  - geohash 좌표로 위치 기반 채팅방을 만들고, 지역마다 새로운 임시 암호화 신원을 사용함
  - 개인 메시지는 NIP-17 gift wrapping으로 보호함
  - 위치 채널은 인터넷 연결이 필요하며 지역 커뮤니티, 현지 행사, 지역 토론에 활용됨
    - `block` 7자: 도시 블록
    - `neighborhood` 6자: 구역·동네
    - `city` 5자: 도시
    - `province` 4자: 주·도
    - `region` 2자: 국가·대규모 지역
- **개인 메시지 라우팅**은 사용 가능한 전송 수단을 자동으로 선택함
  1. 기존 Noise 세션을 이용할 수 있으면 빠르고 비공개성이 높은 Bluetooth 연결을 우선함
  2. Bluetooth를 사용할 수 없으면 수신자의 Nostr 공개 키와 NIP-17을 이용해 릴레이망으로 전송함
  3. 두 방식 모두 사용할 수 없으면 메시지를 대기열에 보관했다가 연결이 성립되면 자동으로 전달함
- LZ4 메시지 압축, 적응형 배터리 모드, 네트워크 최적화, IRC식 명령과 세 번 탭해 모든 데이터를 즉시 삭제하는 **Emergency Wipe**도 제공함
- 자세한 프로토콜은 [Technical Whitepaper](https://radicle.network/nodes/rosa.radicle.network/rad%3Az2v9tRJz1oknFAqCSY5W5c76nVvm6/tree/WHITEPAPER.md)에서 확인할 수 있음

### 빌드와 현지화, 라이선스
- **Xcode에서 실행**하려면 저장소에서 다음 명령을 사용함

```bash
cd bitchat
open bitchat.xcodeproj
```

- 실제 기기에서 실행하려면 로컬 설정과 코드 서명을 준비해야 함
  - `cp Configs/Local.xcconfig.example Configs/Local.xcconfig`로 설정 파일을 복제함
  - 새 파일에 Developer Team ID를 추가하면 기본 Bundle ID가 `chat.bitchat.<team_id>`로 설정됨
  - entitlement의 `group.chat.bitchat`을 `group.<your_bundle_id>`로 직접 변경해야 함
- macOS에서는 `brew install just` 후 `just run`으로 설정과 소스 실행이 가능함
  - 이후 `just clean`을 실행하면 모바일 앱 빌드·개발을 위한 원래 상태로 복원됨
- **현지화 리소스**는 앱과 공유 확장에 나뉘어 있음
  - 기본 앱 문자열과 복수형 규칙은 `bitchat/Localization/Base.lproj/`의 `Localizable.strings`와 `Localizable.stringsdict`에 추가함
  - 공유 확장 문자열은 `bitchatShareExtension/Localization/Base.lproj/Localizable.strings`에서 관리함
  - 키는 `app_info.features.offline.title`처럼 의도를 드러내도록 작성하고, 가능한 한 기존 키를 재사용함
  - 현지화 변경은 `xcodebuild -project bitchat.xcodeproj -scheme "bitchat (macOS)" -configuration Debug CODE_SIGNING_ALLOWED=NO build`로 컴파일을 확인함
- 프로젝트는 **퍼블릭 도메인**으로 배포되며 세부 조건은 [LICENSE](https://radicle.network/nodes/rosa.radicle.network/rad%3Az2v9tRJz1oknFAqCSY5W5c76nVvm6/tree/LICENSE)에서 확인할 수 있음

## Comments



### Comment 62416

- Author: neo
- Created: 2026-07-26T23:38:52+09:00
- Points: 1

###### [Hacker News 의견들](https://news.ycombinator.com/item?id=49047365) 
- 어제 **Radicle 데스크톱 클라이언트**를 설치하고 새 사용자명과 비밀번호를 입력했지만 아무 일도 일어나지 않았음. 앱을 재시작해도 계정 생성·로그인 화면을 통과하지 못해 Radicle 사용은 거기서 끝남

- 가용성을 중시한다면 `libs.gms.location` 의존성을 재검토하고 **F-Droid**에서도 배포해야 함([https://gitlab.com/fdroid/fdroiddata/-/merge_requests/24907#...](<https://gitlab.com/fdroid/fdroiddata/-/merge_requests/24907#note_2704652160>))
  - 저장소 관리자가 PR 검토와 메시지 답변을 모두 중단한 듯함. 계속 진행하려면 누군가 **포크**해야 할 가능성이 큼

- Fusion Festival에서 Bitchat을 켜고 돌아다니며 기기 약 20대와 메시지 몇 개를 발견했지만, 내가 보낸 메시지에는 아무도 답하지 않았음. 8만 명 중 20대라 사용자가 전혀 없는 것은 아니지만 많지도 않으며, 최대 **2홉**에 그쳐 행사장을 가로지를 만큼 충분한 밀도가 나오지 않았음
  - 여러 시위에서 사용됐고 현재 인도의 **CJP 시위**에서도 쓰이는 것으로 알고 있음. 인도 정부는 GitHub에 저장소 삭제도 요청함
  - 최소한 **메시 Wi-Fi**는 추가됐지만, 생사가 걸린 시위 상황을 제외하면 도입 속도가 상당히 느림  
    좌석을 붙여 앉는 데 50달러를 더 내기 싫어 비행기에서 일행과 떨어졌을 때는 유용함
  - 이런 틈새 프로젝트에서 기기 20대면 이미 상당한 수치임
  - 실제로 작동한다는 점이 꽤 멋짐. 3만 명이 모인 축제에서 일행을 찾으려고 AirTag를 가져갔지만 완전히 먹통이었음
  - 마지막으로 사용했을 때는 **ASCII 아트로 그린 히틀러 이미지**만 올라와 있었음. 그래도 시작은 시작임

- BitChat에 관심 있다면 인기를 얻거나 함께 쓸 사람을 만날 때를 대비해 일단 설치해둘 만함. 직접 시험해보니 **Wi-Fi나 이동통신 없이 문자**를 주고받는 느낌이 비현실적이었음
  - 붐비는 곳에 갈 때마다 실행해 확인해봄. 다만 메시가 아닌 인터넷 채팅에서는 지오해시보다 **주변 기반 채팅**이 있었으면 좋겠음. 지오시는 원하는 범위의 세밀도를 고르기 늘 어려움  
    중첩 지오시도 괜찮겠지만, 무전기처럼 한쪽만 범위 안에 있으면 대화 절반만 보이는 혼란이 우려됨. 현재 지오시는 약 1에이커까지 좁혀져 지나치게 정밀하지만, 12층짜리 대학 기숙사 전체가 한 채팅방을 쓸 때는 유용할 수 있음
  - Bluetooth 채팅 앱은 이미 존재함. 작년에 유럽 Ryanair 항공편에서 떨어져 앉은 친구들과 대화하려고 App Store에서 찾아낸 **Berkanan**을 사용했는데, 외관은 형편없어도 기능은 제대로 작동했음

- Radicle 사이트는 Git 저장소 플랫폼으로서 흥미로운 디자인을 보여줌. **전체 너비 여백**, 잘 구성된 탐색 구조, 보기 좋은 코드 렌더링이 마음에 듦
  - 임의의 **Git 저장소 URL**을 연결해 같은 형태로 보여주는 서비스를 만들 수 있을지 궁금함

- Bitchat은 AOS의 [프로젝트](<https://andotherstuff.org/#foundry-projects>)임. 같은 AOS 프로젝트인 [ngit](<https://gitworkshop.dev/>)에 다시 호스팅하지 않은 점이 의외임
  - ngit에 미러가 없는 것은 조금 의외지만, 주 호스팅 장소로 삼지 않은 것은 이해됨. 사람들이 실제로 발견할 수 있는 곳에 있어야 하기 때문임  
    **Nostr 순수주의**에 빠지면 게시물을 보는 사람이 고작 5명뿐인 결과가 자주 나옴. 프로토콜은 좋아하지만 사용자를 늘리려면 사람들이 이미 있는 곳에 앱을 배치해야 함

- 다른 탈중앙 메시징 제품인 **Nostr나 XMTP**와 비교해 특별한 기능이 있는지 궁금함
  - 오프라인에서는 **Bluetooth 메시**, 온라인에서는 Nostr로 작동함  
    전날 관련 논의: “Government orders GitHub to remove Bluetooth-based chat app Bitchat: Jack Dorsey”  
    [https://news.ycombinator.com/item?id=49036433](<https://news.ycombinator.com/item?id=49036433>)
  - [https://bitchat.free/](<https://bitchat.free/>) 첫 문단에 설명돼 있음
