Pages:
Author

Topic: Tool or method for finding public key of Bitcoin address (Read 1387 times)

newbie
Activity: 17
Merit: 1
i don't know if there is anyone here who has solved one of Satoshi's puzzles or not.

but let us
suppose we can find the private key of a puzzle.
will this key be enough to import the btc in a new wallet (like Electrum)??

or, in addition to the private key, will a two-step verification or multi-signature or something like this, be required?
It depends on which puzzle you have solved, if it's 66, 67 then you won't succeed with electrum, you'd need to either have a bot that automatically double spends the tx or talk with a large mining pool to privately include your tx in a block, because once 66 or 67 start moving on chain and having their public keys revealed, it would take seconds for looters to brute force the public key for the private key just to double spend your transaction and loot for free.

But if it's 130, 135 etc, go ahead and use electrum with Tor.
There is no multi signature etc.

how is this possible?
does it happens with keys 65 ,64,63

can you tell me how to avoid this using electrum if it possible
newbie
Activity: 11
Merit: 0


I have designed my own version in Sagemath + Python for find public key when we only knows "hash160 ripemd".

this is another solution but is not fast. and even when you will find , you only find one of 2**96 possibilites
Well all I can see is just talking, if you have a tool efficient in finding collisions then share it so we can judge it's performance, though I wonder why would you increase your search range like that? You'd probably never find a collision but searching in 66 bit range you will definitely find the key.


ok.
brute forcing private keys of a btc ddress may take less than public keys but some codes need to work with pubkeys...
for example , keyhunt in bsgs mode, works faster than other tools in this case.
so this tool has an input file or single pubkey to work on it and find the privatekey .

Now for these puzzles (that have no output transactions) we have no pubkeys and we can not use bgsg mode of keyhunt.
is this correct ??
All the low range keys such as 65, 70, 75, 80, 85, 90 could be found fairly easily, e.g, if you had the public key for #66, it would take a minute considering you had a good gear using kangaroo, that's why they are all solved, now the  biggest challenge next in line is #130, which will be solved probably in a few month from now.

Also note that when you are brute forcing to find rmd160, you are performing a sha256 + an rmd160 hashing with each iteration, so you'd get much less speed, but when you have a public key you can search much faster.  But none of the existing tools are good enough, they are practically useless for high ranges.

Kangaroo and bsgs only work with public keys, both useless now.
Bitcrack vanitygen can search for address/rmd160, both useless now.
Don't waste time on addresses/rmd160, instead work on public key division.😉


hello Sir, I'm noob..just question how to find pub key? I just know to get that we must derivative from base58 => Ripe160 => sha256, I dont know if any method to find pubkey.. thank in advance
newbie
Activity: 17
Merit: 0
Hi guys. Just wandering  if their is a tool, script or method for finding the uncompressed public key of Bitcoin address. I have heard that you can if an addressed has sent funds. I haven't got a clue on how to find this information. Thanks



Maybe this can help: https://github.com/Mezantrop74/addr2pub
copper member
Activity: 193
Merit: 255
Click "+Merit" top-right corner
Hi guys. Just wandering  if their is a tool, script or method for finding the uncompressed public key of Bitcoin address. I have heard that you can if an addressed has sent funds. I haven't got a clue on how to find this information. Thanks

Check out my simple and fast blockchain parser.

With some clever regex, it should be a walk in the park to list all public keys that have been exposed when spending.
copper member
Activity: 1330
Merit: 899
🖤😏
Thank you for the answer.

as i understood, if my target is #130 and i have the private key, at the same time as importing to my wallet, looters will also start working,
but considering the range of the private key that they want to brute force and the time they spend on it, definitely "My transaction will be confirmed sooner and they or other bots don't stand a chance.

is it correct?
Yes, for any keys above 100 bit range, once you solve it, you will be safe to send it to your own address because looters won't be able to solve the key in time.
Only the puzzle 66, 67, 68, 69, 71, 72 up to 100 could be solved if their public keys were revealed. Easily.

Puzzles 130 and above are totally safe.
newbie
Activity: 5
Merit: 0
Thank you for the answer.

as i understood, if my target is #130 and i have the private key, at the same time as importing to my wallet, looters will also start working,
but considering the range of the private key that they want to brute force and the time they spend on it, definitely "My transaction will be confirmed sooner and they or other bots don't stand a chance.

is it correct?
copper member
Activity: 1330
Merit: 899
🖤😏
i don't know if there is anyone here who has solved one of Satoshi's puzzles or not.

but let us
suppose we can find the private key of a puzzle.
will this key be enough to import the btc in a new wallet (like Electrum)??

or, in addition to the private key, will a two-step verification or multi-signature or something like this, be required?
It depends on which puzzle you have solved, if it's 66, 67 then you won't succeed with electrum, you'd need to either have a bot that automatically double spends the tx or talk with a large mining pool to privately include your tx in a block, because once 66 or 67 start moving on chain and having their public keys revealed, it would take seconds for looters to brute force the public key for the private key just to double spend your transaction and loot for free.

But if it's 130, 135 etc, go ahead and use electrum with Tor.
There is no multi signature etc.
newbie
Activity: 5
Merit: 0
i don't know if there is anyone here who has solved one of Satoshi's puzzles or not.

but let us
suppose we can find the private key of a puzzle.
will this key be enough to import the btc in a new wallet (like Electrum)??

or, in addition to the private key, will a two-step verification or multi-signature or something like this, be required?
newbie
Activity: 5
Merit: 0
ok.
thank you for your response.
i will take a look if you share the source.
copper member
Activity: 1330
Merit: 899
🖤😏


I have designed my own version in Sagemath + Python for find public key when we only knows "hash160 ripemd".

this is another solution but is not fast. and even when you will find , you only find one of 2**96 possibilites
Well all I can see is just talking, if you have a tool efficient in finding collisions then share it so we can judge it's performance, though I wonder why would you increase your search range like that? You'd probably never find a collision but searching in 66 bit range you will definitely find the key.


ok.
brute forcing private keys of a btc ddress may take less than public keys but some codes need to work with pubkeys...
for example , keyhunt in bsgs mode, works faster than other tools in this case.
so this tool has an input file or single pubkey to work on it and find the privatekey .

Now for these puzzles (that have no output transactions) we have no pubkeys and we can not use bgsg mode of keyhunt.
is this correct ??
All the low range keys such as 65, 70, 75, 80, 85, 90 could be found fairly easily, e.g, if you had the public key for #66, it would take a minute considering you had a good gear using kangaroo, that's why they are all solved, now the  biggest challenge next in line is #130, which will be solved probably in a few month from now.

Also note that when you are brute forcing to find rmd160, you are performing a sha256 + an rmd160 hashing with each iteration, so you'd get much less speed, but when you have a public key you can search much faster.  But none of the existing tools are good enough, they are practically useless for high ranges.

Kangaroo and bsgs only work with public keys, both useless now.
Bitcrack vanitygen can search for address/rmd160, both useless now.
Don't waste time on addresses/rmd160, instead work on public key division.😉

newbie
Activity: 5
Merit: 0
ok.
brute forcing private keys of a btc ddress may take less than public keys but some codes need to work with pubkeys...
for example , keyhunt in bsgs mode, works faster than other tools in this case.
so this tool has an input file or single pubkey to work on it and find the privatekey .

Now for these puzzles (that have no output transactions) we have no pubkeys and we can not use bgsg mode of keyhunt.
is this correct ??
legendary
Activity: 3472
Merit: 10611
if we have only HASH160 then How to findout publickey (comprssd or uncomprssd) for that address ??
Since hash algorithms are irreversible, it is not possible to compute the message (public key in case of the output script you posted) from the hash digest.
copper member
Activity: 1330
Merit: 899
🖤😏
thanks for your response.

if we have a transaction like this :
https://www.blockchain.com/explorer/addresses/btc/13zb1hQbWVsc2S7ZTZnP2G4undNNpdh5so

then we have just input in this wallet address but we do not see any output from wallet,
so we can not gain any 130 or 66 character pubkey from sigscript.

we have only pkscript like this :
Pkscript
OP_DUP
OP_HASH160
20d45a6a762535700ce9e0b216e31994335db8a5
OP_EQUALVERIFY
OP_CHECKSIG

i want to ask you ,
 if we have only HASH160 then How to findout publickey (comprssd or uncomprssd) for that address ??


Well, a bite that big might choke you, first you need to grow some teeth before starting to chew. 😉

If you haven't figured out how these puzzles and in general Bitcoin works, whatever you are attempting is not going to work.
Now to answer your question, if an address has any output( sending out) then you can derive the public key by going to this site called Bitcointools.site in there you can insert address and if that address has any spent transaction recorded on block chain, it will show it to you.

Technically though, the only way to find that address's public key aka puzzle #66, you either brute force to find the private key or you'd try to break 2 hash functions to get the "public key". To reverse 2 hash functions, you'd need to at least brute force 2^81 different  hashes, but brute forcing for private key would only take a maximum 2^66 key generation processes.

If by any chance you are from middle east, you might find your native language topic here :
https://bitcointalk.org/index.php?board=11.0
newbie
Activity: 5
Merit: 0
thanks for your response.

if we have a transaction like this :
https://www.blockchain.com/explorer/addresses/btc/13zb1hQbWVsc2S7ZTZnP2G4undNNpdh5so

then we have just input in this wallet address but we do not see any output from wallet,
so we can not gain any 130 or 66 character pubkey from sigscript.

we have only pkscript like this :
Pkscript
OP_DUP
OP_HASH160
20d45a6a762535700ce9e0b216e31994335db8a5
OP_EQUALVERIFY
OP_CHECKSIG

i want to ask you ,
 if we have only HASH160 then How to findout publickey (comprssd or uncomprssd) for that address ??

HCP
legendary
Activity: 2086
Merit: 4361
Thanks that helps. The issue I am still having is that when a address sends btc and I look at the scriptsig and extract the last 130 hex characters and enter it it the tools suggested in this thread it doesn't have any relation to the address or it's an invalid public key.
As a worked example... have a look at this recent tranasction: https://www.blockchain.com/btc/tx/bee2768770f68a31543eda6fd40da75e4432f434cf8c3312497cdeebb4a2ac6c

If we look at the sigscript:
Code:
47304402200c794238b992fbdda63b1606edc07c5b48a29e003e7cf9d4894baa7baf3b063b022012ed8593d439dc05e3639d60434028e8b0a2207a139ec58bf5e719e019f09485012102ebb666614f5faff4aa43e5f1be868ebc5f1be67c8553924410d8d0111a9912d2

Firstly we try the final 130 chars:
Code:
8593d439dc05e3639d60434028e8b0a2207a139ec58bf5e719e019f09485012102ebb666614f5faff4aa43e5f1be868ebc5f1be67c8553924410d8d0111a9912d2

Doesn't begin with "04", so it's not an uncompressed key... not surprising, given that it is a relatively recent transaction and most legacy addresses used today will be using "compressed" keys.


Then we try the final 66:
Code:
02ebb666614f5faff4aa43e5f1be868ebc5f1be67c8553924410d8d0111a9912d2

"02", so it's likely a compressed public key... if we put that into the Address tool I listed earlier, we can see it outputs:



Which matches the bitcoin address from the transaction:




NOTE: This tool was not designed for "compressed" keys... it will complain that it has an "invalid public key length":


But it will still generate the correct address.






Now, let's look at this much older transaction: https://www.blockchain.com/btc/tx/b9d69463c500b81dc2ff600d0b528b15fb816c4dab11e424151de0bcbea7f26f

The sigscript of the first input is:
Code:
473044022018c35ebde490ca56f6d073a20ec3199f461ee9c99d2c020fdecd8711bdb9cc5802205fd0ce0f61ee2566cafd4254bc1d34a4fcf02d2a55c281a0a95a8c332bff2443014104f52193d56ffda6ef5fbc3b4ada7768c347321f47f1a999b0ca9b8374d8228275ee2c1ecf45c718538288667ad367f97a00116bd0630c76cc01f26161ce70057a

The last 130 chars are:
Code:
04f52193d56ffda6ef5fbc3b4ada7768c347321f47f1a999b0ca9b8374d8228275ee2c1ecf45c718538288667ad367f97a00116bd0630c76cc01f26161ce70057a

Starts with 04... quite likely an uncompressed public key... So, feeding that into the tool:



And we can see the address checks out:

legendary
Activity: 3472
Merit: 10611
You will continue being confused and will face new problems any time you see a different transaction from the last one you saw when you jump in at the middle instead of starting at the beginning!
You should start by first understanding the structure of a transaction (https://developer.bitcoin.org/reference/transactions.html#raw-transaction-format) then follow it up by learning how bitcoin scripts work (https://en.bitcoin.it/wiki/Script) and finally start looking at transactions to try and find the public keys in them.
legendary
Activity: 3038
Merit: 4418
Crypto Swap Exchange
The issue I am still having is that when a address sends btc and I look at the scriptsig and extract the last 130 hex characters and enter it it the tools suggested in this thread it doesn't have any relation to the address or it's an invalid public key.
Are you sure that it's an uncompressed key? Is it a bech32 or other forms of address type? Most of the keys are compressed public keys and you'll be looking at 66 hex characters or 33 bytes. Could you give an example of the transaction in question?

member
Activity: 184
Merit: 14
Thanks that helps. The issue I am still having is that when a address sends btc and I look at the scriptsig and extract the last 130 hex characters and enter it it the tools suggested in this thread it doesn't have any relation to the address or it's an invalid public key.
legendary
Activity: 2268
Merit: 18748
Ok I get that but the full  public key is 130 characters. Is it the first 65 (X value)
A full public key is 130 hexadecimal characters, which corresponds to 520 bits. This is composed of the following three things concatenated (joined) together:

Code:
Prefix byte - always 04 for uncompressed public keys
x coordinate - 256 bit number (64 characters)
y coordinate - 256 bit number (64 characters)

A compressed public key is 66 hexadecimal characters, which corresponds to 264 bits. This is composed of the following two things concatenated together:

Code:
Prefix byte - either 02 or 03, depending on whether the y coordinate is even or odd respectively
x coordinate - 256 bit number (64 characters)

Because of the nature of the elliptic curve that bitcoin uses, each x coordinate can produce two valid y coordinates, one of which will be even and one of which will be odd. Knowing the x coordinate and whether y is even or odd allows you to calculate the correct y coordinate.



This online tool will do it for you: https://gobittest.appspot.com/Address
If you don't care about the steps and just want the final result, then the link BlackHatCoiner shared above - https://iancoleman.io/bitcoin-key-compression/ - might be better, since it will automatically compress or uncompress your public key and provide both addresses.
HCP
legendary
Activity: 2086
Merit: 4361
Ok I think I have found how to do that now. How about a method to do the reverse (turn uncompressed public key into address)?
This online tool will do it for you: https://gobittest.appspot.com/Address

Just ignore the box labelled "0 - Private ECDSA Key"... and put the public key in the box labelled "1 - Public ECDSA Key" and then press "Send"... it'll show you the step by step guides and the address at the bottom... but the method is basically the same as BlackHatCoiner posted above:

1 - Public ECDSA Key
Code:
044F355BDCB7CC0AF728EF3CCEB9615D90684BB5B2CA5F859AB0F0B704075871AA385B6B1B8EAD809CA67454D9683FCF2BA03456D6FE2C4ABE2B07F0FBDBB2F1C1

2 - SHA-256 hash of 1
Code:
34D7F0FE7AFE22D2BE114044D87F928C7F9044B0F104696E51594890F38CCD15

3 - RIPEMD-160 Hash of 2
Code:
E4E517EE07984A4000CD7B00CBCB545911C541C4

4 - Adding network bytes to 3
Code:
00E4E517EE07984A4000CD7B00CBCB545911C541C4

5 - SHA-256 hash of 4
Code:
A3FEB7F37B0EC2B6C7E8B7F8C24C5A2F57FAD84BD56861EE5872B335C9F720D0

6 - SHA-256 hash of 5
Code:
532576DD2D179AD8377DEC7EA13D447D1345A857AA5A904B4ED4AC67B5888B75

7 - First four bytes of 6
Code:
532576DD

8 - Adding 7 at the end of 4
Code:
00E4E517EE07984A4000CD7B00CBCB545911C541C4532576DD

9 - Base58 encoding of 8
Code:
1MsHWS1BnwMc3tLE8G35UXsS58fKipzB7a
Pages:
Jump to: