Author [EN] [ZH] [ES] [PT] [IT] [DE] [FR] [NL] [TR] [SR] [AR] [RU] [EN] [ZH] [ES] [PT] [IT] [DE] [FR] [NL] [TR] [SR] [AR] [RU] [EN] [ZH] [ES] [PT] [IT] [DE] [FR] [NL] [TR] [SR] [AR] [RU] Topic: wallet_import_private_key on uncompressed key generates compressed BTS pubkey?  (Read 665 times)

0 Members and 1 Guest are viewing this topic.

Offline monsterer


I've just done a wallet_import_private_key on an uncompressed private key and looking at the results of wallet_account_list_public_keys, it looks like the generated public key is compressed. Is this the expected behavior?
My opinions do not represent those of metaexchange unless explicitly stated.
https://metaexchange.info | Bitcoin<->Altcoin exchange | Instant | Safe | Low spreads

Offline xeroc

  • Board Moderator
  • Hero Member
  • *****
  • Posts: 12242
  • ChainSquad GmbH
    • View Profile
    • ChainSquad GmbH
  • BTS: xeroc
  • GitHub: xeroc
I'd say so .. anyway compress keys and uncompressed keys carry the same information and can be computed from eachother

Though the compressed version obviously needs less space
Give BitShares a try! Use the http://testnet.bitshares.eu provided by http://bitshares.eu powered by ChainSquad GmbH

Offline monsterer

I'd say so .. anyway compress keys and uncompressed keys carry the same information and can be computed from eachother

Though the compressed version obviously needs less space

For the gateway stuff it becomes a problem, because someone could import their uncompressed private key from bitcoin, which would get turned into a compressed bitshares pub-key, so when bitAssets are sent to the gateway, the bitshares pub-key of the sender is looked up, which maps to a different bitcoin address than the one the user has in their wallet because it's now compressed instead of uncompressed.

This would mean bitcoins would never arrive in the users wallet, they'd need to add the compressed private key in order to get their funds.
« Last Edit: January 18, 2015, 11:44:28 AM by monsterer »
My opinions do not represent those of metaexchange unless explicitly stated.
https://metaexchange.info | Bitcoin<->Altcoin exchange | Instant | Safe | Low spreads

Offline xeroc

  • Board Moderator
  • Hero Member
  • *****
  • Posts: 12242
  • ChainSquad GmbH
    • View Profile
    • ChainSquad GmbH
  • BTS: xeroc
  • GitHub: xeroc
The private key afaik cannot be compressed .. if you check out pycoin you will see that a private key corresponds to TWO btc addresse .. one is the base58checkencoded version of the uncompressed key .. the other usea the compeessed keys ... not sure how clients handle this though ..

.. worth a research
Give BitShares a try! Use the http://testnet.bitshares.eu provided by http://bitshares.eu powered by ChainSquad GmbH

Offline monsterer

The private key afaik cannot be compressed .. if you check out pycoin you will see that a private key corresponds to TWO btc addresse .. one is the base58checkencoded version of the uncompressed key .. the other usea the compeessed keys ... not sure how clients handle this though ..

.. worth a research

Compressed private key: L15CvRxwgLY1sBdGXCQz3kk7XD2sNCpuUnPE1yMR8jYDZcUgkujT
Bitcoin address: 1EGVFMirpv59mkWw7cAdtCSTphUpLnK8f6

Uncompressed private key: 5JgvT9q24UY3Tn14Wx9c8RQpF6SoJVWS2mGTWg3pA185D24q2u2
Bitcoin address: 1aDSxwBJN1uczBwCSNoSmUMA9xcG5bi22

Check them out via: https://brainwallet.github.io/
My opinions do not represent those of metaexchange unless explicitly stated.
https://metaexchange.info | Bitcoin<->Altcoin exchange | Instant | Safe | Low spreads

Offline xeroc

  • Board Moderator
  • Hero Member
  • *****
  • Posts: 12242
  • ChainSquad GmbH
    • View Profile
    • ChainSquad GmbH
  • BTS: xeroc
  • GitHub: xeroc
oh .. learned something again ..

Still .. a single private key (also) corresponds to an uncompressed an a compressed pubkey which result in two different addresses accesable from the same private key .. AFAIK


Not sure what a compressed privkey is .. and what it is used for ..
Give BitShares a try! Use the http://testnet.bitshares.eu provided by http://bitshares.eu powered by ChainSquad GmbH

Offline monsterer

oh .. learned something again ..

Still .. a single private key (also) corresponds to an uncompressed an a compressed pubkey which result in two different addresses accesable from the same private key .. AFAIK

Not sure what a compressed privkey is .. and what it is used for ..

I'm not sure, but I have both kinds in my bitcoin wallet.
My opinions do not represent those of metaexchange unless explicitly stated.
https://metaexchange.info | Bitcoin<->Altcoin exchange | Instant | Safe | Low spreads

Offline xeroc

  • Board Moderator
  • Hero Member
  • *****
  • Posts: 12242
  • ChainSquad GmbH
    • View Profile
    • ChainSquad GmbH
  • BTS: xeroc
  • GitHub: xeroc
From the bitcoin wiki:

Quote
For private keys associated with uncompressed public keys, they are 51 characters and always start with the number 5 on mainnet (9 on testnet). Private keys associated with compressed public keys are 52 characters and start with a capital L or K on mainnet (c on testnet).
Give BitShares a try! Use the http://testnet.bitshares.eu provided by http://bitshares.eu powered by ChainSquad GmbH

Offline xeroc

  • Board Moderator
  • Hero Member
  • *****
  • Posts: 12242
  • ChainSquad GmbH
    • View Profile
    • ChainSquad GmbH
  • BTS: xeroc
  • GitHub: xeroc
It seems uncompressed privkeys correspond to the uncimpressed pubkey while compressed keys correspond to compress pubkey and thus a different btc address ...

Maybe a dev can confirm
Give BitShares a try! Use the http://testnet.bitshares.eu provided by http://bitshares.eu powered by ChainSquad GmbH

Offline monsterer

It seems uncompressed privkeys correspond to the uncimpressed pubkey while compressed keys correspond to compress pubkey and thus a different btc address ...

Maybe a dev can confirm

This makes sense to me.
My opinions do not represent those of metaexchange unless explicitly stated.
https://metaexchange.info | Bitcoin<->Altcoin exchange | Instant | Safe | Low spreads

Offline xeroc

  • Board Moderator
  • Hero Member
  • *****
  • Posts: 12242
  • ChainSquad GmbH
    • View Profile
    • ChainSquad GmbH
  • BTS: xeroc
  • GitHub: xeroc
It seems uncompressed privkeys correspond to the uncimpressed pubkey while compressed keys correspond to compress pubkey and thus a different btc address ...

Maybe a dev can confirm

This makes sense to me.
yea.. every wif key has to correspond to jus a SINGLE address (stated in the btc wiki too).. though the pubkey can be represented in twobways reaulting in two addresses ... thus you distinguish the addresses by prefix for the privkey

@vikram: is this about right?
Give BitShares a try! Use the http://testnet.bitshares.eu provided by http://bitshares.eu powered by ChainSquad GmbH

Offline vikram

Currently, every private key (uncompressed WIF starting with "5"), can control 5 different addresses in BTS:
  • standard BTS
  • uncompressed BTC
  • compressed BTC
  • uncompressed PTS
  • compressed PTS

For every private key, the wallet currently checks all 5 addresses for balances.

Offline monsterer

Currently, every private key (uncompressed WIF starting with "5"), can control 5 different addresses in BTS:
  • standard BTS
  • uncompressed BTC
  • compressed BTC
  • uncompressed PTS
  • compressed PTS

For every private key, the wallet currently checks all 5 addresses for balances.

But if you import an uncompressed private key, bitshares generates a compressed public key?
My opinions do not represent those of metaexchange unless explicitly stated.
https://metaexchange.info | Bitcoin<->Altcoin exchange | Instant | Safe | Low spreads

Offline pc

  • Hero Member
  • *****
  • Posts: 1131
    • View Profile
    • Bitcoin - Perspektive oder Risiko?
  • BTS: cyrano
  • Witness: cyrano
  • Payrate: 100%
Currently, every private key (uncompressed WIF starting with "5"), can control 5 different addresses in BTS:
  • standard BTS
  • uncompressed BTC
  • compressed BTC
  • uncompressed PTS
  • compressed PTS

For every private key, the wallet currently checks all 5 addresses for balances.

But if you import an uncompressed private key, bitshares generates a compressed public key?

That question doesn't really make sense.
compressed / uncompressed are just different representations of the same key. To validate a signature you need *the* public key. You can then create compressed/uncompressed BTC+PTS *addresses* for *the* public key in order to check if the signature is sufficient to claim a genesis balance sharedropped on one or more of these BTS/PTS addresses.
Please vote for my BitShares witness "cyrano" and for my STEEM witness "cyrano.witness"!
Bitcoin - Perspektive oder Risiko? ISBN 978-3-8442-6568-2 http://bitcoin.quisquis.de

julian1

  • Guest
When exporting a key, Bitshares will only export the long form.  So if you import a compressed private key, and then immediately dump it, it will have a different representational value.

The issue for a Gateway is that it has to take a decision on receipt of the token asset, as to whether to send to the compressed or uncompressed Btc address. If it gets this wrong, then funds are lost, until the end-user can take remedial steps to reimport the keys in the alternate form.

The solution I chose for http://xchain.info was to always use the uncompressed addresses. The fact that Bitshares always exports a private key in long form, simplifies this process because you can instruct the end-user to export their Bitshares account key into a Bitcoin client (rather than the other way) and they're guaranteed to get the correct key type.
« Last Edit: January 18, 2015, 09:30:30 PM by julian1 »

 

Google+