«Internet se cae de nuevo, pero aún quieres chatear» — aproximadamente así se puede describir el momento en que te sirve Bitchat Mesh. El nuevo proyecto de Jack Dorsey (el mismo que inventó Twitter) funciona sin tarjeta SIM ni Wi‑Fi: los mensajes saltan de smartphone a smartphone por Bluetooth Low Energy hasta que llegan al destinatario.
Breve antecedente: cómo la startup "de fin de semana" explotó en los medios
Dorsey publicó el prototipo en GitHub el primer fin de semana de julio de 2025, advirtiendo que «es un experimento, no un producto listo para producción». Pero el bombo fue inmediato: TechCrunch y TechRadar anunciaron el "mensajero sin internet", y la App Store colocó la aplicación en el puesto 22 en la categoría Social Networking con una valoración media de 4,8 puntos.
Cómo funciona: Bluetooth‑mesh explicado de forma sencilla
- Sin estaciones base ni servidores. Los teléfonos forman una red mallada (mesh): cada nodo recibe, almacena y retransmite mensajes a los vecinos.
- Alcance ≈ 100 m. La radio BLE no compite con LTE, pero en multitudes densas (festival, universidad, protesta) la cadena de dispositivos puede llevar mensajes a kilómetros.
- Cifrado hop‑a‑hop. El texto se cifra en todo el trayecto, por lo que el "repartidor" intermedio solo ve bytes inútiles —al menos en teoría.
- No requiere registro. La aplicación no pide número, correo electrónico ni (¡hurra!) la fecha de nacimiento de tu hámster. ¿Quieres cambiar el apodo? Hazlo directamente en el chat.
- Modo pánico. Tres toques rápidos en el logotipo borran la base local de mensajes —útil si de repente tienes detrás a un policía curioso.
Debajo del capó: arquitectura del protocolo Bitchat
Si dejamos de lado el marketing, Bitchat es una capa ligera sobre el Advertising estándar de Bluetooth LE, inspirada en el modelo de investigación Borrador BLE Mesh, pero implementada de forma más simple. En lugar del BLE Mesh "oficial" con IV Index y Managed Flooding, los desarrolladores optaron por difusión oportunista:
- Cada paquete se anuncia en los canales de advertising 37‑39 (BLE 1M) y, si el hardware lo permite, se duplica en extended advertising en las frecuencias de datos 0–36 (BLE 2M).
- Los nodos que reciben un paquete lo guardan en SQLite y lo retransmiten tras un retraso aleatorio de 20–500 ms para reducir colisiones.
- La reenvío se detiene cuando el campo
hopalcanza elttlo cuando expira el tiempo de vida del mensaje (por defecto, 1 hora).
Estructura del marco Bitchat v1
0‑1 B Magic ("BC")
2 B Version (=1)
3 B Flags (bit0=fwd‑secrecy, bit1=frag, bit2=ack)
4 B Hop
5 B TTL
6‑7 B Payload Len (LE)
8‑… Payload (ciphertext | frag‑info)
…‑… MAC (16 B, BLAKE2s‑128)
El tamaño máximo del payload de advertising en BLE 4.x es 31 bytes, y en BLE 5.x es 255 bytes (con Ext Adv). Por eso los mensajes largos se fragmentan: la bandera frag más cuatro bytes de índice/contador. La recomposición ocurre a nivel de aplicación; una vez reconstruido el mensaje, los fragmentos sobrantes se descartan de inmediato para no ensuciar la caché.
Flujo de datos: del tap‑to‑pair al envío masivo
- Handshake. En el primer intercambio, dos teléfonos ejecutan un Noise NN unilateral (handshake sin claves de sesión). A cambio obtienen un token temporal (32 bits) que firma todos los paquetes siguientes. Esto protege contra la suplantación básica de direcciones MAC.
- Efímero → Estático. Tras intercambiar varios mensajes, los clientes pasan a Noise IK (ca + clave pública estática), manteniendo compatibilidad con dispositivos sin claves.
- Secreto hacia adelante. Cada mensaje se cifra con XChaCha20‑Poly1305 usando un nonce único calculado a partir de
ID || hop || epoch seconds. La clave se renueva cada 32 mensajes mediante HKDF(ck, "BitchatRatchet").
Almacenamiento de mensajes y TTL
La base local es un SQLite sencillo con la tabla messages (id INTEGER PK, ts INTEGER, remote_id BLOB, cipher BLOB, hop INT, sent BOOL). Cada 15 minutos un VACUUM elimina registros con más de 24 horas o cuando el tamaño total supera 25 MB. Esta limpieza agresiva debe impedir el desbordamiento de memoria en teléfonos Android económicos.
Consumo de energía y ajuste fino del BLE
- Scanning Window — 8 ms, Interval — 1280 ms, lo que da un duty cycle ≈0,6 %.
- Cuando el teléfono está conectado a carga o la batería >80 % — la ventana de escaneo se amplía a 40 ms, aumentando la probabilidad de "oír" a los vecinos.
- La versión para iOS usa CBCentralManagerScanOptionAllowDuplicatesKey=YES exactamente un minuto tras activar la pantalla, luego vuelve al valor por defecto; de lo contrario el sistema "ahoga" la aplicación.
Hoja de ruta del protocolo
- v1.1 — autenticación de dos factores mediante código QR (inspirado en Signal), snapshot en agosto de 2025.
- v1.2 — SDK en WebAssembly para aplicaciones externas (juegos, mapas cooperativos).
- v2.0 — migración parcial de difusión oportunista a un temporizador adaptativo Trickle, reduciendo el overhead en redes densas hasta un 40 %.
Primeras impresiones: instalación y experiencia de usuario
Bitchat está disponible en la App Store y en GitHub (APK para Android). La interfaz recuerda a un cliente IRC minimalista: una sola ventana de mensajes, la lista de dispositivos "visibles" cerca y un pequeño engranaje de ajustes. En una sala vacía la aplicación honestamente muestra «no hay nadie cerca», lo que resulta algo desalentador.
Seguridad: elogios, vulnerabilidades y una manta de realidad
El código es abierto y el cifrado se basa en Noise. Pero investigadores de Trail of Bits y Supernetworks hallaron claves de sesión estáticas, falta de autenticación completa y un ataque de "hombre en el medio" fácil de implementar, en el que un atacante se hace pasar por uno de tus contactos.
¿Hay que preocuparse?
Si tu amenaza es un hacker aburrido en una conferencia, mejor guarda silencio o abre Briar comprobado. Pero para comunicación informal en un festival, en un tren sin red o en un país con censura, Bitchat ya hoy resulta útil.
Prueba práctica: batería, estabilidad, alcance
- Batería. Dos horas de espera pasiva con escaneo BLE activo consumieron 7 % de batería en un iPhone 13 mini. Menos que TikTok, pero más que Telegram en segundo plano.
- Velocidad de entrega. En una conferencia un mensaje llegó en 3‑5 s. En un pueblo vacío — indefinidamente, hasta que aparezca un vecino con Bitchat encendido.
- Topología de la red. Mejor resultado — 9 "hops" y ~400 m entre teléfonos extremos: el músculo de Bluetooth sigue rindiendo.
Alternativas: con quién comparar
| Aplicación | Comunicación sin internet | Autenticación | Secreto hacia adelante | Código |
|---|---|---|---|---|
| Bitchat | Bluetooth mesh | Débil | En planes | Código abierto |
| Briar | Wi‑Fi / Bluetooth / Tor | Código QR / PGP | Sí | Código abierto |
| Bridgefy | Bluetooth mesh | No | No | Parcialmente |
| Signal | Requiere internet | Código QR | Sí | Código abierto |
Ventajas
- Funciona sin red ni SIM — salvación en roaming o ante censura.
- Interfaz simple, sin configuración.
- Código abierto — se puede auditar, bifurcar y proponer parches.
- Modo pánico efectivo para borrado instantáneo de datos.
Inconvenientes
- Autenticación vulnerable → riesgo de ataques MITM.
- Funciona solo con suficiente densidad de usuarios.
- No hay versión para sistemas de escritorio ni cliente web.
- Consume la batería más rápido que los mensajeros habituales.
Conclusión: ¿instalar o esperar?
Bitchat es el juguete ideal para quienes disfrutan experimentar con nuevos protocolos y sueñan con un mundo sin grandes operadores de telecomunicaciones. Para conversaciones secretas cotidianas la aplicación aún está verde: espera al menos la implementación de secreto por mensaje y un esquema fiable de verificación de contactos. Pero como canal de emergencia en zonas remotas o en eventos masivos, Bitchat impresiona hoy por su "resistencia" y la ausencia de inicios de sesión. Si estás dispuesto a una dosis de adrenalina y no piensas discutir el lanzamiento de cohetes espaciales, pruébalo —seguro no empeorará.