Post
Topic
Board Bitcoin Discussion
Re: Bitcoin puzzle transaction ~32 BTC prize to who solves it
by
mcdouglasx
on 29/08/2023, 02:24:12 UTC
So basically, you talk about stride option in already existing tools.

Skipping the keys or searching n times is not the same as changing the curve.
Then explain the difference please.

I looked at the piece of code you wrote above, looks like it works like BSGS algorithm, with a very naive implementation.
The first thing that you should do, it is remove curve multiplication at all and replace it with subtraction.
I'm talking about this part: PublicKey = getPublicKey(Seq_Bytes)
Every call of "getPublicKey" is very expensive, no matter which point you're uses as "G".
Just take another point (G*100) as a stride and subtract it from current point on each step. Than you will get 6000, 5900, 5800, 5700 and so on with a great speed improvement. Trying to do the same by replacing the generator point is pretty bad practice, despite the fact that from some side it will certainly work.


I made the code basic to express the idea of why changing G+ database is a fast way to scan (it wasn't intended to be fast just forget about it and focus on G, the database, and the range division), if you jump keys you miss the speed of scalar multiplication.
for that reason the random in the current tools is R+incremental (to take advantage of scalar multiplication).

example :
pk=148557384957383058
and your database capacity is 1000000.
changing G to 1000000
you would only have to search
148557384957
while the common is
148557384957383058.
and as I said when posting the script, everything is in the fluidity with which we can scan the database quickly.