Author

Topic: Sharing public key (Read 715 times)

member
Activity: 98
Merit: 10
error
July 29, 2015, 07:25:17 PM
#11
Thank you for that excellent post, Brian. Cheers
jr. member
Activity: 47
Merit: 16
July 29, 2015, 06:18:29 PM
#10
Sharing public keys is considered "safe"
Public keys are just that Public.  The main reason for the shortening of the Public Key into the Address was to provide convenience.  The "Address" is the hash of the public key but is 160 bits instead of 256 bits.  160 bit QR codes are much smaller than 256 bit QR codes.

Reusing address (public keys) is considered less safe
You will read it everywhere, but I find very little explanation of it.  Address were always intended to be one use items.  They were not intended to be reused.  This can be for a number of reasons, anonymity may be one of them, but the most piratical reason is likely related to the ECDSA signing algorithm.  When transactions are signed, they require a strongly generated random number, this is called the "k-value".  Due to a bug in the RNG in Android (since fixed), some people who reused addresses were exposed because android was not using random "k-values".  The danger of reusing k-values in ECDSA is that the private key can be leaked.  So perhaps the adage of never reusing address is related to the risk of recurring k-values.  If use an address once, there will only ever be one k-factor used with it, therefore k-factor collision is impossible.

Public keys are "leaked" whenever you sign a message using the "sign message" feature in bitcoin-qt, or other apps
Most wallets have the ability to sign a block of text with your bitcoin address.  Obviously this message is being signed with your private key and is verifiable with your public key.  Interesting thing is... you don't have to give your public key for the message to be verified.  The reason this works is that the signature type used allows the public key to be derived from the signature and the message.  Once the public key is derived it is hashed and compared to your address.

Public keys are "leaked" whenever you spend the money that was sent to that address
When you spend bitcoins, the public key for the address you spend FROM will be published in the blockchain.  A normal spend transaction will publish 2 numbers in the sigScript.  The public key and the signature of the hash of the spending transaction.  Anyone looking at the blockchain will see the public key of the address that the coins are being spent from
member
Activity: 98
Merit: 10
error
July 29, 2015, 04:49:22 PM
#9
this website let users create addresses and multi-sig addresses. It gives the public keys and for multi-sigs it asks for them.


https://coinb.in/#newAddress

https://coinb.in/#newMultiSig
sr. member
Activity: 392
Merit: 268
Tips welcomed: 1CF4GhXX1RhCaGzWztgE1YZZUcSpoqTbsJ
July 29, 2015, 04:07:48 PM
#8

public addresses are generated from public keys, but from an address you can't know the key. you can't go backward in sha256 encryption.

SHA256 is not encryption. Also, RIPEMD160 is used in one step of the generation of an address.
member
Activity: 98
Merit: 10
error
July 29, 2015, 04:04:10 PM
#7
There are any risks in sharing my public key? Not the public address but the key that originates de addresses.

I know it is "public" but i am not sure about sharing it with others. The addresses are meant to be shared but the key (the public one of course) i am not so sure.

I suppose my first question is, how are you going to find your public key?

Next I'd ask, why would you be sharing it? (Typically you'll need to share your public key if you are trying to set up a multi-sig address with others).

Finally, I'd point out that it's generally recommended that you use a new address for EVERY transaction. If you do this, then the public key becomes useless, to you and everyone else, once you spend the bitcoins that were received at the associated address.  So, unless you are setting up a multi-sig address the public key really isn't very useful.  It will be publicly available to the whole world anyhow as soon as you spend the bitcoins that were received at the address, and it isn't very useful for much of anything else.


to create a multi sig you have to provide the public keys to the website (assuming you are using a website to create your multi sig).. is this safe or i shouldn't give it to anyone?

public addresses are generated from public keys, but from an address you can't know the key. you can't go backward in sha256 encryption.
legendary
Activity: 3472
Merit: 4801
July 29, 2015, 01:54:46 PM
#6
Electrum easily shows up the master public key which is what OP is talking about (i think).

If so, then this thread really belongs in the Electrum sub-forum, or at least state that fact in the post.  Asking about "public keys" in the Bitcoin Discussion forum is going to lead most people to assume you are asking about the public key that is associated with a specific address.

hero member
Activity: 700
Merit: 501
July 29, 2015, 01:45:44 PM
#5
There are any risks in sharing my public key? Not the public address but the key that originates de addresses.

I know it is "public" but i am not sure about sharing it with others. The addresses are meant to be shared but the key (the public one of course) i am not so sure.

I suppose my first question is, how are you going to find your public key?

Next I'd ask, why would you be sharing it? (Typically you'll need to share your public key if you are trying to set up a multi-sig address with others).

Finally, I'd point out that it's generally recommended that you use a new address for EVERY transaction. If you do this, then the public key becomes useless, to you and everyone else, once you spend the bitcoins that were received at the associated address.  So, unless you are setting up a multi-sig address the public key really isn't very useful.  It will be publicly available to the whole world anyhow as soon as you spend the bitcoins that were received at the address, and it isn't very useful for much of anything else.


Electrum easily shows up the master public key which is what OP is talking about (i think). The point is sharing that so the person that pays you generates a new address each time, and the person that pays you doesn't know what address is generated so he can't track your coins. You would need to share a different master public key for each person tho. I think this system is much more private than generating a new address each time, and for example sometimes you can't generate a new address each time. You can't give a sig campaign hoster a new address each week to pay you for example. I don't know if they would accept master public keys instead.
Im not sure about the risks involved with master public key if there are any tho.
legendary
Activity: 3472
Merit: 4801
July 29, 2015, 01:39:49 PM
#4
There are any risks in sharing my public key? Not the public address but the key that originates de addresses.

I know it is "public" but i am not sure about sharing it with others. The addresses are meant to be shared but the key (the public one of course) i am not so sure.

I suppose my first question is, how are you going to find your public key?

Next I'd ask, why would you be sharing it? (Typically you'll need to share your public key if you are trying to set up a multi-sig address with others).

Finally, I'd point out that it's generally recommended that you use a new address for EVERY transaction. If you do this, then the public key becomes useless, to you and everyone else, once you spend the bitcoins that were received at the associated address.  So, unless you are setting up a multi-sig address the public key really isn't very useful.  It will be publicly available to the whole world anyhow as soon as you spend the bitcoins that were received at the address, and it isn't very useful for much of anything else.
legendary
Activity: 1274
Merit: 1000
★ BitClave ICO: 15/09/17 ★
July 29, 2015, 01:38:01 PM
#3
If you're doing some "shady" (drugs like illegal stuff) business and the sharer account can be linked to your account then yes it may be problem. They can identify you from the public key and they can find you.

Also if you use those public keys with other non-illegal addresses (which you shared with personal data) in same tx then you can be caught too.

In technically and if you don't do shady business then there's no risk to share public address.
copper member
Activity: 1498
Merit: 1528
No I dont escrow anymore.
July 29, 2015, 01:33:07 PM
#2
There are any risks in sharing my public key? Not the public address but the key that originates de addresses.

I know it is "public" but i am not sure about sharing it with others. The addresses are meant to be shared but the key (the public one of course) i am not so sure.

The public key is shared every time you create a transaction, so in a sense also meant to be shared. Its needed to verify the signature generated with the private key.
member
Activity: 98
Merit: 10
error
July 29, 2015, 01:19:16 PM
#1
There are any risks in sharing my public key? Not the public address but the key that originates de addresses.

I know it is "public" but i am not sure about sharing it with others. The addresses are meant to be shared but the key (the public one of course) i am not so sure.
Jump to: