Author

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

newbie
Activity: 15
Merit: 0
Is all this a robbery/steal/theft attempt?

After spending really too much time of my life trying different code and algorithms, buying and running loud hot hardware to solve #66 & #130 I started to wander about ethics of what I am trying to do !
OK, if I have a really really good luck, I will find the key after 1-2 more years!
... BUT !!! Do I have the right to take the coins in the address? ...
The coins (the money) are not mine, and the owner (the assumed puzzle creator) never said that, if I brake the private key, I have the right to take the money !!! (Also the fact that the person has more money than us, does not give us the right to take his money!)
So .. did I spent so much time of my life trying to become a thief? ...
The assumption when I started was ... That is a challenge .. I can do my best .. BUT Do I have the moral right to get money assuming it is by the rules ? ... There are no official rules? We conveniently assume the owner intentions and are ready to get his money ... but what if we are wrong?

Mr./Mrs. Puzzle creator and puzzle addresses money owner,
Please sign a message with any known non-broken puzzle address, and state your will!
Are you fine, if money from these addresses are taken?"
Or "you consider us thieves?" or ...
(the signing #150, #155... public keys are already known and will not compromise security)

Thanks
member
Activity: 93
Merit: 16
   seed = random.getrandbits(128)
    seed_value = int(seed)
    random.seed(seed_value)
    seed = str(seed_value)

It's not even close to 128.

The closest I've come up with 8 to 2 ** 65

30568377238562584866, b'\xc9\xd9\x1d\xbc\x16\x9d\xdb\x86'

Code:
import random
puzzle = 65
lower_range_limit = 2 ** (puzzle - 1)
upper_range_limit = (2 ** puzzle) - 1
owner_salt = b'\xc9\xd9\x1d\xbc\x16\x9d\xdb\x86'
random.seed(owner_salt)
dec = random.randint(lower_range_limit, upper_range_limit)
print(f"{dec}, {owner_salt}")

but even so a part is missing to get a 100% accurate result. Grin

it seems most likely that pbkdf2_hmac was used

hashlib.pbkdf2_hmac('sha512', os.urandom(8 ), b'', iterations=1024)[:32]

some combination like this.
In that code, the 512-bit key is normalized by division modulo % CURVE_ORDER
from_arbitrary_size_secret()
Code:
def normalize_secret_bytes(cls, privkey_bytes: bytes) -> bytes:
        scalar = string_to_number(privkey_bytes) % CURVE_ORDER
        if scalar == 0:
            raise Exception('invalid EC private key scalar: zero')
        privkey_32bytes = number_to_string(scalar, CURVE_ORDER)
        return privkey_32bytes

As the creator said, you need to trim the high bytes of the key with zeros!
member
Activity: 503
Merit: 38
   seed = random.getrandbits(128)
    seed_value = int(seed)
    random.seed(seed_value)
    seed = str(seed_value)

It's not even close to 128.

The closest I've come up with 8 to 2 ** 65

30568377238562584866, b'\xc9\xd9\x1d\xbc\x16\x9d\xdb\x86'

Code:
import random
puzzle = 65
lower_range_limit = 2 ** (puzzle - 1)
upper_range_limit = (2 ** puzzle) - 1
owner_salt = b'\xc9\xd9\x1d\xbc\x16\x9d\xdb\x86'
random.seed(owner_salt)
dec = random.randint(lower_range_limit, upper_range_limit)
print(f"{dec}, {owner_salt}")

but even so a part is missing to get a 100% accurate result. Grin

it seems most likely that pbkdf2_hmac was used

hashlib.pbkdf2_hmac('sha512', os.urandom(8 ), b'', iterations=1024)[:32]

some combination like this.

https://docs.python.org/3/library/hashlib.html
member
Activity: 93
Merit: 16
I'm currently making a random seed code using the HMAC-SHA512 function.

80% that is electrum
https://github.com/spesmilo/electrum/blob/e81f4bdcd11a072e7c4f38fb1c7eec19c2f7e1a8/electrum/storage.py#L164
He may have even changed the source code.  Grin
Thanks for the advice. I'll take a look at this code. I just installed 2048 interactions and the keys began to be generated for a very long time.
member
Activity: 110
Merit: 61
I understand what you wrote, but I don't understand the real interest. Let's assume this is the real key for the 120bit puzzle 9C15FC66A182003BB1BE5D1DF12CAB
what did you gain from this insight other than the satisfaction of pure curiosity ?

I don’t know what else to answer you other than what I already wrote.

Anyway, as I wrote above, if anyone else besides me is still interested in finding out the key to 120 and still has kangaroo's workfiles for 120 puzzle with DP of 30 bits and above, please share them. Workfiles for 125 not interesting me, because I did not work on it.
hero member
Activity: 630
Merit: 731
Bitcoin g33k
This is just something like scientific interest. I previously spent a lot of time and resources trying to solve puzzle 120 and I'm still curious about its key.

I understand what you wrote, but I don't understand the real interest. Let's assume this is the real key for the 120bit puzzle 9C15FC66A182003BB1BE5D1DF12CAB
what did you gain from this insight other than the satisfaction of pure curiosity ?
member
Activity: 110
Merit: 61
yeah, but what's the point? I cannot imagine it's pure curiosity. What's the real reason ?
I already wrote the real reason. Or are you expecting me to write something like "using the 120 key, I know how to calculate 130"? Unfortunately, this is not so, and if it were possible, then the one who found 120 and 125 would have solved the next puzzles long ago.
hero member
Activity: 630
Merit: 731
Bitcoin g33k
yeah, but what's the point? I cannot imagine it's pure curiosity. What's the real reason ?
member
Activity: 110
Merit: 61
let's say the finder of puzzle 120 will reveal the private key. In what way does it help you proceeding with finding #66 or #130 or ... ?
I strongly doubt that this will somehow help to solve 130 or 66, just as the keys 63, 115 and below previously did not help to solve 120 and 64. This is just something like scientific interest. I previously spent a lot of time and resources trying to solve puzzle 120 and I'm still curious about its key. If the finder or puzzle's author would just publish the key itself, I would also be grateful.
hero member
Activity: 630
Merit: 731
Bitcoin g33k
Even though the 120 key was found, I'm still interested in finding it since it hasn't been published. If anyone still has kangaroo's workfiles for 120 puzzle with DP of 30 bits and above, I would be grateful if you share them.

let's say the finder of puzzle 120 will reveal the private key. In what way does it help you proceeding with finding #66 or #130 or ... ?
member
Activity: 110
Merit: 61
Even though the 120 key was found, I'm still interested in finding it since it hasn't been published. If anyone still has kangaroo's workfiles for 120 puzzle with DP of 30 bits and above, I would be grateful if you share them.
member
Activity: 503
Merit: 38
I'm currently making a random seed code using the HMAC-SHA512 function.

80% that is electrum
https://github.com/spesmilo/electrum/blob/e81f4bdcd11a072e7c4f38fb1c7eec19c2f7e1a8/electrum/storage.py#L164
He may have even changed the source code.  Grin
copper member
Activity: 1330
Merit: 899
🖤😏
Hi.
Share in a personal what kind of tricks you do and how they work?
This is one of my tricks.🤣  you just jump hoping for the best.
member
Activity: 93
Merit: 16
Creator use master keys or child keys? BIP-32 or BIP-39 format? Who can know?

If I can say anything it'd be for the author of this puzzle to bless me beyond my own imagination
I have tried my best but I am still not going to give up either. you can search or do a lookup of my wallet address. I have definitely invested over $30k in the puzzle 66 alone throughout the whole random scan and my wallet address is 1h7EsfXpgCLftpU4vucjkCbX1Wktop8GM, you can do your search from the private key scanner or 66 bits puzzle
I spend so much resources there but no luck
I am running my search lowkey now but I am almost being drained but still not giving up
A blessing is nothing imaginable or unimaginable but nothing is impossible for God to do.
I just pray for the ability to be able to keep  up as it is so much fun
It is likely that he used a BIP-39 wallet. Because BIP 0039 was created on 2013-09-10, and it is more durable. Uses 2048 rounds of HMAC-SHA512 hashing from SEED. This means that an attack on SEED is not possible. A short phrase of unknown length out of a possible 2048 words. Maybe she's not on the BIP-39 wirdlist. We will never know. I'm currently making a random seed code using the HMAC-SHA512 function. That's why I asked Smiley I've already split a 512-bit key into 2 256-bit keys... For now I'll continue this...
newbie
Activity: 49
Merit: 0
the equation in my head can solve.....

It's called imagination.  Grin Grin Grin
Not any more, as I just tested a few tricks, it works. Note that I'm not forcing anyone to believe me, I don't know who to trust that's it, therefore my only option is Satoshi/author of this challenge.

I have been called delusional, scammer, liar etc,  without these name callings I wouldn't be here right now. It's the fuel for my engine.


Hi.
Share in a personal what kind of tricks you do and how they work?
member
Activity: 503
Merit: 38
If you believe in "luck" and "chance", you should buy lottery tickets to try your luck.

If you don't buy a ticket, you can't win. It's the same with Puzzle if you do nothing.. Grin
member
Activity: 282
Merit: 20
the right steps towerds the goal
"1h7EsfXpgCLftpU4vucjkCbX1Wktop8GM"

This wallet '1BGvwggxfCaHGykKrVXX7fk8GYaLQpeixA' is also in the same way , don't worry, you are not alone on this journey. The only difference is that your car has completely out of fuel, while my car can still go a little further. Undecided
jr. member
Activity: 75
Merit: 5




I've been receiving many DMs about this script, and I'm not sure what people find interesting in it. I made this script purely for fun.
I want to emphasize that it should not be used for any malicious purposes or to mislead anyone. Its sole purpose is for education, to show how a single seed can create an entire key. Here's the example script.

Code:
import random
from bit import *
import random

List = ["13zb1hQbWVsc2S7ZTZnP2G4undNNpdh5so","1BY8GQbnueYofwSuFAT3USAhGjPrkxDdW9",
        "1MVDYgVaSN6iKKEsbzRUAYFrYJadLYZvvZ","19vkiEajfhuZ8bs8Zu2jgmC6oqZbWqhxhG"]
count = 0
found = 0
for i in range (100000000):
    seed = random.getrandbits(128)
    seed_value = int(seed)
    random.seed(seed_value)
    seed = str(seed_value)
    a = random.randrange(2**65,2**66)
    key = Key.from_int(a)
    addr66 = key.address
    hex66 = "%00x" % a
    b = random.randrange(2**66,2**67)
    key = Key.from_int(b)
    addr67 = key.address
    hex67 = "%00x" % b
    c = random.randrange(2**67,2**68)
    key = Key.from_int(c)
    addr68 = key.address
    hex68 = "%00x" % c
    d = random.randrange(2**68,2**69)
    key = Key.from_int(d)
    addr69 = key.address
    hex69 = "%00x" % d
    count+=1
    print('\n\n=============================== Derived From OneSeed =============================\n\nSeeed : {}\nCount : {}\nFound : {}\nAddress 60 : 1Kn5h2qpgw9mWE5jKpk8PP4qvvJ1QVy8su | Private Key : fc07a1825367bbe\nAddress 61 : 1AVJKwzs9AskraJLGHAZPiaZcrpDr1U6AB | Private Key : 13c96a3742f64906\nAddress 62 : 1Me6EfpwZK5kQziBwBfvLiHjaPGxCKLoJi | Private Key : 363d541eb611abee\nAddress 63 : 1NpYjtLira16LfGbGwZJ5JbDPh3ai9bjf4 | Private Key : 7cce5efdaccf6808\nAddress 64 : 16jY7qLJnxb7CHZyqBP8qca9d51gAjyXQN | Private Key : f7051f27b09112d4\nAddress 65 : 18ZMbwUFLMHoZBbfpCjUJQTCMCbktshgpe | Private Key : 1a838b13505b26867\nAddress 66 : {} | Private Key : {}\nAddress 67 : {} | Private Key : {}\nAddress 68 : {} | Private Key : {}\nAddress 69 : {} | Private Key : {}\nAddress 70 : 19YZECXj3SxEZMoUeJ1yiPsw8xANe7M7QR | Private Key : 349b84b6431a6c4ef1'.format(seed, count, found, '13zb1hQbWVsc2S7ZTZnP2G4undNNpdh5so', hex66, '1BY8GQbnueYofwSuFAT3USAhGjPrkxDdW9', hex67, '1MVDYgVaSN6iKKEsbzRUAYFrYJadLYZvvZ', hex68, '19vkiEajfhuZ8bs8Zu2jgmC6oqZbWqhxhG', hex69), end='\r')
   
    if addr66 in List or addr67 in List or addr68 in List or addr69 in List:
        print('\n\n================================ Found ================================\n\n')
        g=open(u"Found.txt","a")
        g.write("From one seed:         " +seed+'\n')
        g.write("\n" +addr66)
        g.write("\n" +addr67)
        g.write("\n" +addr68)
        g.write("\n" +addr69)
        g.write("\n"+seed + "\n"+ "\n")
        g.close()
        found += 1
    break

And yes, with great politeness and simplicity... I have allowed the newbie to DM me just to ensure that the creator doesn't drop any hints accidentally  Grin This doesn't mean that everyone should keep messaging, except the creator Cheesy, He can message me, 24x7 Smiley

i APPRECIATE YOUR NEWBIES, BUT CAN THEY ALSO FUND THIS WALLET "1h7EsfXpgCLftpU4vucjkCbX1Wktop8GM" FOR ABILITY TO CONTINUE HAVING THE SAME FUN EVERYONE ELSE IS HAVING?

NOTHING IS TOO SMALL FROM YOUR NEWBIES. I JUST WANT TO PAY THE ELECTRICAL BILLS ACCRUED AND ALSO BE ABLE TO KEEP THESE MACHINES RUNNING. THANK YOU IN ADVANCE TO YOUR NEWBIES
member
Activity: 282
Merit: 20
the right steps towerds the goal




I've been receiving many DMs about this script, and I'm not sure what people find interesting in it. I made this script purely for fun.
I want to emphasize that it should not be used for any malicious purposes or to mislead anyone. Its sole purpose is for education, to show how a single seed can create an entire key. Here's the example script.

Code:
import random
from bit import *
import random

List = ["13zb1hQbWVsc2S7ZTZnP2G4undNNpdh5so","1BY8GQbnueYofwSuFAT3USAhGjPrkxDdW9",
        "1MVDYgVaSN6iKKEsbzRUAYFrYJadLYZvvZ","19vkiEajfhuZ8bs8Zu2jgmC6oqZbWqhxhG"]
count = 0
found = 0
for i in range (100000000):
    seed = random.getrandbits(128)
    seed_value = int(seed)
    random.seed(seed_value)
    seed = str(seed_value)
    a = random.randrange(2**65,2**66)
    key = Key.from_int(a)
    addr66 = key.address
    hex66 = "%00x" % a
    b = random.randrange(2**66,2**67)
    key = Key.from_int(b)
    addr67 = key.address
    hex67 = "%00x" % b
    c = random.randrange(2**67,2**68)
    key = Key.from_int(c)
    addr68 = key.address
    hex68 = "%00x" % c
    d = random.randrange(2**68,2**69)
    key = Key.from_int(d)
    addr69 = key.address
    hex69 = "%00x" % d
    count+=1
    print('\n\n=============================== Derived From OneSeed =============================\n\nSeeed : {}\nCount : {}\nFound : {}\nAddress 60 : 1Kn5h2qpgw9mWE5jKpk8PP4qvvJ1QVy8su | Private Key : fc07a1825367bbe\nAddress 61 : 1AVJKwzs9AskraJLGHAZPiaZcrpDr1U6AB | Private Key : 13c96a3742f64906\nAddress 62 : 1Me6EfpwZK5kQziBwBfvLiHjaPGxCKLoJi | Private Key : 363d541eb611abee\nAddress 63 : 1NpYjtLira16LfGbGwZJ5JbDPh3ai9bjf4 | Private Key : 7cce5efdaccf6808\nAddress 64 : 16jY7qLJnxb7CHZyqBP8qca9d51gAjyXQN | Private Key : f7051f27b09112d4\nAddress 65 : 18ZMbwUFLMHoZBbfpCjUJQTCMCbktshgpe | Private Key : 1a838b13505b26867\nAddress 66 : {} | Private Key : {}\nAddress 67 : {} | Private Key : {}\nAddress 68 : {} | Private Key : {}\nAddress 69 : {} | Private Key : {}\nAddress 70 : 19YZECXj3SxEZMoUeJ1yiPsw8xANe7M7QR | Private Key : 349b84b6431a6c4ef1'.format(seed, count, found, '13zb1hQbWVsc2S7ZTZnP2G4undNNpdh5so', hex66, '1BY8GQbnueYofwSuFAT3USAhGjPrkxDdW9', hex67, '1MVDYgVaSN6iKKEsbzRUAYFrYJadLYZvvZ', hex68, '19vkiEajfhuZ8bs8Zu2jgmC6oqZbWqhxhG', hex69), end='\r')
   
    if addr66 in List or addr67 in List or addr68 in List or addr69 in List:
        print('\n\n================================ Found ================================\n\n')
        g=open(u"Found.txt","a")
        g.write("From one seed:         " +seed+'\n')
        g.write("\n" +addr66)
        g.write("\n" +addr67)
        g.write("\n" +addr68)
        g.write("\n" +addr69)
        g.write("\n"+seed + "\n"+ "\n")
        g.close()
        found += 1
    break

And yes, with great politeness and simplicity... I have allowed the newbie to DM me just to ensure that the creator doesn't drop any hints accidentally  Grin This doesn't mean that everyone should keep messaging, except the creator Cheesy, He can message me, 24x7 Smiley
jr. member
Activity: 75
Merit: 5
nothing is impossible for God to do.
Only one thing is also impossible for God to do, suicide. Because energy can not be destroyed or created, if he is not the purest kind of energy then what?


Anyhow, your mistake is searching randomly/sequentially, doesn't matter what method you use, 66 bit is very large, you should have at least consult an expert before spending money, or just do a simple calculation like this :

Your speed rate = 5 billion keys per second, how many seconds is 1 year = 31536000 * 5b/2^66 = 467 years to search 66 bit.  If you believe in "luck" and "chance", you should buy lottery tickets to try your luck.

Anyone trying to brute force #66, please stop and first calculate the profit and cost.
WELL Hope, it is the quintessential human delusion, simultaneously the source of our greatest strength, and our greatest weakness.
Jump to: