Show Posts
|
Pages: [1]
|
Hello, May I ask someone, who already has tames96.dat - tames100.dat, for sharing? If needed I will create tames by myself, but why to invent circle again if its already done?  I won't take #135, promise  I need Thema for another purpose. BR Damian
|
|
|
you could convert binary keys to hex easily and then run keyhunt
Hmmm, I am not sure if Keyhunt can do that. Just to be clear. I want to check .txt file of eg. 1 000 000 hypothetic 256bit private keys (not consecutive, more like random) against list of addreses. Keyhunt can't do that I think. Best Regards Damian
|
|
|
Hello,
Is there any program available for bruteforce (as BitCrack) which can be feeded with txt file with list of selected private keys (binary)?
Best Raegards Damian
|
|
|
Hi,
Lately I was wondering if it is possible to modify JLPKangaroo_OW_OT to write DP's on SSD M.2 NVMe instead of RAM? Do You have some experience or theoretical knowledge about such an issue?
I know that RAM is something different than SSD, but concerning that main task in Kangaroo is to caclucate points, find DP's and search for colision, is there a chance to store DP's on NVMe SSD without losing performance?
Best Regards Damian
|
|
|
Hi, Did You guys check newest release od RCKangaroo? Does it work on eg. 100bit space? @RetiredCoder, do You plan any other minipuzzles (or maxi) in the future? Let us know "when", if You plan something, please  BR Damian
|
|
|
Hello everyone, maybe someone will be interested: if this puzzle is a deterministic wallet,
Hi, As far as I have studied bitcoin, it's highly impossible for this addresses to came from one deterministic wallet. Please, correct me if I am wrong. Creating deterministic wallet You have no influence on final shape of priv keys so Yo can not made them,1bit, 2bit, 3bit etc. BR Damian
|
|
|
P.s. Here is a script that changes the public key and range in the working file. import argparse from math import log2 import os
HEADW = 0xFA6A8001 # work file HEADERSIZE=156
def bytes_to_num(byte_data): return int.from_bytes(byte_data, byteorder='little')
def checkhead(wf): head = bytes_to_num(wf.read(4)) if head==HEADW: return head else: print('HEADER ERROR %08x %08x' % (head, HEADW)) return False
def workinfo(workfile): wf = open(workfile, 'rb') head = checkhead(wf) if not head: print('Invalid WorkFile Header') return False version = bytes_to_num(bytes(wf.read(4))) dp1 = bytes_to_num(bytes(wf.read(4))) RangeStart = bytes_to_num(bytes(wf.read(32))) RangeEnd = bytes_to_num(bytes(wf.read(32))) x = bytes_to_num(bytes(wf.read(32))) y = bytes_to_num(bytes(wf.read(32))) count = bytes_to_num(bytes(wf.read(8))) time = bytes_to_num(bytes(wf.read(8))) print( f'Header : {head:08x}' f'\nVersion : {version:d}' f'\nDP Bits : {dp1}' f'\nStart : {RangeStart:032x}' f'\nStop : {RangeEnd:032x}' f'\nPubKey X : {x:032x}' f'\nPubKey Y : {y:032x}' f'\nCount : 2^{log2(count):.3f}' ) wf.close() return True def getuncompressedpub(compressed_key): p=2**256 - 2**32 - 977 y_parity = int(compressed_key[:2],16) - 2 if y_parity>1: x = int(compressed_key[2:66], 16) y = int(compressed_key[66:130], 16) return (x,y) x = int(compressed_key[2:], 16) a = (pow(x, 3, p) + 7) % p y = pow(a, (p+1)//4, p) if y % 2 != y_parity: y = -y % p return (x,y) def MakeChanges(workfile, NewPubCompressed, NewRB, NewRE): if os.path.exists(f'{workfile}'): print('Old header:') if workinfo(workfile): #make some changes (x,y)= getuncompressedpub(NewPubCompressed) with open(workfile, 'r+b') as wf: try: wf.seek(12) wf.write(NewRB.to_bytes(32, byteorder='little')) wf.write(NewRE.to_bytes(32, byteorder='little')) wf.write(x.to_bytes(32, byteorder='little')) wf.write(y.to_bytes(32, byteorder='little')) except Exception as e: print(f'File error {e}') print('New header:') workinfo(workfile) else: print(f'File {workfile} is not exist') return
if __name__ == '__main__': parser = argparse.ArgumentParser() parser.add_argument('-f', dest='workfile', type=str, required=True, help='WorkFile path') parser.add_argument('-pub', dest='pub', required=True, type=str, help='Compressed public key') parser.add_argument('-rb', dest='rb', required=True, type=str, help='Begin range') parser.add_argument('-re', dest='re', required=True, type=str, help='End range') args = parser.parse_args()
if args.workfile: print(f'Workfile {args.workfile}') MakeChanges(args.workfile, args.pub, int(args.rb,16), int(args.re,16))
Hi, Thank You for posting link and description. Have You ever gentelmans thought about creating 110bit of DPs instead of 80bit like in recent challange? Is it even possible? How big shuld be work file for -m 3 in that case? It would take aprox 15 Years with 10k CUDA core card. Crazy idea, but thereafter ~33.000.000 possible ranges for #135 to check. Economicaly, there is no point in such a move, but I think that there are some romantic in here  In theory, how long does it take to check new public key in precompiled 110bit work file? @Etar, how long does it take You to find new public key with 80bit precompiled workfile? BR Damian
|
|
|
This is a jlp kangaroo, with precalculated tame kangaroos. You can make them yourself. By running a kangaroo in the required range with the -m 3 parameter in a loop with a false public key. In this way you will accumulate a lot of DPs. After that, you will only need wild kangaroos.
This requires modification(s) to JLPs script. Hi, this sounds interesting to me. Are You able to provide link where that modifications are explained? Or is there maybe a repo with modified software? Thanks for help. BR Damian
|
|
|
Hi,
I am not very familiar with coding, programing etc. but isn't it impossible to solve 130bit puzzle with program that is described as "This program is limited to a 125bit interval search."? What does this sentence refere to?
Another quote from REDME of Kangaroo:
"#130, 129bits private key [2129,2130-1], 1Fo65aKq8s8iquMt6weF1rku1moWVEd5Ua 13.0BTC
Expected time: several years on 256 Tesla V100 (Not possible with this program without modification)"
Not possible with this program without modification - does it refere to "125bit interval" or "computing power"?
From semantic point of wiev, it is not possible to solve btc puzzle 130 with THIS program without modification. If Yes, can someone explain that why?
BR Damian
|
|
|
|