Bitchat: Decentralized peer-to-peer private messaging appBitchat: Decentralized peer-to-peer private messaging app
1/
2/ No Internet, No servers, No Phone numbers
3/ Scenario
4/ How relay works
5/ Multi-hop Communication
6/ Noise XX protocol
7/
Next posts will cover:
- The Noise Protocol (encryption)
- Ephemeral peer IDs (privacy)
- E-cash x Bitchat (bitcoin)
Follow @Bitcoin_Devs for more bitcoin technical posts
Dope
What does mutual favorites mean and how does it work?
This is dope!
Seems like private community
30-300m is not very far. I can only think of one use case for this. When you're in a meeting or a conference. Otherwise a shouting voice should be able to carry a few hundred meters.
Yep, these are real-world applications also mentioned in the whitepaper:
https://github.com/permissionlesstech/bitchat/blob/main/WHITEPAPER.md#real-world-applications
It would be so great if this can become popular.
Bitchat is neat stuff, but...range. This would be great for a conference or concert or something like that, but fir everything else (aside from offline ecash payment which is fantastic) ...range. We need Reticulum/Meshtastic integration. https://njump.me/naddr1qqdxy6t5vd5xzarj943xjarrdpshgttjv46xjcm4d36k6q3qqpdufhjpel94srm3ett2azgf49m9dp3n5nm2j0rt0l2mlmc3ux3qxpqqqp65whrszcu
As you mentioned “99.99% of people aren’t going to buy a dedicated device just for this”
I'm curious, what kind of range does Reticulum offer? (BitChat already claims a 300m range in its current state)
Other people could answer this much, much better than me, but as I understand, Reticulum (meshtash more specifically and LoRa even more specifically) uses radio waves. Like a TV antenna, the height of the antenna matters, line of sight, all that stuff. But, 2-5 km seems a good number, up to 10 km if it's hyped up. Less if in a city or trees or hills etc.
That is for one unit. Of course, if it meshes with another, say 3 km away, then that device could link to another and so on. I think, theoretically, there is no range limit.
As I understand, bitchat's bluetooth on your phone can pick up another phone like up to 10m. The 300m is if you leap-frog over other phone's/node/connections. To me, that requires a lot of people/nodes in one place...hence why I say a convention or concert would be great for this. But in real life, I don't see that happening too much. Maybe Times Square on New Year's Eve! :)
I asked Grok for an ascii graph comparison:
Range (feet) 10,000 | | 9,000 | | 8,000 | | 7,000 | | 6,562 |====================== LoRa (Meshtastic, ~2 km) | 6,000 | | 5,000 | | 4,000 | | 3,000 | | 2,000 | | 1,000 |= BitChat (Bluetooth mesh, ~300 m / 984 ft) | 0 |_________________________________________________________________| BitChat LoRa
Somebody correct me on this if I'm wrong, which I very likely could be.
Side note, I wish OP engaged more on posts like these
This helps, thanks! The total range of only 300meters seems......limiting. -Tom
I’ve heard a potential use case as when attending a large event with high concentration of devices, when traditional cellular networks struggle. Could be useful there, for sure
Yep, these are real-world applications mentioned in the whitepaper:
https://github.com/permissionlesstech/bitchat/blob/main/WHITEPAPER.md#real-world-applications
Indeed, that would make sense.
I agree
Love these simple cartoon explanations.
They massage well my 80 IQ pleb brain.
Glad to hear that
People are hype because of the Dorsey factor. Just like nostr
Do relays have to be running a bitchat app in the background to act as relays?
If so, this relies upon network effect of people joining the network to help it expand
IIRC relays must have the app running. The code below explains how relalys forward messages through the mesh network:
// From the message handling code: // Relay broadcast messages var relayPacket = packet relayPacket.ttl -= 1 if relayPacket.ttl > 0 { // Probabilistic flooding with smart relay decisions let relayProb = self.adaptiveRelayProbability // Always relay if TTL is high (fresh messages need to spread) // or if we have few peers (ensure coverage in sparse networks) let shouldRelay = relayPacket.ttl >= 4 || self.activePeers.count <= 3 || Double.random(in: 0...1) < relayProb if shouldRelay { // Add random delay to prevent collision storms let delay = Double.random(in: minMessageDelay...maxMessageDelay) DispatchQueue.main.asyncAfter(deadline: .now() + delay) { [weak self] in self?.broadcastPacket(relayPacket) } } }Yes, but I think it's a different kind of network effect. Traditional messaging apps need millions of users everywhere. BitChat just needs the people around you to have it when you actually need it (protests, disasters, events, conferences, ...)
If I really need to send a private message, I use smoke signals or fax. Otherwise is all PUBLIC. Anything you do on internet is PUBLIC. Learn to separate private things from public.
How are smoke signals or fax private? Fax is especially non-private, as phone company sees and can save everything, unencrypted. For smoke signals at least there are limited visibility. But, in any case, if you want something to be private, encryption is a must on top of any communication.
please decrypt my messages over https://bitcoinfax.net/ not even a MiM can do it... smoke signals? I can invent my own signal language...
ONLY if you use internet, yes
then do not post it online. PERIOD. Is really stupid to cry out about "protect my online privacy" when you continue to post private things on a public space. Internet is a public space, no matter how much privacy you want. Privacy means you do not share your private stuff in a public place.
I am not a a phone company, so I can't do that, as I can't access the data. But provider for receiver can access that data. I don't see how relaying message through phone company is more secure than Internet or Bluetooth.
Yes, you can, but, for example, AES-CBC is definitely better.
"Anyone, from the most clueless amateur to the best cryptographer, can create an algorithm that he himself can't break." / Bruce Schneier /
No. Encryption was used since at least ancient Egypt for secret communications for a reason.
If I send a stupid image with a hidden message, not even the provider can know what am I sending. Fax is still the best way to hide messages in plain sight.
Internet is just a joke nowadays.
In my early young years surviving the communism I invented my own language based on geometry signs, used with my closed friends. One day the security services found our signs, but not even after 30 years they couldn't decrypt our messages LOL
Besides, bitcoinfax.bet will send it anyways over Internet.
If you are being watched by agencies, In Latvia it could be suspicious if you want to send fax for some strange reason, nobody uses it here for decades. :D
except police... every fucking police station still use fax
Not sure about Latvia. In my first workplace (not a police), some ~25 years ago, "fax" already was just a modem card in computer connected to phone line and computer converted from / to e-mails with attachment in an internal Exchange mail server.
Interesting!
And how it differs if you send the same image with a hidden message over Internet?
internet is public. I have a simple rule: do not post anything on internet you do not want to be seen as "public" in the future. Once you post it on internet, is not "yours" anymore... no matter how much encryption you put.
Don't know for all the countries, but where I live, all landlines and everything that includes more than one provider is over IP nowadays anyway.