Bitchat 블루투스 비트코인 전송, 정말 안전할까?
전문가들이 짚는 보안 취약점과 한계
잭 도시(Jack Dorsey)의 Bitchat은 “인터넷 없이 블루투스로 비트코인을 주고받을 수 있다”는 메시지로 큰 화제를 모았습니다.
검열이나 인터넷 차단 상황에서도 BTC를 주고받을 수 있다는 점은 분명 매력적이지만, 보안 전문가들의 시선은 다소 냉정합니다.
이 글에서는 Bitchat 블루투스 BTC 전송 구조를 전제로, 실제로 어떤 보안 취약점과 한계가 지적되고 있는지 정리해 봅니다.
아직 성숙하지 않은 위협 모델과 보안 검증
Bitchat은 초기에 “secure”라는 수식어와 함께 소개되었지만, 정작 잭 도시 본인은 언론 인터뷰에서 “보안 테스트가 충분히 이루어지지 않았다”고 인정했습니다.
즉, 마케팅 메시지와 실제 보안 검증 수준 사이에 갭이 존재한다는 의미입니다.
이후 깃허브 이슈와 보안 블로그 등에서 프로토콜 레벨의 취약점과 설계상의 약점이 잇따라 보고되면서, 전문가들은 “실제 결제 인프라라기보다는 아직 연구·실험 단계에 가까운 프로젝트”라는 평가를 내리고 있습니다.
프로토콜 구현 취약점: 파싱·메모리 이슈
Trail of Bits 등 보안 업체와 커뮤니티 리서처들은 Bitchat의 바이너리 프로토콜 구현에서 크리티컬한 취약점을 찾아냈습니다.
대표적으로 BinaryProtocol.swift에서 시그니처를 파싱할 때 버퍼 경계 체크가 없어 out‑of‑bounds read나 잠재적 버퍼 오버플로우가 가능한 문제가 보고되었습니다.
또한 페이로드 길이를 UInt16으로 잘라 쓰는 설계로 인해, 길이 필드가 잘려 패킷 손상·리소스 고갈(DoS)·증폭 공격에 악용될 수 있다는 지적도 나왔습니다.
이런 유형의 취약점은 결국 원격 크래시나 서비스 거부(DoS), 심하면 원격 코드 실행(RCE) 가능성으로 이어질 수 있어, Bitchat 메쉬에 참여하는 다수 노드를 한 번에 마비시키는 공격 벡터가 됩니다.
신원·인증 취약점과 MITM 위협
암호화 그 자체와 별개로, “누구와 대화하고, 누구에게 송금하는지”를 검증하는 신원·인증 계층도 중요합니다.
보안 연구자들은 Bitchat의 현재 신원 인증·키 검증 흐름에 결함이 있어, 공격자가 연락처를 가장하거나 대화 상대를 바꿔치기(impersonation)할 수 있다는 점을 문제로 지적했습니다.
이 경우 사용자는 자신이 신뢰하는 사람에게 BTC(또는 ecash)를 보내고 있다고 생각하지만, 실제로는 공격자에게 암호화된 페이로드를 전달하는 셈이 됩니다.
결국 “암호화 알고리즘이 아무리 강해도, 엔티티 인증이 약하면 실질적인 보안은 무너진다”는 보안의 기본 원칙이 그대로 드러나는 구조입니다.
암호·세션 설계의 한계: Forward Secrecy 부족
Bitchat은 공개된 자료에 따르면 X25519 기반 키 교환과 AES‑GCM을 사용해 종단간 암호화(E2EE)를 제공합니다.
또한 더미 트래픽을 섞어 실제 메시지 패턴을 숨기려는 설계를 채택하고 있습니다.
하지만 영국 BISI 보고서에서는 “Signal과 같은 성숙한 메신저에 비해 세션 키 수명·회전 정책이 약하며, 메시지 단위의 강한 forward secrecy가 부족하다”고 평가합니다.
이는 나중에 단말기나 장기 키가 탈취될 경우, 그 세션 동안 주고받았던 대량의 메시지를 한꺼번에 복호화할 가능성이 상대적으로 크다는 의미입니다.
Bluetooth·메쉬 계층의 공격면: 재밍과 스팸
Bitchat의 가장 큰 특징은 인터넷 대신 Bluetooth 메쉬를 사용한다는 점입니다.
하지만 Bluetooth 계층은 암호화와 별개로 물리 계층에서 재밍과 스팸에 취약하다는 문제가 있습니다.
공격자가 강한 RF 신호로 특정 채널을 재밍하면, 그 구역의 Bitchat 메쉬는 사실상 마비될 수 있습니다.
현재 설계에서는 스팸·sybil·스캐닝 남용에 대한 방어 메커니즘이 부족해, 공격자가 대량의 쓰레기 패킷을 뿌려 실제 메시지를 묻어버리는 것도 가능합니다.
프라이버시 커뮤니티에서는 과거 Blueborne 등 BLE 취약점을 사례로 들며, OS/스택 레벨의 Bluetooth 취약점과 결합할 경우, Bitchat을 사용하는 스마트폰이 근접 공격의 매력적인 타깃이 될 수 있다고 경고합니다.
오프라인 ecash/BTC 전송의 더블스펜드·신뢰 리스크
Bitchat이 운반하는 페이로드는 크게 두 가지입니다.
서명된 Bitcoin 온체인 트랜잭션
Cashu 계열의 ecash 토큰
Bitchat은 이들을 단지 암호화된 데이터로 블루투스 메쉬 위에 실어 나를 뿐, 실제 결제 확정은 인터넷에 연결된 노드가 트랜잭션을 브로드캐스트하거나, 수신자가 ecash 토큰을 mint에 제출하는 시점에 이루어집니다.
문제는 이 과정에서 오프라인 상태의 수신자는 더블스펜드 여부를 실시간으로 검증할 수 없다는 것입니다.
특히 Cashu 같은 ecash 토큰은 프라이버시 측면에서는 매우 강력하지만, 같은 토큰이 이미 다른 곳에서 먼저 제출되었는지 여부는 mint에 접속해 보기 전까지 알 수 없습니다.
결국 오프라인 환경에서 ecash를 주고받는 것은 “상대가 동일 토큰을 다른 곳에 먼저 제출하지 않을 것”이라는 사회적 신뢰와, 수신자가 최대한 빨리 온라인으로 올라가서 토큰을 리딤한다는 전제를 필요로 합니다.
0-conf와 RBF: 온체인 트랜잭션의 구조적 한계
Bitchat으로 서명된 온체인 BTC 트랜잭션을 전달하는 경우, 비트코인 네트워크 입장에서는 결국 0-conf 트랜잭션을 기반으로 합니다.
공격자는 오프라인 환경에서 상대에게 트랜잭션 A를 보여주고, 나중에 인터넷 연결 후 더 높은 수수료의 경쟁 트랜잭션 B를 브로드캐스트해 A를 무효화하는 더블스펜드를 시도할 수 있습니다.
평소에는 네트워크 전체의 브로드캐스트와 노드 정책으로 인해 이런 공격이 어느 정도 제어되지만, 로컬 Bluetooth 메쉬와 인터넷 단절 환경에서는 그 보정 메커니즘이 제대로 작동하기 어렵습니다.
따라서 고액 결제나 신원을 잘 모르는 상대와의 거래를 Bitchat 기반 오프라인 온체인 전송에 의존하는 것은 구조적으로 위험합니다.
메타데이터·위치 프라이버시의 한계
Bitchat은 ID와 메타데이터까지 암호화하고, 더미 패킷을 섞어 패턴 분석을 어렵게 만드는 설계를 채택하고 있습니다.
그럼에도 불구하고 Bluetooth 신호의 특성상, RF 레벨에서 단말의 존재·활동 정도는 여전히 관찰 가능합니다.
국가나 대형 사업자처럼 강한 공격자는 여러 스니퍼를 특정 지역에 배치해 “어느 시간대에 어떤 반경에서 활발히 Bitchat 트래픽이 발생하는지”를 통계적으로 추론할 수 있습니다.
시위나 검열 환경에서는, 메시지 내용이 보이지 않더라도 “Bitchat 메쉬에 적극 참여하고 있다”는 사실 자체가 표적 식별 신호가 될 수 있다는 점이 인권·프라이버시 연구자들 사이에서 우려되고 있습니다.
가용성·운영 상 한계도 보안 문제다
보안에서 가용성(Availability)은 기밀성·무결성과 동급의 축입니다.
Bitchat의 경우 메쉬 밀도·배터리·노드 참여 의향 등 현실적인 요인에 따라 가용성이 크게 흔들립니다.
메쉬 노드가 충분히 많지 않으면, 메시지나 트랜잭션이 단말 내부에 오랫동안 머무르다 결국 사라질 수 있습니다.
현재 베타 버전에서는 전달 보장(ACK)이나 재전송 정책이 미흡해, 사용자가 “정말로 전송이 완료되었는지” 직관적으로 파악하기 어렵다는 지적이 있습니다.
Bluetooth 스캐닝과 메쉬 참여는 배터리 소모가 크기 때문에, 정전·재난 상황처럼 충전 여건이 나쁜 환경에서는 네트워크 유지 자체가 어려울 수 있습니다.
이러한 요소들은 단순한 품질(QoS) 이슈가 아니라, “위기 상황에서 결제를 믿고 쓸 수 있는가”라는 보안·신뢰 문제로 직결됩니다.
실무 보안 관점에서의 현실적인 사용 가이드
정리하면, 현 시점에서 Bitchat 블루투스 BTC 전송은 “주요 결제 레일”이라기보다, 극단적 상황에서 쓰는 실험적 보조수단으로 보는 것이 더 현실적입니다. 안전하게 사용하기 위해서라면 다음과 같은 원칙을 추천할 수 있습니다.
고액 결제에는 사용하지 말 것
오프라인 0-conf·ecash 구조 상 더블스펜드·신뢰 리스크가 크므로, 고액·장거리·익명 거래는 온체인 컨펌 또는 안정된 라이트닝 채널로 settle 하는 것을 기본으로 해야 합니다.
신뢰 관계가 있는 상대와의 소액 결제에 한정
이미 서로 잘 아는 상대와의 소액·단기 결제, 혹은 나중에 온체인/라이트닝으로 재정산할 것을 전제로 한 임시 지불 수단 정도로 사용하는 편이 안전합니다.
가능하면 빠르게 온라인 정산
오프라인에서 받은 ecash 토큰이나 트랜잭션은 가능한 한 빨리 인터넷에 연결해 mint 제출 또는 브로드캐스트를 수행해, 더블스펜드 공격의 타임 윈도를 최소화해야 합니다.
시위·고위험 환경에서는 RF 탐지 리스크 고려
컨텐츠 암호화와 별개로 “누가 이 메쉬에 참여하는지”가 관측될 수 있으므로, 고위험 환경에서는 단순 참여만으로도 표적이 될 수 있다는 점을 교육·위협 모델에 포함해야 합니다.
현재는 PoC·리서치 도구로 취급
조직이나 커뮤니티에서는 Bitchat을 정식 결제 인프라가 아닌 PoC/연구용 도구로 분류하고, 필수 서비스나 자산 보호에 직접 연결하지 않는 것이 바람직합니다.
맺으며
Bitchat이 제시하는 “인터넷 없이도 비트코인을 주고받는 세계”는 분명 흥미롭고, 검열 저항성과 레질리언스를 확장하는 실험이라는 점에서 의미가 있습니다.
그러나 현재 구현과 위협 모델을 감안할 때, 이를 곧바로 안전한 결제 인프라로 받아들이기는 어렵고, 특히 보안에 민감한 사용자라면 냉정한 리스크 평가가 필요합니다.
기술적으로나 사회적으로 더 많은 검증과 논의가 축적된다면, 언젠가 오프라인 메쉬 기반 결제가 지금보다 훨씬 안전한 수준으로 발전할 수 있을 것입니다.
그때까지는, Bitchat을 “보안이 검증된 결제 수단”이 아니라 “위기 상황을 위한 실험적인 도구” 정도로 인식하는 것이 현실적인 선택으로 보입니다.
참고한 자료 / Further Reading
Trail of Bits 블로그 – Bitchat 보안 논의 및 “Building secure messaging is hard” 관련 글
GitHub
permissionlesstech/bitchat이슈 – “BitChat protocol security report”, BinaryProtocol 관련 취약점 리포트TechCrunch – “Jack Dorsey says his ‘secure’ new Bitchat app has not been tested for security” 기사
cryptoHC – “How Bitchat Enables Offline BTC Transfers via Mesh”, 메쉬 구조와 BTC/ecash 전송 개요
BeInCrypto – “Bitchat: What’s under the hood?”, 프로토콜·암호 설계 개요
BISI – “Bitchat: Bluetooth Mesh Networks and Internet Shutdowns”, 검열·인권 관점 평가
AskPerplexity X 스레드 – “Bitchat lets you transfer Bitcoin ecash over Bluetooth…”, Cashu 기반 ecash 흐름 설명
Reddit /r/privacy – “Bitchat App Lets You Send Bitcoin Over Bluetooth Without the Internet”, 프라이버시·위험 논의