Post
Topic
Board Bitcoin Discussion
Re: Bitcoin puzzle transaction ~32 BTC prize to who solves it
by
Andzhig
on 19/04/2023, 12:20:24 UTC
Well, for 6-7 years, all possible options have already been sorted out, or combinatorics to sort out (shuffle 111112233... 222221133.. 332222211... etc) or to be smart about something with collisions.

for example, we can choose from a random house any number of times


random.seed(36893488147419103232,73786976294838206464)
random.randrange(36893488147419103232,73786976294838206464,1)

etc

36893488147419103232×36893488147419103232 = 1361129467683753853853498429727072845824

random.seed(36893488147419103232,1361129467683753853853498429727072845824)
random.randrange(36893488147419103232,73786976294838206464,1)

etc

in other words, there 1361129467683753853853498429727072845824 are so many collisions 36893488147419103232

now we take this number and we need to fish out the collisions we need

random.seed(36893488147419103232,73786976294838206464)
random.randrange(1,1361129467683753853853498429727072845824 ,1)

to

random.seed(random.randrange(1,1361129467683753853853498429727072845824 ,1))
random.seed(36893488147419103232,73786976294838206464)


1361129467683753853853498429727072845824×1361129467683753853853498429727072845824 = 1852673427797059126777135760139006525652319754650249024631321344126610074238976

there will be such sections in this number where the first step by step will be collisions (36893488147419103232×36893488147419103232 = 1361129467683753853853498429727072845824)

36893488147419103232×36893488147419103232 = 1361129467683753853853498429727072845824
****************** ___________________      ****************** ___________________

there will be areas

****************** ___________________

**********___________________*********

_______*******_______********_________

*_*_*_*_*_*_*_*_**__**__**__***___***

etc...

well, according to the law of uniform distribution, somehow jump there, random means uniform distribution over space.

Quote
from os import system
system("title "+__file__)
import random
import time
#from bit import Key
#from combi import *

import gmpy2
import secp256k1 as ice


list2 = ["13zb1hQbWVsc2S7ZTZnP2G4undNNpdh5so"]

F1="01"

aa1=F1[0]*70
aa2=F1[1]*70

def find_permutation(lst,K,numberbit1,numberbit0):

    l = lst

    N = numberbit0
    M = numberbit1

    if N == len(l):
        return F1[1] * N
   
    if M == len(l):
        return F1[1] * M

    result = ''   

    for i in range (0, len(lst)-1):
        K0 = gmpy2.comb(len(l)-1, M)

        if (K < K0):
            result += F1[0]
            l.remove (F1[0])
        else:
            result += F1[1]
            l.remove (F1[1])
            M -=1
            K = K - K0

    result += l[0]

    return result

#count = 0
#5444517870735015415413993718908291383296  2^66×2^66
#93820969697840041204785894580506297666600 140!/70!/70!

while True:
   
    random.seed()
    sssakkki = random.randrange(1,73786976294838206464,1)
    saki = 73786976294838206464 * sssakkki
   
    print("")
    print("")
    print("")
    print(sssakkki,saki,"step",5444517870735015415413993718908291383296//saki)
    #time.sleep(random.randrange(1,10,1))

   
    X2=0 #X=10
    while X2 <= 5444517870735015415413993718908291383296:

        X=X2 #X=10
        while X <= X2: #+1000
                   
            a3 = list(aa1+aa2)
            K = X #perm_int
            numberbit1 = len(aa1)
            numberbit0 = len(aa2)

            aa = find_permutation(a3,K,numberbit1,numberbit0)
            random.seed(aa)

            b = random.randrange(36893488147419103232,73786976294838206464,1)

           
            if b >= 36893488147419103232:
                   
                    #key = Key.from_int(b)
                addr = ice.privatekey_to_address(0, True, b) #key.address
                           
                if addr in list2:
                               
                    print ("found!!!",b,addr)
                    s1 = str(b)
                    s2 = addr
                    f=open("a.txt","a")
                    f.write(s1)
                    f.write(s2)       
                    f.close()
                    pass
                else:
                    #pass
                    print(b,addr) #print(X,r1,b,addr)

               
            X=X+1


        X2=X2+saki
       
        #print("")
        #print(X2)
        #print("")