Post
Topic
Board Bitcoin Discussion
Re: Bitcoin puzzle transaction ~32 BTC prize to who solves it
by
kTimesG
on 14/07/2024, 15:41:48 UTC
  • [Hops: 229969 h/s] [00:00:01]
  • total time: 1.47 sec
  • KANGAROO: Sun Jul 14 16:01:53 2024 PUZZLE SOLVED
  • Private key (hex) : 000000000000000000000000000000000000000000000000000000e9ae4933d6
  • Hops: 335150
  • Average time to solve: 1.47 sec

I can bet that you can make a .so file that works 20 times faster point_addition &  point_doubling than this. Grin
I bet that no matter how well you think an .so file based on this algorithm runs, it will never reach even 1 million jumps/s.

Let's idealize this a little to prove my statement, and still be grounded in reality check.

We have one processor, let's pretend it runs at 5 Ghz. Let's pretend it solely does point addition, and ignore any other overhead like having to read or write data to system memory, having to propagate carries, etc etc

A single point addition according to your program requires:

m = (y1 - y2) / (x1 - x2)
x3 = m**2 - x1 - x2
y3 = m(x2 - x3) - y2

So, 1 inverse, 2 multiplications, 1 squaring, 6 additions, all mod P, on 256-bit numbers.

Let's assume one single 64-bit basic operation (add, multiply) takes one cycle (hint: it doesn't).

1 addition mod P ~= 4 or 8 adds = 4 cycles
1 squaring mod P = 16 multiplications for product, 8 + 2 more muls for reduce, and 41 adds
1 multiplication mod P = 42 multiplications + 41 additions
1 inverse = a shitload of cycles, let's simplify to ~30 multiplications mod P

Total estimate for a single point addition:
1 inv = 30 mul
30 mul + 2 mul + 1 sqr + 6 add =
1344 64-bit muls + 1312 adds + 26 mul + 41 adds + 48 adds

~= 2771 cycles

5 Ghz / 2771 = 1.804.402 operations / s

And this is a very very idealistic upper bound, without considering ANY of the additional real-life instructions needed to run an point addition.

On what planet do you think that sticking to this algorithm can run at "20x speed"?