14 ms·
BitMessage - Bitcoin Inspired Peer to Peer Encrypted Messaging
- mrmaddog 13y agoI really like how readable the overview paper is [1]—I'd recommend reading it if you want to understand what is being proposed here. I especially thought the section on a passive operating mode was interesting. The idea that you can hide an ACK in another message, which is then broadcast to ACK both of the original messages is pretty clever. However, since Bradley's message to Charlie is also broadcast to everyone, wouldn't Eve get the same amount of information as if Bradley had just ack'd the message in the first place? Anyhow, assuming I misunderstood something, passive listening doesn't seem to work well with their description of stream scalability, since Alice would now think she knows Bradley's stream, when it was actually Charlie's stream. For this to work, I suppose Alice would have to know that Bradley would be a secret listener to begin with. In any case, it is definitely an interesting read. Seems like the type of thing Julian Assange would love to have. [2] [1] https://bitmessage.org/bitmessage.pdf https://bitmessage.org/bitmessage.pdf [2] https://news.ycombinator.com/item?id=5574589 https://news.ycombinator.com/item?id=5574589
- cantos 13y agoI had a brief look at the paper. I got stuck on the section about scalability. I can't see how that could be implemented so that authentication can be done given that the nodes are untrusted (by which I mean implemented with a much smaller amount of computation and storage than was required in the non-optimized approach).
- Sami_Lehtinen 13y agoTrue, you're going to need gigabytes of memory. My test client used over 6 gigabytes o memry after small inventory injection play. I have a few great ideas how to create efficient propagating attacks, but I haven't yet tried those.
- muyuu 13y agoJust publish the ones you've tried.
- socrates1024 13y agoThere's no incentive for participation. In this sense it does not resemble Bitcoin very much at all.
- droopyEyelids 13y agoParticipation is the incentive, right?
- FellowTraveler 13y agoThere's always this: https://bitcointalk.org/index.php?topic=212490.0 https://bitcointalk.org/index.php?topic=212490.0
- vessenes 13y agoThis is interesting. Four minutes for proof of work is tough, though. That's a long time to wait to send a message. Bitcoin itself could often use sideband communication protocols for, e.g. transaction details, but this doesn't seem to tick all the boxes: incentives alignment needs to be worked on, and I would suggest that the spamming prevention is somewhat naive; there should be a market. Consider -- all bitmessage messages are considered "high quality" by default, and therefore sent directly to one's phone. Botnet operators determine that while one botnet client could send 100 e-mails per minute, the open rate on one bitmessage message is nearly 100%, making it economically feasible to botnet spam bitmessage. I would like to see more self leveling, and a pricing market baked in to something like this, as well as a way to send messages instantly.
- chadillac83 13y agoFrom 4 minutes to instantly? I would say anything under a few seconds is feasible so long as it's easy to use.
- chrisballinger 13y agoI am very interested in developing an iOS client for this. We are developing a pluggable framework for Tor integration on iOS called OnionKit [1] based off of Onion Browser for the ChatSecure project [2], the only open source OTR compatible chat client for that platform. It's in pretty rough shape right now because we got stuck trying to figure out how to make Apple's Networking APIs honor the proxy settings on TCP connections, so please contact us if you can help solve this problem. Since it doesn't involve the transfer of money or copyrighted material, it shouldn't yet be rejected by Apple's reviewers as the BitTorrent and BitCoin protocol have been. Skype is still allowed, and that technically is (or used to be?) a peer to peer communications system. Unfortunately, you aren't presently allowed by Apple to run a background socket on iOS for longer than 10 minutes unless it is a full VoIP application, so you would never be able to use it for push-style communication, without compromising a user's anonymity via a web backend that stores your APNS token (device specific messaging token for iOS devices). [1] https://github.com/ChatSecure/OnionKit https://github.com/ChatSecure/OnionKit [2] https://chatsecure.org https://chatsecure.org
- jamoes 13y agoJeesh, why are people still putting up with Apple's domineering control over what they're allowed to do with their own devices? I know none of what you said is new news, but seeing it all come together like that really highlights the problem with Apple's policies. IMO, a much more useful app to build would be an HTML5 Bitmessage app that users can just run in their browser (similar to the blockchain.info/wallet app for bitcoin). This would make the technology accessible to a much larger group of people.
- czhiddy 13y ago> Jeesh, why are people still putting up with Apple's domineering control over what they're allowed to do with their own devices? Because when the average user hits a badly written app that constantly uses the network in the background and kills the battery in 2 hours, they're not gonna go sift through logs to see what's taking the power assertions.
- ww520 13y agoThe proof of work concept is really interesting. It's a good way to deter spamming. I wonder whether email can utilize the same concept to force a cost for sending email. May be a two-tier system, emails with POW signature would be sent faster, while plain old email has lower priority.
- e1ven 13y agoIt's been used in anti-spam systems many years, but never caught on, due to the differing speeds of systems. http://en.wikipedia.org/wiki/Hashcash http://en.wikipedia.org/wiki/Hashcash
- Groxx 13y agoWhich can probably take the route Litecoin has taken, and adopt Scrypt so systems are much more similar in performance.
- josephagoss 13y agoThe person who created hashcash, better known now as Bitcoins proof of work actually invented it for email use. Apparently it did not catch on that well and a decade later Satoshi used it among other things to create Bitcoin.
- dreamdu5t 13y agoI love information gold buried in comments.
- vy8vWJlco 13y agoInterestingly, Adam Back has a cache of a Satoshi Nakamoto bio, and related stuff on his home page, advertising a conspicuous interest. http://www.cypherspace.org/adam/ http://www.cypherspace.org/adam/ As long as we're speculating wildly, I have a theory... (Bear with me now) It is possible, if not probable, that Ted Nelson is himself Satoshi and was only trying to throw everyone off the trail (or it's Adam Back, I can't be sure, but it's definitely one of the two, if not both...).
- smitec 13y agoI think it will be interesting to see if this goes down a similar path to the old newsgroups wherein someone develops a protocol to send binary data through bitmessage efficiently.
- nwh 13y agoIt has been done, there's at least one base64 channel on bitmessage. I imagine its horrible slow to send though, the POW difficulty scales with the size of the message.
- vy8vWJlco 13y agoI'm not sure I see myself using BitMessage (yet) but if nothing else this FAQ has introduced me to TorChat, which looks promising for simple private text messaging - and whatdoyaknow, the latest version is in Debian Sid (and a slightly older one is in Wheezy).
- Sami_Lehtinen 13y agoI have found several issues with current implementation. Address spoofing and Inventory injection attacks, crashing listener thread with stateless connection flood etc. There are several ways to seriously disturb functionality of this network. When I have time, I'm going to look for ultimate attack, which would be network propagated persistent attack. It would crash all clients after injecting just a single message to any node of the network. Message would also be persisted in datastore so it would recrash the client on restart. Requiring manual fix or software update to get past this issue. By design system doesn't seem to scale well. I would like to see 10 million nodes on this network. Dont run current client without virtual machine, unless you're ready to encounter interesting problems with resource consumption. (cpu, memory, network, disk)
- MacsHeadroom 13y agoI like breaking things too. But it would be great to see more people like you (and me) coming up with solutions to the problems we identify. Keep hacking, my friend.
- MacsHeadroom 13y agoI like breaking things too. But it would be great to see more people like you (and me) coming up with solutions to the problems we identify. Keep hacking, my friend.
- jamoes 13y agoSo, even though it's inspired by bitcoin, it doesn't quite have the same rock-solid original implementation. Bitcoin would have collapsed if there were any major cryptographic bugs, but it turns out that "Entire classes of bugs [were] missing." (-Dan Kaminsky, Security Researcher). I hope that you can help out by reporting your findings back to them. I think Bitmessage is a really cool idea. It has the potential to allow communication to occur no matter what hostile power wants to censor it. It also finally make end-to-end message encryption a default rather than an after-thought.
- nwh 13y agoDon't assume that Bitcoin hasn't had it's share of implementation problems. There's been a couple of remote DOS bugs, remote command execution vulnerabilities, and an integer overflow that lead to the creation of 32 million additional bitcoins. https://en.bitcoin.it/wiki/Common_Vulnerabilities_and_Exposures https://en.bitcoin.it/wiki/Common_Vulnerabilities_and_Exposu...
- neilparikh 13y agoOh hey, I had an idea to make this exact protocol a few weeks ago, just for fun. I didn't think of adding a POW in though. Anyway, this is a pretty cool implementation. Just one question though, how does a node know if a certain message is for it, rather than another node? The whitepaper didn't specify anything about attaching a recipient to the message.
- dpacmittal 13y agoNode tries to decrypt all the message it receives to see if it was for them. It's there in the whitepaper: >Just like Bitcoin transactions and blocks, all users would receive all messages. They would be responsible for attempting to decode each message with each of their private keys to see whether the message is bound forthem.
- neilparikh 13y agoOh whoops, must have missed that. Thanks.
- deleted 13y ago[deleted]
- deleted 13y ago[deleted]
- joshontheweb 13y agoI'm a noob. from what I've read webRTC is encrypted. Is that all I need to have secure communications (video, audio chat). Or do I need something more like this. Is it only text chat?
- hucker 13y agoI don't really see what BitMessage provides over TorChat for example, other than being able to deliver messgages when the sender is offline. It's a much easier protocol, and much less that can go wrong.
- deleted 13y ago[deleted]
- sprash 13y ago> other than being able to deliver messgages when the sender is offline. This is exactly the point. Most people can not afford to run a mailserver 24/7. With Bitmessage you only have to be online very shortly every other day.
- illbert 13y agoThis is actually a very interesting part of it to me!
- johnchristopher 13y agoThe client UI is very nice and straightforward. But it's borderline unusable on old laptop (on my trusty 1000he atom n270) because of the raw power needed to compute and send messages.
- so898 13y agoI used to have an idea which is similar to this project. With BT network, we can exchange the database or part of the database between nodes. So the IP address will not be the personal ID anymore, everyone could register an ID for the service.
- ancarda 13y agoHas anybody had success getting this to run on OS X?
- kruhft 13y agoThe subscriptions feature looks interesting; I'm assuming that it's a mailing list type feature. Is there a list of subscribable addresses somewhere?
- kruhft 13y agoI did a bit of playing with the client. Once you generate an address under the 'Your Identities' tab, right click and select 'Special Address behaviour' and have it 'Behave as a pseudo-mailing-list address'. Here's a test one if you feel like trying it out: BM-2DCGcvGwvGUr7yYSzWWa6rBrVok8mM7HtK I don't think the name matters but I called it 'kruhft-list'.
- kruhft 13y agoHere's a post with some subscription addresses: https://bitmessage.org/forum/index.php/topic,1420.0.html https://bitmessage.org/forum/index.php/topic,1420.0.html
- YAYERKA 13y agoI find it troublesome that some of the code in BitMessage seems to be taken directly from Stackoverflow.com responses (it actually reminds me a lot of what I see happening at school). With that being said -- I do appreciate that this is new and can be improved upon quickly by a community of people with interest in such a system. [0] https://github.com/Bitmessage/PyBitmessage/blob/master/src/addresses.py#L18 https://github.com/Bitmessage/PyBitmessage/blob/master/src/a... [1] http://stackoverflow.com/questions/1119722/base-62-conversion-in-python http://stackoverflow.com/questions/1119722/base-62-conversio...
- dpacmittal 13y agoI don't see anything wrong with taking a working and bug-free code/function and using it in your own software given the snippet is in public domain. Why re-invent the wheel?