centove
|
|
May 06, 2013, 11:50:58 AM |
|
hello,
I'm investigating building an escrow service using multisig.
Building the multisig address requires users of the escrow to supply the pubkey of their addresses.
I can't seem to find this feature in blockchain.info wallet.
piuk, are there plans to enable users to retrieve the pubkeys of addresses in their wallets?
Unless I'm missing something, isn't the public key the address you send to people to have them send you coins? IE: 19t6JWGtHv2xmPV2KcXwTEpH2XtSb3PF57
|
|
|
|
DannyHamilton
Legendary
Offline
Activity: 3472
Merit: 4801
|
|
May 06, 2013, 11:57:04 AM |
|
hello,
I'm investigating building an escrow service using multisig.
Building the multisig address requires users of the escrow to supply the pubkey of their addresses.
I can't seem to find this feature in blockchain.info wallet.
piuk, are there plans to enable users to retrieve the pubkeys of addresses in their wallets?
Unless I'm missing something, isn't the public key the address you send to people to have them send you coins? IE: 19t6JWGtHv2xmPV2KcXwTEpH2XtSb3PF57 No. A bitcoin address is a hash of a public key. It cannot be used to verify a signature. This is why bitcoin wallets supply a public key along with a signature when creating a transaction, and not just a signature alone. Peers are then able to use the public key to verify that the signature was made with the corresponding private key, and then hash the public key to verify that it results in the bitcoin address that is associated with the transaction output that is being spent.
|
|
|
|
centove
|
|
May 06, 2013, 01:49:35 PM |
|
hello,
I'm investigating building an escrow service using multisig.
Building the multisig address requires users of the escrow to supply the pubkey of their addresses.
I can't seem to find this feature in blockchain.info wallet.
piuk, are there plans to enable users to retrieve the pubkeys of addresses in their wallets?
Unless I'm missing something, isn't the public key the address you send to people to have them send you coins? IE: 19t6JWGtHv2xmPV2KcXwTEpH2XtSb3PF57 No. A bitcoin address is a hash of a public key. It cannot be used to verify a signature. This is why bitcoin wallets supply a public key along with a signature when creating a transaction, and not just a signature alone. Peers are then able to use the public key to verify that the signature was made with the corresponding private key, and then hash the public key to verify that it results in the bitcoin address that is associated with the transaction output that is being spent. Okay, I'm seriously confused then.... verifymessage <bitcoinaddress> <signature> <message> It looks like the official client uses the address. And the only keys it talks about is the private key. signmessage <bitcoinaddress> <message> Which you can get the addresses just fine from blockchain....
|
|
|
|
Newar
Legendary
Offline
Activity: 1358
Merit: 1001
https://gliph.me/hUF
|
|
May 06, 2013, 03:33:41 PM |
|
Okay, I'm seriously confused then.... verifymessage <bitcoinaddress> <signature> <message> It looks like the official client uses the address. And the only keys it talks about is the private key. signmessage <bitcoinaddress> <message> Which you can get the addresses just fine from blockchain.... [/quote] Maybe this helps?: https://en.bitcoin.it/wiki/TransactionsA Bitcoin address is only a hash, so the sender can't provide a full public key in scriptPubKey. When redeeming coins that have been sent to a Bitcoin address, the recipient provides both the signature and the public key. The script verifies that the provided public key does hash to the hash in scriptPubKey, and then it also checks the signature against the public key.
|
|
|
|
molecular
Donator
Legendary
Offline
Activity: 2772
Merit: 1019
|
|
May 06, 2013, 05:55:15 PM Last edit: May 06, 2013, 06:41:39 PM by molecular |
|
hello,
I'm investigating building an escrow service using multisig.
Building the multisig address requires users of the escrow to supply the pubkey of their addresses.
I can't seem to find this feature in blockchain.info wallet.
piuk, are there plans to enable users to retrieve the pubkeys of addresses in their wallets?
Unless I'm missing something, isn't the public key the address you send to people to have them send you coins? IE: 19t6JWGtHv2xmPV2KcXwTEpH2XtSb3PF57 No. A bitcoin address is a hash of a public key. It cannot be used to verify a signature. This is why bitcoin wallets supply a public key along with a signature when creating a transaction, and not just a signature alone. Peers are then able to use the public key to verify that the signature was made with the corresponding private key, and then hash the public key to verify that it results in the bitcoin address that is associated with the transaction output that is being spent. Okay, I'm seriously confused then.... verifymessage <bitcoinaddress> <signature> <message> It looks like the official client uses the address. And the only keys it talks about is the private key. signmessage <bitcoinaddress> <message> Which you can get the addresses just fine from blockchain.... Good objection... I'm assuming the output of signmessage contains the pubkey (there's a "/" in there, so I guess one part is the sig and the other part the pubkey). Couldn't find concrete info on this, though. Anyone? btw: blockchain.info has an api call "verifymessage", which anologous to the equally named call in bitcoind takes a bitcoin address as argument and returns (among other things) the pubkey of the address. This kind-of solves my problem. However it's not very nice to have to tell blockchain.info wallet users to use an api call manually and the parse the resulting json for the pubkey... seems this could easily be integrated into the web gui. piuk? EDIT: just found this: If you are using My Wallet you can find the public key of a Bitcoin Address by clicking the QR code icon in the receive coins tab.
page linked as author of quote talks about the possibility to construct an escrow transaction by using the "escrow" tab after having selected "send coins". I can't find this. Neither can I find any "QR code icon" in the recieve coins tab that would reveal a pubkey. what up?
|
PGP key molecular F9B70769 fingerprint 9CDD C0D3 20F8 279F 6BE0 3F39 FC49 2362 F9B7 0769
|
|
|
piuk (OP)
|
|
May 06, 2013, 09:25:37 PM |
|
On the addresses tab using the Actions button there should now be and option to Show the public key.
|
|
|
|
willphase
|
|
May 06, 2013, 09:58:37 PM |
|
On the addresses tab using the Actions button there should now be and option to Show the public key.
I have an address in my wallet whose public key has never been seen on the network (it has only received bitcoins), and blockchain.info is somehow able to display what it thinks is the public key for this address, even though it cannot possibly have it... I manually converted the public key presented by blockchain.info to a bitcoin address, and it doesn't match the bitcoin address - so I"m not sure where blockchain.info is getting this public key from... Perhaps it should instead present an error if it cannot obtain the public key? Will
|
|
|
|
piuk (OP)
|
|
May 06, 2013, 10:01:10 PM |
|
On the addresses tab using the Actions button there should now be and option to Show the public key.
I have an address in my wallet whose public key has never been seen on the network (it has only received bitcoins), and blockchain.info is somehow able to display what it thinks is the public key for this address, even though it cannot possibly have it... I manually converted the public key presented by blockchain.info to a bitcoin address, and it doesn't match the bitcoin address - so I"m not sure where blockchain.info is getting this public key from... Perhaps it should instead present an error if it cannot obtain the public key? Will It doesn't need to be used on the network because the public key can be derived directly from the private key (which the JS interface has access to). How did you convert the pub key to an address? If it is for a watch only address then it may be a bug.
|
|
|
|
willphase
|
|
May 06, 2013, 10:02:14 PM |
|
It doesn't need to be used on the network because the public key can be derived directly from the private key (which the JS interface has access to). How convert the pub key to an address?
If it is for a watch only address then it may be a bug.
It's a watch only address - the private key has never been uploaded to blockchain.info. EDIT: yes, definitely a bug, because the public key it presents me is different each time. Will
|
|
|
|
piuk (OP)
|
|
May 06, 2013, 11:28:16 PM Last edit: May 07, 2013, 12:17:36 PM by piuk |
|
P2P Fallback mode in the android appThe android app now includes to ability to switch between using blockchain.info's servers to retrieve information about transactions and the bitcoin p2p network itself. When P2P mode is enabled the app will switch to using bitcoinj as an SPV client and once it has synced the block headers you can send and receive transactions even if blockchain.info is offline. It can also be used to verify your wallet balance independently of blockchain. - In P2P mode you cannot generate new addresses (since the wallet can't be saved on the remote server) - Watch only addresses will not work - If the app cannot connect to the PIN server the password will need to be re-entered every time the app launches. EDIT: yes, definitely a bug, because the public key it presents me is different each time. I'll get that fixed tommorrow.
|
|
|
|
HostFat
Staff
Legendary
Offline
Activity: 4270
Merit: 1209
I support freedom of choice
|
|
May 07, 2013, 12:32:44 AM |
|
Are you going to add the P2P Fallback mode also on the Chrome app?
|
|
|
|
minimalB
Donator
Hero Member
Offline
Activity: 674
Merit: 523
|
|
May 07, 2013, 07:30:45 AM |
|
Great stuff piuk! Thanks a lot for these new features!!!
|
|
|
|
molecular
Donator
Legendary
Offline
Activity: 2772
Merit: 1019
|
|
May 07, 2013, 12:39:22 PM |
|
On the addresses tab using the Actions button there should now be and option to Show the public key.
Thanks! You are the best. How do I get rid of the green popup? There's no close button.
|
PGP key molecular F9B70769 fingerprint 9CDD C0D3 20F8 279F 6BE0 3F39 FC49 2362 F9B7 0769
|
|
|
AvL42
|
|
May 07, 2013, 11:07:41 PM |
|
On the addresses tab using the Actions button there should now be and option to Show the public key.
I tried this on two addresses, a compressed one, and an uncompressed one. both gave me the "uncompressed" hex-string "04......" I think, that if the public key is used somewhere, then it is likely, that one will also want to check that it really corresponds to the address, and for that, one would need to know the type of the address along with the actual pub key. In the case of a compressed key it might be worth a consideration, to have it printed as "02..." (or "03..." for odd y). Another option would be to append some flag-string e.g. "04...... (compr)" to indicate "compressed"-ness without actually hiding the y-coordinate. PS: If anyone who knows compr address-types AND how they interact with escrow-keys (I fail at the latter) could speak up about what format is really needed, now that would be great
|
|
|
|
JonSnow
Member
Offline
Activity: 112
Merit: 10
|
|
May 07, 2013, 11:42:54 PM |
|
Would really love an updated iOS app! I know it's a lot of work, just saying I'm looking forward to it eventually.
|
|
|
|
BurtW
Legendary
Offline
Activity: 2646
Merit: 1137
All paid signature campaigns should be banned.
|
|
May 08, 2013, 01:39:48 AM |
|
On the addresses tab using the Actions button there should now be and option to Show the public key.
I tried this on two addresses, a compressed one, and an uncompressed one. both gave me the "uncompressed" hex-string "04......" I think, that if the public key is used somewhere, then it is likely, that one will also want to check that it really corresponds to the address, and for that, one would need to know the type of the address along with the actual pub key. In the case of a compressed key it might be worth a consideration, to have it printed as "02..." (or "03..." for odd y). Another option would be to append some flag-string e.g. "04...... (compr)" to indicate "compressed"-ness without actually hiding the y-coordinate. PS: If anyone who knows compr address-types AND how they interact with escrow-keys (I fail at the latter) could speak up about what format is really needed, now that would be great I do not know if this is what you are after but the public key and the compressed public key are basically the same thing in that given the public key you can calculate the compressed form of the public key or given the compressed form you can calculate the uncompressed form. So the public key can be displayed, emailed, transmitted, etc. in either form and from one you can always calculate the other. Does that help? I tried this on two addresses, a compressed one, and an uncompressed one. both gave me the "uncompressed" hex-string "04......"
Sounds like he is simply converting to and displaying the full form.
|
Our family was terrorized by Homeland Security. Read all about it here: http://www.jmwagner.com/ and http://www.burtw.com/ Any donations to help us recover from the $300,000 in legal fees and forced donations to the Federal Asset Forfeiture slush fund are greatly appreciated!
|
|
|
AvL42
|
|
May 08, 2013, 11:17:30 AM |
|
I do not know if this is what you are after but the public key and the compressed public key are basically the same thing ... Does that help?
For a particular private key, there exists only one public key. The representationof this public key, however, can be compressed or uncompressed, and it depends on this choice, what bitcoin-address you end up with. Therefore, the encoding of the private key (the number) to some base58-string was made such, that it contains an extra "flag" which specifies whether compressed or uncompressed representation of the public key is used for obtaining the btc-address. As this "compressedness" is relevant for the verifyication that the pub key is actually the one for a given btc-address, it appears likely to me, that using the public key for generating an escrow address will likely also need the information about compression, or the funds on the escrow address might just end up unspendable! I know pretty well about compressed and uncompressed keys, but I know notmuch about generating escrow addresses. (I don't even know, why one would even need the public keys for creating an escrow address, but someone seems to have requested the "show public keys" feature with that motivation.) Anyway, it is a pattern that I noticed in btc-world, that whenever you need a public key for a btc-address, you also need to know, if it is intended to be used compressed or uncompressed, and without that flag, the information is just incomplete (or at least requires try&error lateron).
|
|
|
|
molecular
Donator
Legendary
Offline
Activity: 2772
Merit: 1019
|
|
May 08, 2013, 12:42:21 PM |
|
I know pretty well about compressed and uncompressed keys, but I know not much about generating escrow addresses. (I don't even know, why one would even need the public keys for creating an escrow address, but someone seems to have requested the "show public keys" feature with that motivation.)
Actually my request for this may have been based on the false assumption that "addmultisigaddress" rpc call of bitcoind requires a list of public keys. I just checked again and it seems one can also use addresses: addmultisigaddress <nrequired> <'["key","key"]'> [account] Add a nrequired-to-sign multisignature address to the wallet" each key is a Bitcoin address or hex-encoded public key If [account] is specified, assign address to [account].
well, all the better. Sorry @piuk for making you introduce a feature I probably wont need after all. I still thinkgs it's a good feature, though. EDIT: correction. Using address seems to only work when address has been used in blockchain and pubkey can therefore be retreived from blockchain: #> bitcoind addmultisigaddress 1 '["19hMC4B6U1QNwvg5Fk2RogRLxSgoVV9L2n"]' no full public key for address 19hMC4B6U1QNwvg5Fk2RogRLxSgoVV9L2n (code -1)
|
PGP key molecular F9B70769 fingerprint 9CDD C0D3 20F8 279F 6BE0 3F39 FC49 2362 F9B7 0769
|
|
|
davidpbrown
|
|
May 08, 2013, 05:11:46 PM Last edit: May 09, 2013, 04:57:44 PM by davidpbrown |
|
Would be useful to have my address and QR code displayed without having to login.. so on the nickname pages like https://blockchain.info/wallet/nickname
|
฿://12vxXHdmurFP3tpPk7bt6YrM3XPiftA82s
|
|
|
AvL42
|
|
May 08, 2013, 09:34:38 PM Last edit: May 10, 2013, 08:56:01 PM by AvL42 |
|
EDIT: correction. Using address seems to only work when address has been used in blockchain and pubkey can therefore be retreived from blockchain
I've now tried it, myself: I picked a compressed and an uncompressed key from my wallet (yes, my wallet has a couple of each kind) and created a multisig-address from these two. I then re-did the addmultisigaddress, replacing the compressed address by its compressed key, and it gave me the same multisig address back as before. Then I re-did it again, this time with the "04..."-format pub key instead, and without much surprise I got a different address, now. tl;dr? It definitely matters, whether the address has been created as a compressed or uncompressed key, and the current feature is very bad at the moment when used on compressed addresses! If some key is a "compressed" one, and you pass that "04..." string to someone else, who then creates a multisig-address based on the "04..." key you gave him, then you will NOT be able to sign it later! For compressed keys, the blockchain.info wallet should definitely show some "02..." or "03..." string! EDIT: has been fixed, since. Thanks!
|
|
|
|
|