Author

Topic: Bitcoin puzzle transaction ~32 BTC prize to who solves it - page 236. (Read 213194 times)

full member
Activity: 1148
Merit: 237
Shooters Shoot...

I use it on python 2.7 (windows) and it works like a charm.  Are you using 2.7 or 3.x?

ok now it work fine on 2.7


how can I change 

ripetofind = '3ee4133d991f52fdf6a25c9834e0745ac74248a4'


I try use this web is correct
http://gobittest.appspot.com/Address

put address below and submit get address upper  RIPEMD-160 Hash

puzzle #64  3EE4133D991F52FDF6A25C9834E0745AC74248A4
puzzle #120   AE6804B35C82F47F8B0A42D8C5E514FE5EF0A883

yes, #64 is in the ripetofind by default. You can change ripe to whichever one you prefer/want. Yes, that site works for ripemd160; just put the address in bottom box and select send. or you can decode the address in base58. Just change it to lowercase once you receive the ripemd160...

or use this code:
Code:
import base58

addr58 = '16jY7qLJnxb7CHZyqBP8qca9d51gAjyXQN'

addr160 = base58.b58decode_check(addr58).encode('hex')[2:]

print (addr160)
full member
Activity: 1148
Merit: 237
Shooters Shoot...

one thing about all script python and any script

if it display show message detail like show key or show generate, show random, show runing number

try test until make sure it work 100%

then modify change to hide all message it make to working fast than show massage

just turn off show display it make to faster

show display it make script works slowly it not necessary

try it you can see it work better.

let script calculate work without display and make it save result to file make show only when success



I know it works faster without any printout, 100%...just shows it's working. Run small range test, like F to FFF. Once convinced it works, turn it off.
member
Activity: 406
Merit: 47

one thing about all script python and any script

if it display show message detail like show key or show generate, show random, show runing number

try test until make sure it work 100%

then modify change to hide all message it make to working fast than show massage

just turn off show display it make to faster

show display it make script works slowly it not necessary

try it you can see it work better.

let script calculate work without display and make it save result to file make show only when success


member
Activity: 406
Merit: 47

I use it on python 2.7 (windows) and it works like a charm.  Are you using 2.7 or 3.x?

ok now it work fine on 2.7


how can I change 

ripetofind = '3ee4133d991f52fdf6a25c9834e0745ac74248a4'


I try use this web is correct
http://gobittest.appspot.com/Address

put address below and submit get address upper  RIPEMD-160 Hash

puzzle #64  3EE4133D991F52FDF6A25C9834E0745AC74248A4
puzzle #120   AE6804B35C82F47F8B0A42D8C5E514FE5EF0A883
member
Activity: 406
Merit: 47

I use it on python 2.7 (windows) and it works like a charm.  Are you using 2.7 or 3.x?

ok, I use 3.9

will try on 2.7

I have both 2.7 and 3.x use on miniconda two version
full member
Activity: 1148
Merit: 237
Shooters Shoot...
Quote
Thanks

this code find RIPEMD-160 hash before convert to address right


if(ord(bytearray.fromhex(key_hex[-2:])) % 2 == 0):


TypeError: fromhex() argument must be str, not bytes

I use it on python 2.7 (windows) and it works like a charm.  Are you using 2.7 or 3.x?
member
Activity: 406
Merit: 47
@fxsniper

Here is the code I told you I would upload.  It's not the exact one I was looking for but it is based on the same principle.  Easy to change the range you want to search through. I modified my code to search for the RIPEMD of the address I was looking for. Shaves a few milliseconds off versus processing all the way to the address. I created this probably 6 months ago and I am sure it is not the most efficient coding.  Hopefully it gives you some ideas on how to tweak and make exactly what you are wanting.

Code:
#Amateur, very amateur coding by the Wandering Philosopher
#Tested with Python 2.7
import binascii, hashlib, base58, sys, ecdsa, codecs, os, random
import time
import timeit
#Enter the RIPEMD160 of the address you want to search for; make sure it is in LOWERCASE
ripetofind = '3ee4133d991f52fdf6a25c9834e0745ac74248a4'

def compressed_RIPEMD(privkey):
    start_time = timeit.default_timer()
    pvk_to_bytes = codecs.decode (privkey, 'hex')
    
    #Generates the public key
    key = ecdsa.SigningKey.from_string (pvk_to_bytes, curve=ecdsa.SECP256k1).verifying_key
    key_bytes = key.to_string()
    key_hex = codecs.encode(key_bytes, 'hex')

    if(ord(bytearray.fromhex(key_hex[-2:])) % 2 == 0):
        #If the last byte of Y is Even, add '02'
        public_key_compressed = '02' + key_hex[0:64]

        #Making SHA-256 of compressed pubkey and then RIPEMD-160
        public_key_in_bytes = codecs.decode(public_key_compressed, 'hex')
        sha256_public_key_compressed = hashlib.sha256(public_key_in_bytes)
        sha256_public_key_compressed_digest = sha256_public_key_compressed.digest()

        ripemd160 = hashlib.new('ripemd160')
        ripemd160.update(sha256_public_key_compressed_digest)
        ripemd160_digest = ripemd160.digest()
        ripemd160_hex = codecs.encode(ripemd160_digest, 'hex')
        
    else:
        #If the last byte of Y is Odd, add '03'
        public_key_compressed = '03' + key_hex[0:64]

        #Making SHA-256 of compressed pubkey and then RIPEMD-160
        public_key_in_bytes = codecs.decode(public_key_compressed, 'hex')
        sha256_public_key_compressed = hashlib.sha256(public_key_in_bytes)
        sha256_public_key_compressed_digest = sha256_public_key_compressed.digest()

        ripemd160 = hashlib.new('ripemd160')
        ripemd160.update(sha256_public_key_compressed_digest)
        ripemd160_digest = ripemd160.digest()
        ripemd160_hex = codecs.encode(ripemd160_digest, 'hex')
        elapsed = timeit.default_timer() - start_time
        #Prints status and numbers on screen. Comment out both sys.stdout lines below if not wanted and the countall +=1 ; I liked to know it was working/running.
        sys.stdout.write("\r" + "  Key every: " + str(elapsed)[:7] + " seconds " + " Random RIPEMD160s:  " + ripemd160_hex + "   # of Keys: "  + str(countall))
        sys.stdout.flush()
        fwrite = open('KEYSFOUND.txt', 'a')
        if ripemd160_hex == ripetofind:
            fwrite.write('Key: ' + randomprivkey + '  ' + ripemd160_hex + '\n' )

#Always leave countall = 0 below. If you want the program to run unlimited, comment out the countall +=1 down below
countall = 0
while (countall < 100000000000000):
    if __name__== "__main__":
        
        #Enter the range you want to search through below
        low  = 0x8000000000000000
        high = 0xFFFFFFFFFFFFFFFF
        #high = 0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364140
        randomprivkey = hex( random.randrange( low, high ) ).lstrip("0x").rstrip("L").zfill(64)
        countall +=1
        compressed_RIPEMD(randomprivkey)




Thanks

this code find RIPEMD-160 hash before convert to address right


if(ord(bytearray.fromhex(key_hex[-2:])) % 2 == 0):


TypeError: fromhex() argument must be str, not bytes
jr. member
Activity: 135
Merit: 2
Zero chance that these random numbers have a weakness on PRNG side.
no, i search not a weakness.
each generator produce different randoms.
for example, python's randint create 256 bit with about 50/50 +/-10% zeros and ones.
but mt19937_64 in cpp produce only 32 bit, i generate pair (32+32=64) to test and got ~70/30% zeros and ones.
at 2013 bitcoin core used openssl to generate random keys. question is author are used this openssl generator or something else.
if yes, openssl compile different code for win, mac and *nix. compile flags also give different result.
if get statistic for exactly used generator, so possible make a faster bruteforcer to skip values wich have low score and probably cant be generated at 2013.
newbie
Activity: 12
Merit: 0

Can this tools use for solve puzzle very old python code?
may be slow than bitcrack

https://github.com/Xefrok/BitBruteForce-Wallet/blob/master/seekanddestroy.py
may be need to modify to can use with custom keyspace for puzzle #64
done have other python script recommend to use better than?

all python code use random method right not calculate not pattern

I looking to bitcrack version python code

I would like to try use for puzzle #64 by random keyspace set it each 1000000 key and scan it and do random next keyspace
I can't not code c++ but python is easy more than. I can modify on python code


Sure it can , but in 3000000000 years ? OMG  Cheesy Cheesy
full member
Activity: 1148
Merit: 237
Shooters Shoot...
@fxsniper

Here is the code I told you I would upload.  It's not the exact one I was looking for but it is based on the same principle.  Easy to change the range you want to search through. I modified my code to search for the RIPEMD of the address I was looking for. Shaves a few milliseconds off versus processing all the way to the address. I created this probably 6 months ago and I am sure it is not the most efficient coding.  Hopefully it gives you some ideas on how to tweak and make exactly what you are wanting.

Code:
#Amateur, very amateur coding by the Wandering Philosopher
#Tested with Python 2.7
import binascii, hashlib, base58, sys, ecdsa, codecs, os, random
import time
import timeit
#Enter the RIPEMD160 of the address you want to search for; make sure it is in LOWERCASE
ripetofind = '3ee4133d991f52fdf6a25c9834e0745ac74248a4'

def compressed_RIPEMD(privkey):
    start_time = timeit.default_timer()
    pvk_to_bytes = codecs.decode (privkey, 'hex')
    
    #Generates the public key
    key = ecdsa.SigningKey.from_string (pvk_to_bytes, curve=ecdsa.SECP256k1).verifying_key
    key_bytes = key.to_string()
    key_hex = codecs.encode(key_bytes, 'hex')

    if(ord(bytearray.fromhex(key_hex[-2:])) % 2 == 0):
        #If the last byte of Y is Even, add '02'
        public_key_compressed = '02' + key_hex[0:64]

        #Making SHA-256 of compressed pubkey and then RIPEMD-160
        public_key_in_bytes = codecs.decode(public_key_compressed, 'hex')
        sha256_public_key_compressed = hashlib.sha256(public_key_in_bytes)
        sha256_public_key_compressed_digest = sha256_public_key_compressed.digest()

        ripemd160 = hashlib.new('ripemd160')
        ripemd160.update(sha256_public_key_compressed_digest)
        ripemd160_digest = ripemd160.digest()
        ripemd160_hex = codecs.encode(ripemd160_digest, 'hex')
        
    else:
        #If the last byte of Y is Odd, add '03'
        public_key_compressed = '03' + key_hex[0:64]

        #Making SHA-256 of compressed pubkey and then RIPEMD-160
        public_key_in_bytes = codecs.decode(public_key_compressed, 'hex')
        sha256_public_key_compressed = hashlib.sha256(public_key_in_bytes)
        sha256_public_key_compressed_digest = sha256_public_key_compressed.digest()

        ripemd160 = hashlib.new('ripemd160')
        ripemd160.update(sha256_public_key_compressed_digest)
        ripemd160_digest = ripemd160.digest()
        ripemd160_hex = codecs.encode(ripemd160_digest, 'hex')
        elapsed = timeit.default_timer() - start_time
        #Prints status and numbers on screen. Comment out both sys.stdout lines below if not wanted and the countall +=1 ; I liked to know it was working/running.
        sys.stdout.write("\r" + "  Key every: " + str(elapsed)[:7] + " seconds " + " Random RIPEMD160s:  " + ripemd160_hex + "   # of Keys: "  + str(countall))
        sys.stdout.flush()
        fwrite = open('KEYSFOUND.txt', 'a')
        if ripemd160_hex == ripetofind:
            fwrite.write('Key: ' + randomprivkey + '  ' + ripemd160_hex + '\n' )

#Always leave countall = 0 below. If you want the program to run unlimited, comment out the countall +=1 down below
countall = 0
while (countall < 100000000000000):
    if __name__== "__main__":
        
        #Enter the range you want to search through below
        low  = 0x8000000000000000
        high = 0xFFFFFFFFFFFFFFFF
        #high = 0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364140
        randomprivkey = hex( random.randrange( low, high ) ).lstrip("0x").rstrip("L").zfill(64)
        countall +=1
        compressed_RIPEMD(randomprivkey)



member
Activity: 406
Merit: 47

for some python code use random

I found some code can use with GPU

use numba

try code from this
https://stackoverflow.com/questions/61982672/cuda-gpu-processing-typeerror-compile-kernel-got-an-unexpected-keyword-argum

just found code work on GPU, I will try testing move some random code to run on numba it can be work faster or not?
member
Activity: 406
Merit: 47
is OP still here?
can you explain your env used to create tx? win, mac, nix, python, btc core, other wallet? what a flags was used to compile openssl-1.0.1c?

If you read the OP you would see that OP was not the one who created the transactions.

BTW, the one who created the transactions explained it in another thread. He just generated a series of normal full-length private keys with good PRNG, and then manually masked (XOR-ed) them to required length one by one.

sound like create puzzle list by binary level

may be like the other puzzle
https://bitcointalksearch.org/topic/the-legend-of-satoshi-nakamato-final-step-published-487-btc-grand-prize-766000

https://github.com/ynohtna92/1FLAMEN6/blob/master/puzzle_decoder.py

something like that?
legendary
Activity: 1974
Merit: 1077
^ Will code for Bitcoins
He just generated a series of normal full-length private keys with good PRNG, and then manually masked (XOR-ed) them to required length one by one.
i know. i wanna know a env where this process was doing.

He almost certainly used some env with good entropy, he obviously knew what he was doing. Zero chance that these random numbers have a weakness on PRNG side.
jr. member
Activity: 135
Merit: 2
He just generated a series of normal full-length private keys with good PRNG, and then manually masked (XOR-ed) them to required length one by one.
i know. i wanna know a env where this process was doing.
legendary
Activity: 1974
Merit: 1077
^ Will code for Bitcoins
is OP still here?
can you explain your env used to create tx? win, mac, nix, python, btc core, other wallet? what a flags was used to compile openssl-1.0.1c?

If you read the OP you would see that OP was not the one who created the transactions.

BTW, the one who created the transactions explained it in another thread. He just generated a series of normal full-length private keys with good PRNG, and then manually masked (XOR-ed) them to required length one by one.
member
Activity: 406
Merit: 47

Can possible someone try to code python simple scan by using Fibonacci Sequence algorithm ?
jr. member
Activity: 135
Merit: 2
is OP still here?
can you explain your env used to create tx? win, mac, nix, python, btc core, other wallet? what a flags was used to compile openssl-1.0.1c?
jr. member
Activity: 184
Merit: 3

Can this tools use for solve puzzle very old python code?
may be slow than bitcrack

https://github.com/Xefrok/BitBruteForce-Wallet/blob/master/seekanddestroy.py
may be need to modify to can use with custom keyspace for puzzle #64
done have other python script recommend to use better than?

all python code use random method right not calculate not pattern

I looking to bitcrack version python code

I would like to try use for puzzle #64 by random keyspace set it each 1000000 key and scan it and do random next keyspace
I can't not code c++ but python is easy more than. I can modify on python code


What does it do anyway? Generates public keys and checks against the list (known public keys)? (why are there any text files needed)
It has the precompiled address list of addresses with balances...it generates random private keys, converts all the way down to addresses and checks against the list of addresses in the file. Of course you can change the addresses in the file.
There was an interesting precedent https://bitcointalksearch.org/topic/thoughts-on-this-private-key-stealing-mystery-2488493 as an option pull all text from the Internet and check for addresses  Grin someone probably already scrolled through the Bible (on passphrases) and other books ... can also sound signals and even waves of light.
full member
Activity: 1148
Merit: 237
Shooters Shoot...

Can this tools use for solve puzzle very old python code?
may be slow than bitcrack

https://github.com/Xefrok/BitBruteForce-Wallet/blob/master/seekanddestroy.py
may be need to modify to can use with custom keyspace for puzzle #64
done have other python script recommend to use better than?

all python code use random method right not calculate not pattern

I looking to bitcrack version python code

I would like to try use for puzzle #64 by random keyspace set it each 1000000 key and scan it and do random next keyspace
I can't not code c++ but python is easy more than. I can modify on python code


What does it do anyway? Generates public keys and checks against the list (known public keys)? (why are there any text files needed)
It has the precompiled address list of addresses with balances...it generates random private keys, converts all the way down to addresses and checks against the list of addresses in the file. Of course you can change the addresses in the file.
jr. member
Activity: 184
Merit: 3

Can this tools use for solve puzzle very old python code?
may be slow than bitcrack

https://github.com/Xefrok/BitBruteForce-Wallet/blob/master/seekanddestroy.py
may be need to modify to can use with custom keyspace for puzzle #64
done have other python script recommend to use better than?

all python code use random method right not calculate not pattern

I looking to bitcrack version python code

I would like to try use for puzzle #64 by random keyspace set it each 1000000 key and scan it and do random next keyspace
I can't not code c++ but python is easy more than. I can modify on python code


What does it do anyway? Generates public keys and checks against the list (known public keys)? (why are there any text files needed)
Jump to: