Bitcoin Forum
June 18, 2024, 09:10:05 AM *
News: Voting for pizza day contest
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: General question about bitcoin addresses  (Read 1214 times)
anon4250158 (OP)
Sr. Member
****
Offline Offline

Activity: 266
Merit: 256


View Profile
February 27, 2014, 10:32:08 PM
 #1

I have a question about valid bitcoin addresses.  Here's what I know:

- There are 1.159x10^77 (specifically 115792089237316195423570985008687907852837564279074904382605163141518161494337) possible private keys.
- There are 2^160 (1.462x10^48) bitcoin addresses.
- Two addresses can be generated per private key, based on whether you are using the compressed or uncompressed public ECDSA key.

My question is about those two addresses.  For example, private key 5KDYX4DF5pRPhMDqice9McibukLJxnck29s4L1tpKxqHrwqY3Jr (hex: B88154472A54F77A703766A21B2BA1E3C282F233788D7B63580E6285A4FEC604, dec: 83454069075984840342299490011714230619470811543784936857410504043198687397380) produces the following two addresses:

- 1FXKSPuUmyPPbhyH6rhtF5KR6UEVbc3Qg1 [uncompressed]
- 19TtMmQ3UpddWsEN4vvx5LyPDP2Ptd2Cmo [compressed]

However, in the bitcoin wiki it states

Quote
When a private key is imported, it always corresponds to exactly one Bitcoin address

and this seems to be the case because if you import the private key above into bitcoin-qt, it only lists the uncompressed address.  Do you have access to both compressed and uncompressed addresses' balances?  If someone sent bitcoins to the compressed address but none to the uncompressed, would it still show up in bitcoin-qt?  Or is the compressed address essentially useless?  Would anyone actually store bitcoins in the compressed address (ie would it be safer to store bitcoins at the compressed address because hackers would only generate the uncompressed address and see in blockchain.info that there is a zero balance there and therefore ignore it)?


BONUS question: I wrote an address generator in C# that can generate approx 250K addresses (both compressed and uncompressed) per hour.  Vanitygen can generate about 2.1 million uncompressed per hour.  Why is there such a big difference when they both have to go through the same process (or do they)?  (My program is multithreaded too).
DannyHamilton
Legendary
*
Offline Offline

Activity: 3430
Merit: 4668



View Profile
February 27, 2014, 10:42:33 PM
 #2

When using Wallet Import Format (WIF) the encoding of the private key includes an indicator of whether the compressed or uncompressed public key should be used.

As indicated here:
https://en.bitcoin.it/wiki/Private_key

Quote
For private keys associated with uncompressed public keys, they are 51 characters and always start with the number 5. Private keys associated with compressed public keys are 52 characters and start with a capital L or K

Therefore, the reason your wallet is only using the uncompressed address is because you imported a private key in WIF that includes the "uncompressed address" indicator.

Try calculating the proper WIF format for the private key with the "compressed" indicator, and you should see the other address.
anon4250158 (OP)
Sr. Member
****
Offline Offline

Activity: 266
Merit: 256


View Profile
February 28, 2014, 12:19:16 AM
 #3

Is there any way to determine whether an address was generated from a compressed public key?
grau
Hero Member
*****
Offline Offline

Activity: 836
Merit: 1021


bits of proof


View Profile WWW
February 28, 2014, 01:18:53 AM
 #4

Is there any way to determine whether an address was generated from a compressed public key?

no way

http://bitcoin.stackexchange.com/questions/7683/why-is-it-impossible-to-derive-public-key-from-address
DannyHamilton
Legendary
*
Offline Offline

Activity: 3430
Merit: 4668



View Profile
February 28, 2014, 02:48:54 AM
 #5

Is there any way to determine whether an address was generated from a compressed public key?

Not until someone spends bitcoins that were sent to the address.

Once the bitcoins are spent, the ScriptSig will be different if the bitcoins were originally received at an address that was built from a compressed key.  From then on, you'll know that the particular address is/was from a compressed key.
clubminer
Sr. Member
****
Offline Offline

Activity: 392
Merit: 250


Let's get rich together


View Profile
February 28, 2014, 04:24:09 AM
 #6

I have a question about valid bitcoin addresses.  Here's what I know:

- There are 1.159x10^77 (specifically 115792089237316195423570985008687907852837564279074904382605163141518161494337) possible private keys.
- There are 2^160 (1.462x10^48) bitcoin addresses.
- Two addresses can be generated per private key, based on whether you are using the compressed or uncompressed public ECDSA key.

My question is about those two addresses.  For example, private key 5KDYX4DF5pRPhMDqice9McibukLJxnck29s4L1tpKxqHrwqY3Jr (hex: B88154472A54F77A703766A21B2BA1E3C282F233788D7B63580E6285A4FEC604, dec: 83454069075984840342299490011714230619470811543784936857410504043198687397380) produces the following two addresses:

- 1FXKSPuUmyPPbhyH6rhtF5KR6UEVbc3Qg1 [uncompressed]
- 19TtMmQ3UpddWsEN4vvx5LyPDP2Ptd2Cmo [compressed]

However, in the bitcoin wiki it states

Quote
When a private key is imported, it always corresponds to exactly one Bitcoin address

and this seems to be the case because if you import the private key above into bitcoin-qt, it only lists the uncompressed address.  Do you have access to both compressed and uncompressed addresses' balances?  If someone sent bitcoins to the compressed address but none to the uncompressed, would it still show up in bitcoin-qt?  Or is the compressed address essentially useless?  Would anyone actually store bitcoins in the compressed address (ie would it be safer to store bitcoins at the compressed address because hackers would only generate the uncompressed address and see in blockchain.info that there is a zero balance there and therefore ignore it)?


BONUS question: I wrote an address generator in C# that can generate approx 250K addresses (both compressed and uncompressed) per hour.  Vanitygen can generate about 2.1 million uncompressed per hour.  Why is there such a big difference when they both have to go through the same process (or do they)?  (My program is multithreaded too).

I have question how find "Identifier" with know address?
Example :
address : 15WKRoqTsVfcUc9RzjCD9VHPSAtCvkRC72 have Identifier : 61b760e7-d40e-4207-af8b-2a6ff13226e2

How find Identifier logic from knowing address?  Roll Eyes

DannyHamilton
Legendary
*
Offline Offline

Activity: 3430
Merit: 4668



View Profile
February 28, 2014, 04:28:11 AM
 #7

I have question how find "Identifier" with know address?
Example :
address : 15WKRoqTsVfcUc9RzjCD9VHPSAtCvkRC72 have Identifier : 61b760e7-d40e-4207-af8b-2a6ff13226e2

How find Identifier logic from knowing address?  Roll Eyes

There is no connection between address and Identifier.

Identifier is a random number created by the blockchain.info website.  It has no connection to bitcoin at all.  It is a unique number used by blockchain.info to identify your private key records in their database.  It is used for the blockchain.info website to look up your encrypted private keys on their site and send them to you.
anon4250158 (OP)
Sr. Member
****
Offline Offline

Activity: 266
Merit: 256


View Profile
February 28, 2014, 07:20:19 AM
 #8

Is there any way to determine whether an address was generated from a compressed public key?

Not until someone spends bitcoins that were sent to the address.

Once the bitcoins are spent, the ScriptSig will be different if the bitcoins were originally received at an address that was built from a compressed key.  From then on, you'll know that the particular address is/was from a compressed key.


How will it be different?  Looking at the scriptsig how can you tell which public key was used?
DannyHamilton
Legendary
*
Offline Offline

Activity: 3430
Merit: 4668



View Profile
February 28, 2014, 07:54:48 AM
 #9

Is there any way to determine whether an address was generated from a compressed public key?
Not until someone spends bitcoins that were sent to the address.

Once the bitcoins are spent, the ScriptSig will be different if the bitcoins were originally received at an address that was built from a compressed key.  From then on, you'll know that the particular address is/was from a compressed key.
How will it be different?  Looking at the scriptsig how can you tell which public key was used?

ScriptSig consists of the ECDSA signature and the public key.  In the case of the compressed public key, the public key in the ScriptSig will be 33 bytes instead of 65.
clubminer
Sr. Member
****
Offline Offline

Activity: 392
Merit: 250


Let's get rich together


View Profile
February 28, 2014, 06:29:31 PM
 #10

I have question how find "Identifier" with know address?
Example :
address : 15WKRoqTsVfcUc9RzjCD9VHPSAtCvkRC72 have Identifier : 61b760e7-d40e-4207-af8b-2a6ff13226e2

How find Identifier logic from knowing address?  Roll Eyes

There is no connection between address and Identifier.

Identifier is a random number created by the blockchain.info website.  It has no connection to bitcoin at all.  It is a unique number used by blockchain.info to identify your private key records in their database.  It is used for the blockchain.info website to look up your encrypted private keys on their site and send them to you.

thanks for this very valuable information. in other words, this identifier is only used blockchain.info, identify users of their addresses numbers, right?  Huh

clubminer
Sr. Member
****
Offline Offline

Activity: 392
Merit: 250


Let's get rich together


View Profile
February 28, 2014, 06:35:16 PM
 #11

I have question how find "Identifier" with know address?
Example :
address : 15WKRoqTsVfcUc9RzjCD9VHPSAtCvkRC72 have Identifier : 61b760e7-d40e-4207-af8b-2a6ff13226e2

How find Identifier logic from knowing address?  Roll Eyes

There is no connection between address and Identifier.

Identifier is a random number created by the blockchain.info website.  It has no connection to bitcoin at all.  It is a unique number used by blockchain.info to identify your private key records in their database.  It is used for the blockchain.info website to look up your encrypted private keys on their site and send them to you.

Another question,
What our address in blockchain.info, can we open in the application bitcoin (Bitcoin-Qt, MultiBit etc) on our computers?  Smiley

DannyHamilton
Legendary
*
Offline Offline

Activity: 3430
Merit: 4668



View Profile
February 28, 2014, 06:46:47 PM
 #12

Another question,
What our address in blockchain.info, can we open in the application bitcoin (Bitcoin-Qt, MultiBit etc) on our computers?  Smiley

Having an address does only allows you to send bitcoins to that address.  It does not allow you any control over the bitcoins that are at that address.  To spend bitcoins, you have to have the private key.

If you have a wallet at Blockchain.info, then the wallet software allows you to export the private key for any of the addresses in that wallet.

You can then import the private key into Bitcoin-Qt.  This will allow the Bitcoin-Qt wallet to access and spend all of the bitcoins that are part of the blockchain.info wallet.

If you do this, you should stop using the blockchain.info wallet.  It is a very bad idea to try to control the same bitcoins from multiple wallets.
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!