BitMesh est la première messagerie P2P incensurable avec identité Bitcoin proof et wallet Cashu #1. Aucun serveur, aucune censure, communication garantie même sans internet.
- Aucun serveur central - Communication directe P2P
- LoRa Mesh - Fonctionne sans internet (5-20 km)
- BLE Gateway - Connexion directe appareil-à-appareil
- Résistant à la censure - Impossible à bloquer
- NodeId dérivé de votre wallet - MESH-XXXX unique
- Clés Bitcoin = Identité - Pas de compte, pas de pseudo
- Vérification cryptographique - Impossible d'usurper
- Display name optionnel - Anonymat préservé
- Création de forums publics - Annoncés sur le réseau
- Découverte automatique - Forums voisins détectés
- Chiffrement de bout en bout - Seuls les membres peuvent lire
- Pas de modération centralisée - Communautés autonomes
- Mint/Melt/Swap complet - Tous les NUTs implémentés
- Atomic swaps - BTC↔Cashu trustless
- Notifications - Alertes quand token reçu
| Feature | MeshPay | Signal | Telegram | Cashu.me |
|---|---|---|---|---|
| Sans serveur | ✅ P2P | ❌ Centralisé | ❌ Centralisé | ✅ |
| Sans internet | ✅ LoRa | ❌ | ❌ | ❌ |
| Identité Bitcoin | ✅ | ❌ | ❌ | ❌ |
| Wallet intégré | ✅ Cashu | ❌ | ❌ | ✅ |
| Forums P2P | ✅ | ❌ | ✅ Centralisés | ❌ |
| Censure-résistant | ✅ | ❌ | ✅ |
BitMesh = Seule solution combinant messagerie incensurable + identité Bitcoin + wallet Cashu
- ✅ DMs chiffrés E2E - ECDH + AES-GCM-256
- ✅ Forums publics/privés - Chiffrement sélectif
- ✅ LoRa longue portée - 868/915MHz, 5-20 km
- ✅ BLE proximité - 10-100m, sans infrastructure
- ✅ MQTT fallback - Internet quand disponible
- ✅ Multi-hop routing - Jusqu'à 10 sauts
- ✅ Messages auto-destruct - Effacement après 24h
- ✅ NodeId unique - Dérivé cryptographiquement du wallet
- ✅ Anti-usurpation - Vérification signature obligatoire
- ✅ Display name personnalisable - Optionnel, changeable
- ✅ Status en ligne - Présence temps réel
- ✅ Radar de pairs - Carte GPS des utilisateurs proches
- ✅ Mint/Melt/Swap - NUTs 03, 04, 05
- ✅ P2PK - Tokens verrouillables (NUT-11)
- ✅ DLEQ proofs - Vérification cryptographique (NUT-12)
- ✅ QR animés - Gros tokens en plusieurs parties (NUT-16)
- ✅ Atomic swaps - Échange BTC↔Cashu trustless
- ✅ Notifications - Alertes tokens reçus
- ✅ Backup/Restore - Export JSON
- ✅ Forums découverts - Annonces automatiques
- ✅ GPS positioning - Partage position optionnel
- ✅ Distance & bearing - Calcul vers autres pairs
- ✅ Signal strength - Qualité de connexion
- Catastrophes naturelles (inondations, tremblements de terre)
- Zones de conflit (censure, coupure internet)
- Zones isolées (montagnes, déserts, océans)
- Aucune entreprise ne contrôle vos données
- Aucun gouvernement ne peut censurer
- Vos clés = Votre identité = Vos fonds
- Paiements sans intermédiaire
- Forums communautaires autonomes
- Économie locale sans banque
| Module | Status |
|---|---|
| Messagerie P2P (LoRa/MQTT/BLE) | ✅ 100% |
| Chiffrement E2E | ✅ 100% |
| Identité Bitcoin Proof | ✅ 100% |
| Wallet Cashu complet | ✅ 100% |
| Forums P2P | ✅ 100% |
| GPS Radar | ✅ 100% |
| Multi-hop routing | ✅ 100% |
| Atomic swaps | ✅ 100% |
| Sécurité wallet (audit) | ✅ Renforcée |
| Tests unitaires | ✅ 84 tests |
| Composant | Correction |
|---|---|
cashu.ts |
Rejection sampling (blinding factor sans biais modulaire) |
cashu.ts |
crypto.getRandomValues remplace Math.random (atomic swap ID) |
cashu.ts |
HTTPS forcé pour toutes les URLs mint (anti MITM) |
cashu.ts |
Validation keyset ID après fetchMintKeys |
cashu.ts |
Sanitisation du champ memo (type + longueur max 1000) |
bitcoin-tx.ts |
Clés privées effacées en mémoire (fill(0)) dans un bloc finally |
bitcoin-tx.ts |
Timeout 5s par endpoint (AbortController) sur fetch scriptPubKey |
bitcoin-tx.ts |
Fallback scriptPubKey strict — plus d'utilisation silencieuse de changeAddress |
bitcoin-tx.ts |
Gardes Number.isSafeInteger sur tous les montants |
BitcoinProvider.ts |
Mutex isSendingRef anti-envoi concurrent (TOCTOU) |
BitcoinProvider.ts |
changeIndexRef incrémenté après chaque envoi (anti-réutilisation d'adresse) |
mempool.ts |
Validation regex txid (/^[a-f0-9]{64}$/i) sur broadcast |
mempool.ts |
Sanity check frais API — plafond 1 000 sat/vB (anti-MITM) |
SendBitcoinModal.tsx |
Plafond frais custom à 500 sat/vB + avertissement visuel > 200 sat/vB |
WalletSeedProvider.ts |
Validation stricte longueur mnémonique (12 ou 24 mots) |
Ces points nécessitent des changements d'API ou de module natif :
- [ ] BigInt non-zéroable (
cashu.ts) — Le facteur aveugler(BigInt) ne peut pas être mis à zéro comme unUint8Array. Nécessite de refactorisercreateBlindedMessage/unblindSignaturepour travailler avec des tableaux d'octets et effacer la mémoire après usage. - [ ] Mnémonique en React state (
BitcoinProvider.ts) — Le mnémonique passe par React state, visible dans les heap dumps. Solution : déverrouillage biométrique par transaction via module natif, ou signing dans un service worker isolé. - [ ] Mode strict DLEQ (
cashu.ts) — Conformément à NUT-12, les preuves sans DLEQ sont actuellement acceptées (mints anciens). Ajouter un mode strict configurable rejetant les proofs sans DLEQ pour les mints non-fiables. - [ ] Passphrase BIP39 (
WalletSeedProvider.ts) — Ajouter support du 25e mot BIP39 (passphrase) à l'import/génération du wallet. - [ ] Persistance changeIndex (
BitcoinProvider.ts) —changeIndexRefse remet à 0 au redémarrage. Persister dans SecureStore pour éviter la réutilisation d'adresses de change entre sessions.
# Télécharger APK
wget https://github.com/Silexperience210/BitMesh/releases/latest/download/BitMesh-v2.5.apk
# Installer
adb install BitMesh-v2.5.apkSettings → Wallet → Generate 12 Words
Votre NodeId MESH-XXXX est automatiquement créé.
Messages → + → Discover → Sélectionner un forum
Sélectionner conversation → Taper message → Send
Fonctionne même sans internet (LoRa/BLE) !
Messages → Attacher token → ou Wallet → Melt
Cashu: silexperience@minibits.cash
Vos dons financent le développement open-source.
MIT License - Voir LICENSE
Fait avec ❤️ par la communauté BitMesh