Pages:
Author

Topic: [ANNOUNCE] Bitmessage - P2P Messaging system based partially on Bitcoin - page 23. (Read 89873 times)

legendary
Activity: 3920
Merit: 2349
Eadem mutata resurgo
Why not make it so one can use a Bitcoin address / keypair for messaging?

Bitcoin and Bitmessage keys will be interchangeable. Today I coded the key generation sections; Bitmessage will even save keys in Wallet Import Format.

However Bitmessage will use two keys- one for encryption and one for signing. Thus Bitcoin addresses (which are only a hash of a signing key) wouldn't be sufficient for Bitmessage. It seems to me that Bitmessage addresses could be turned into Bitcoin addresses but not the other way around.

This is gonna be cool.

Now you could store those Bitmessage/Bitcoin keys in a namecoin 'alias' namespace http://dot-bit.org/Namespace:Aliases and have the Bitmessenger client just send to a human-readable name from the namecoin blockchain ... voila ... end-to-end secure, autonomous look-up, authenticated, human-readable messaging system.

That is a good idea isn't it!

Unfortunately, I asked a 'hero member' (I forget who) on IRC about this possibility and why no one was doing it with Bitcoin addresses yet and he said that Namecoin is "more or less dead now. pretty much abandoned by its creators... it's been sort of spammed to death because they massively lowered the cost to get names, so there is effectively no anti-dos in it anymore."

Though that may be gone, the very notion that it could have and would have worked means that I personally believe that someone someday will come up with a way to link human-meaningful names to non-human-meaningful data (like Bitcoin and Bitmessage addresses). Then we will have solved Zooko's triangle!
please note that namecoin has solved this problem like two years ago

I am only now realizing the implications of your project. It's like you took two steps at once. I posted about the first step here: https://bitcointalksearch.org/topic/encryptdecrypt-arbitrary-text-using-bitcoin-keys-145098


Phelix: doublec and I were discussing this (over bitmessage as it happens) ... we could store bitmessage address in its own namespace in namecoin blockchain ... e.g. "bm/" namespace

$ namecoind name_new bm/phelix

$ namecoind name_update bm/phelix 'bm:oonwienfwna1244nfon aIKNneid'

or similar. Then we need a small piece of code, or an extension to bitmessage that looks up names from contact list inside bitmessage and pulls out the relevant BM-address from the namecoin blockchain.

I think the really cool part about this is you could have the code automatically generate new BM-addresses as often as you like and update the namecoin record at the same time. In this way, you can have your BM-address changing regularly for security, as suggested by BM author, but keep the name, i.e. bitmessage email address secured by namecoin blockchain in human readable form. If you need higher security and change addresses often you will incur more nmc fees and vice versa less security, less fees; you will pay for the security you get, in nmc fees.

Namecoin and bitmessage will work well together since they both solve different elements of resource allocation.
staff
Activity: 4270
Merit: 1209
I support freedom of choice
Another cool thing can be a different icon (with numbers) on the taskbar if there are some new unread messages.
legendary
Activity: 1708
Merit: 1020
Why not make it so one can use a Bitcoin address / keypair for messaging?

Bitcoin and Bitmessage keys will be interchangeable. Today I coded the key generation sections; Bitmessage will even save keys in Wallet Import Format.

However Bitmessage will use two keys- one for encryption and one for signing. Thus Bitcoin addresses (which are only a hash of a signing key) wouldn't be sufficient for Bitmessage. It seems to me that Bitmessage addresses could be turned into Bitcoin addresses but not the other way around.

This is gonna be cool.

Now you could store those Bitmessage/Bitcoin keys in a namecoin 'alias' namespace http://dot-bit.org/Namespace:Aliases and have the Bitmessenger client just send to a human-readable name from the namecoin blockchain ... voila ... end-to-end secure, autonomous look-up, authenticated, human-readable messaging system.

That is a good idea isn't it!

Unfortunately, I asked a 'hero member' (I forget who) on IRC about this possibility and why no one was doing it with Bitcoin addresses yet and he said that Namecoin is "more or less dead now. pretty much abandoned by its creators... it's been sort of spammed to death because they massively lowered the cost to get names, so there is effectively no anti-dos in it anymore."

Though that may be gone, the very notion that it could have and would have worked means that I personally believe that someone someday will come up with a way to link human-meaningful names to non-human-meaningful data (like Bitcoin and Bitmessage addresses). Then we will have solved Zooko's triangle!
please note that namecoin has solved this problem like two years ago

I am only now realizing the implications of your project. It's like you took two steps at once. I posted about the first step here: https://bitcointalksearch.org/topic/encryptdecrypt-arbitrary-text-using-bitcoin-keys-145098

sr. member
Activity: 369
Merit: 250
That Reddit post about BitMessage must have gained some attention.. we've gone from like 2-3 connections to like 40 overnight..

link please?  That might get some of my friends looking into it...

There's been a few mentions.. heres one:
http://www.reddit.com/r/darknetplan/comments/18o5wg/bitmessage_decentralized_alternative_to_email/
legendary
Activity: 2114
Merit: 1031
That Reddit post about BitMessage must have gained some attention.. we've gone from like 2-3 connections to like 40 overnight..

link please?  That might get some of my friends looking into it...
sr. member
Activity: 369
Merit: 250
That Reddit post about BitMessage must have gained some attention.. we've gone from like 2-3 connections to like 40 overnight..
staff
Activity: 4270
Merit: 1209
I support freedom of choice
I explained it wrong, I think that the USB flash drive will be enough.
sr. member
Activity: 249
Merit: 251
By portable do you mean, for example, be able to run it on a USB flash drive and take the keys and messages with you? This would be quite easy actually.
Yes, but would like also that it works on systems like google drive/dropbox/wuala.
So that I can just sync the google drive/dropbox/wuala folder from another computer and it will instantly work.
Building support for those programs into Bitmessage would be out of the scope of the project. You might consider using deterministic addresses and using the same passphrase on two computers thus creating the same addresses. You would receive messages on both computers and could reply using either one. They would have separate 'sent' folders but this solution would be secure and doesn't use a 3rd party service. The only caveat is that each computer should go online at least once every two days to receive messages or else only the one computer that is online will get them (this may be perfectly acceptable- for example if you go on vacation then it does not matter that your office computer is not receiving messages).
staff
Activity: 4270
Merit: 1209
I support freedom of choice
By portable do you mean, for example, be able to run it on a USB flash drive and take the keys and messages with you? This would be quite easy actually.
Yes, but would like also that it works on systems like google drive/dropbox/wuala.
So that I can just sync the google drive/dropbox/wuala folder from another computer and it will instantly work.
By the way, I think that making it working from an USB flash drive will be enough Smiley
sr. member
Activity: 249
Merit: 251
Can you make it portable?
By portable do you mean, for example, able to run it on a USB flash drive and take the keys and messages with you? This would be quite easy actually.
staff
Activity: 4270
Merit: 1209
I support freedom of choice
Can you make it portable?
sr. member
Activity: 249
Merit: 251
PyBitmessage is written for Python 2.7, not Python 3 and that is the source of the problem. I currently don't know how easy it would be to get running on both and if it would be too much work to support both in the future.
legendary
Activity: 1036
Merit: 1000
DARKNETMARKETS.COM
Is Bitmessage working on Linux? I tried it on Debian Testing:
Code:
$ python --version
Python 2.7.3
$ python bitmessagemain.py
PyBitmessage requires PyQt. You can download it from http://www.riverbankcomputing.com/software/pyqt/download   or by searching Google for 'PyQt Download' (without quotes).
Error message: No module named PyQt4.QtCore
PyQt on Debian exist only in version designed for Python3. So I installed it - python 3.2 and PyQt 4.9.3-4:
Code:
$ python3 --version
Python 3.2.3
 python3 bitmessagemain.py
  File "bitmessagemain.py", line 22
    except Exception, err:
                    ^
SyntaxError: invalid syntax
Any suggestions? I am using latest version from git.
staff
Activity: 4270
Merit: 1209
I support freedom of choice
Ok, I tested the last version (v0.2.4) and it finally works perfecly! Grin
It's a good alternative to the email, and it's completely decentralized!
We just need more nodes Wink
staff
Activity: 4270
Merit: 1209
I support freedom of choice
Wohoo! Grin
This should fix the problem (for me) that I explained previously.
sr. member
Activity: 249
Merit: 251
But because it is not possible to do encryption without a public key, the public key must be acquired before a person-to-person message can be sent.
Can you add a function to broadcast/share a database of all public keys created of the last X days on the Bitmessage's network? (between clients)
You can add a limit on Bitmessage settings on how many public keys (or how many X "days" ) it will be shared with other clients.

I could have Bitmessage broadcast out a public key after generating it, yes. As I cannot think of any real downsides it seems like it would be a good idea. I will implement it. The X days variable already exists; it is set at 4 weeks. I would only do this for randomly generated addresses though as users will usually generate deterministic addresses in large batches and only use them as needed.

EDIT: Implemented. Active in version v0.2.4 and beyond.
staff
Activity: 4270
Merit: 1209
I support freedom of choice
But because it is not possible to do encryption without a public key, the public key must be acquired before a person-to-person message can be sent.
Can you add a function to broadcast/share a database of all public keys created of the last X days on the Bitmessage's network? (between clients)
You can add a limit on Bitmessage settings on how many public keys (or how many X "days" ) it will be shared with other clients.
sr. member
Activity: 249
Merit: 251
@Atheros
ok, but can you explain why I can send Bitcoin to other users even if the client doesn't know my public key?
I'm not so expert about the deep works of Bitcoin ...

In the very early days of Bitcoin you did have to have the other party's public key and all transactions were of this format. Within a couple weeks, Satoshi started using transactions that spent to a hash of a public key- the hash encoded in a Bitcoin address. A modern typical Bitcoin transaction script basically says "Whoever has a public key that hashes to match this hash may spend this bitcoin to someone else."  Then the receiver of the bitcoin who spends it later must at that time supply both the public key and the signature for this latest transaction. You'll notice that nothing is encrypted in Bitcoin; only signatures are used. In Bitmessage, person-to-person messages are signed and then encrypted. Broadcast messages are only signed, therefore, just like with Bitcoin, you don't need anyone else's public key ahead of time to send a broadcast message and they don't need yours to subscribe. But because it is not possible to do encryption without a public key, the public key must be acquired before a person-to-person message can be sent.

From what I can tell about bitmessage it looks like since it uses elliptical curve which is what Bitcoin addresses are derived from at a particular layer, I believe if you were to take public key of the elliptical curve and sha256 it and base58 (its been awhile that’s probably not exactly right) you got your self a bitcoin address.

That's that right idea.
Public keys   ----->   SHA512  ---->   RIPEMD160  ---->  Attach the address version number, stream number, and checksum ---->  base58

You need their public key from them before you can send a message.
What I'm asking is this: will Bitmessage be able (on next versions) to achieve the status where two users are able to send each other messages without being online contemporary?
I mean "never".

You can currently. But the first time they use their addresses with each other, Alice will have to press the send button and then may go offline, then Bob will have to go online at some point (to reply with his public key) and may go offline, then Alice will have to go online at some point (to send the message). I know it sounds like a lot of back and fourth but after it is done once then sending a message is a one-step-process. Also if Charlie comes along and wants to send Bob a message within the next 4 weeks, the above process is skipped because everyone already has Bob's pubkey.
staff
Activity: 4270
Merit: 1209
I support freedom of choice
You need their public key from them before you can send a message.
What I'm asking is this: will Bitmessage be able (on next versions) to achieve the status where two users are able to send each other messages without being online contemporary?
I mean "never".
legendary
Activity: 980
Merit: 1003
I'm not just any shaman, I'm a Sha256man
@Atheros
ok, but can you explain why I can send Bitcoin to other users even if the client doesn't know my public key?
I'm not so expert about the deep works of Bitcoin ...

From what I can tell about bitmessage it looks like since it uses elliptical curve which is what Bitcoin addresses are derived from at a particular layer, I believe if you were to take public key of the elliptical curve and sha256 it and base58 (its been awhile that’s probably not exactly right) you got your self a bitcoin address.
Pages:
Jump to: