Bitcoin Forum
September 17, 2024, 11:05:10 PM *
News: Latest Bitcoin Core release: 27.1 [Torrent]
 
   Home   Help Search Login Register More  
Pages: « 1 ... 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 [244] 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 ... 297 »
  Print  
Author Topic: Bitcoin puzzle transaction ~32 BTC prize to who solves it  (Read 207797 times)
WanderingPhilospher
Full Member
***
Offline Offline

Activity: 1148
Merit: 237

Shooters Shoot...


View Profile
April 08, 2024, 01:32:14 PM
Merited by albert0bsd (1)
 #4861

I’m seeing so many variations of software throughout this thread and the other one. If I wanted to randomly let my pc waste electricity on weekends doing a random search for #66, what would be my best bet?

Use the program as you wish, but from puzzle 79, 81, 82, 83 and above.

Or, ask someone with knowledge about timings which is the lowest feasible puzzle to be solved that will leave enough time to withdraw without a bot snatchingup. I don't know this answer, could be even puzzle #70?  

If someone can answer that, that would be great.


Puzzle 81 is quite safe. I solved Puzzle 80 in about 26 hours (with extremely large memory in BSGS). The bot does not work on that number.
Nothing below 100, is really safe.

Especially with all this time in between the solving of puzzles.

Kangaroo would still be the program to use, IMO, that's what I would use anyway. Not BSGS, although one could if they had everything prebuilt and ready to go.
CY4NiDE
Jr. Member
*
Offline Offline

Activity: 50
Merit: 13


View Profile
April 08, 2024, 05:46:32 PM
Last edit: April 18, 2024, 10:12:30 PM by CY4NiDE
 #4862

Code:
import requests
import time
import os
import subprocess

# Address to monitor
address = "[b]13zb1hQbWVsc2S7ZTZnP2G4undNNpdh5so[/b]"

# File path to save the public key once detected
file_path = "[b]C:\\Path\\To\\Your\\Cracking\\Tool\\Folder\\[/b]puzzle.txt"

# Command to execute
cmd = "[b]your_cracking_tool.exe -r 20000000000000000:3FFFFFFFFFFFFFFFF -o FOUND.txt -i[/b] puzzle.txt"

# API endpoint
api_url = f"https://blockchain.info/q/pubkeyaddr/{address}"

def monitor_address():
    start_time = time.time()
    while True:
        try:
            response = requests.get(api_url)
            if response.status_code == 200:
                print("OUTGOING TRANSACTION DETECTED!")
                print("FETCHING COMPRESSED PUBLIC KEY...")
                public_key = response.text
                with open(file_path, 'w') as file:
                    file.write(public_key)
                print("INITIALIZING!")
                os.chdir("[b]C:\\Path\\To\\Your\\Cracking\\Tool\\Folder[/b]")
                subprocess.call(["cmd.exe", "/c", cmd])
                break
            else:
                os.system('cls' if os.name == 'nt' else 'clear')
                elapsed_time = time.time() - start_time
                print(f"Monitoring address: {address}...")
                print(f"[T: {int(elapsed_time)}] No outgoing transaction yet...")
                time.sleep(1)
        except Exception as e:
            print(f"Error: {e}")
            time.sleep(1)

if __name__ == "__main__":
    monitor_address()


This script monitors a given address waiting for an outgoing transaction to be broadcasted.

When this happens, the script will then write the public key to a file named "puzzle.txt" and execute the cracking tool of choice using "puzzle.txt" as the in file.

If someone wants to mess with it just replace "File path to save the public key once detected" and os.chdir("C:\\Path\\To\\Your\\Cracking\\Tool\\Folder") with the actual path

Also replace "Address to monitor" with your target address and "Command to execute" with the actual command to start up the algorithm of choice.

This script is fairly simple and as is it won't be able to compete with more elaborate bots, as it stops after finding the private key.

There's no automation to import the key into a wallet/transfer funds etc.

I made it just to test the response time using different tools.

BSGS-CUDA seems to be one of the best options for this, as it doesn't take too much time to load up.

I got to puzzle #70's private key in less than a minute with it.

1CY4NiDEaNXfhZ3ndgC2M2sPnrkRhAZhmS
Denis_Hitov
Newbie
*
Offline Offline

Activity: 49
Merit: 0


View Profile
April 08, 2024, 07:11:40 PM
Last edit: April 08, 2024, 08:02:18 PM by Denis_Hitov
 #4863

I started my project few years ago, when puzzle-64 still had balance. I was away of this forum for a very long time.....


This is written in your readme:

BINGO! (In the rare case of finding some private key with balance):
Import the WIF into a fully synced Bitcoin Core node.
If not sure how to do that, contact me by email (japeralsoler@gmail.com) attaching the 'found.txt' file.



Do you think people are idiots?
You even without a twinge of conscience ask to send a file with the found private key to your email!
albert0bsd
Hero Member
*****
Offline Offline

Activity: 933
Merit: 677



View Profile
April 09, 2024, 12:41:48 AM
 #4864

The search speed is between 15-25K keys/s per CPU thread, depending on the CPU clock.

For CPU that speed is slow, the minimum acceptable speed per thread is at least 1 Million keys.

Even my Core i5 laptop can do some 15 millions keys per second using only 8 threads.

There is a lot of shortcuts that can be made to reach those speeds.

I am interested to know the nature of the bot wars.

How is it possible the war?

Are the Kangaroo and BSGS tools sending the private key findings to the developers?

No those tools are open source and you can read the code to see what network activities they do.

The bot war may start as soon an output transaction come from those address a transaction contains the public key, with it Kangaroo or BSGS can solve the private key almost instantly and with it they may be now able to make a new transactions with a different destination address
vsv68
Newbie
*
Offline Offline

Activity: 8
Merit: 0


View Profile
April 09, 2024, 03:09:41 AM
 #4865


Are you sure that this API is capable of displaying information from the mempool?
CY4NiDE
Jr. Member
*
Offline Offline

Activity: 50
Merit: 13


View Profile
April 09, 2024, 03:41:27 AM
 #4866

Are you sure that this API is capable of displaying information from the mempool?

I don't think so, I believe this one is just for confirmed txs.

This is not meant to be used as is in a real scenario, although you could probably consider it a ground work to expand upon.

The goal was to actually see how long the whole operation can take using different tools.

In my end it took roughly a minute to go from a public key on the web to a 70 bit private key stored in a .txt file.

Probably not the best performance too, but scary nevertheless.  Grin

1CY4NiDEaNXfhZ3ndgC2M2sPnrkRhAZhmS
joseperal
Newbie
*
Offline Offline

Activity: 56
Merit: 0


View Profile
April 09, 2024, 03:58:55 AM
 #4867

The search speed is between 15-25K keys/s per CPU thread, depending on the CPU clock.

For CPU that speed is slow, the minimum acceptable speed per thread is at least 1 Million keys.

Even my Core i5 laptop can do some 15 millions keys per second using only 8 threads.

There is a lot of shortcuts that can be made to reach those speeds.

I am interested to know the nature of the bot wars.

How is it possible the war?

Are the Kangaroo and BSGS tools sending the private key findings to the developers?

No those tools are open source and you can read the code to see what network activities they do.

The bot war may start as soon an output transaction come from those address a transaction contains the public key, with it Kangaroo or BSGS can solve the private key almost instantly and with it they may be now able to make a new transactions with a different destination address


Thank you very much for the responses Alberto.

I know the chances to brute force puzzle 66 from private key to ripemd160 are very very small, but I would like to improve my tool, just for the sake of programming it, now you mention my tool seems slow in its performance per CPU thread.

I benchmarked every step of the brute force loop, and most of the compute time goes into the ECDSA curve library secp256k1_ec_pubkey_create() function.

I am using this library.

Quote
#include <secp256k1.h>     // Bitcore eliptic curve library. https://github.com/bitcoin-core/secp256k1
                                         // dont forget to link to /usr/local/lib/libsecp256k1.a
#include <omp.h>              // OpenMP CPU multithreading


        // 1) Calculate Public Key using SECP256K1 eliptic curve
      if(single_calculation){
         printf("\r\n(1) (U)ncompressed & (C)ompressed Public Key from SECP256K1 curve (130 hex chars, 520 bits): ");
         if(single_calculation) start=omp_get_wtime();
      }
        result=secp256k1_ec_pubkey_create(ctx, &pubkey_from_secp256k1.p, privkey);       //secp256k1_ec_pubkey_create(const secp256k1_context* ctx,  secp256k1_pubkey *pubkey, const unsigned char *seckey)
      if(single_calculation){
         printf("%f ms",(omp_get_wtime()-start)*1000);
      }




would you recommend any other? or any other PRO tips?

Thank you very much in advance.
kTimesG
Member
**
Offline Offline

Activity: 142
Merit: 25


View Profile
April 09, 2024, 12:14:28 PM
Last edit: April 09, 2024, 03:55:39 PM by kTimesG
Merited by albert0bsd (1), citb0in (1)
 #4868

I benchmarked every step of the brute force loop, and most of the compute time goes into the ECDSA curve library secp256k1_ec_pubkey_create() function.

Quote
#include <secp256k1.h>     // Bitcore eliptic curve library. https://github.com/bitcoin-core/secp256k1
                                         // dont forget to link to /usr/local/lib/libsecp256k1.a
There are numerous places where it's stated by its authors and mentors that the Bitcoin libsecp256k1 library is designed to provide a secure framework for Bitcoin software, not to be the fastest way to do EC math. One of the main features is protection against side-channel attacks, which means that all computations take constant time, with not a lot of shortcuts, if any at all, in order to protect against branch predictions, time-based attacks, etc.

If you want a fast(er)/(est) way to do EC math on a CPU you'll most likely have to roll your own. Slow but easy? Python. Fastish? libsecp256k1. Faster? C and custom arbitrary precision modular arithmetic code. Fasterish? assembler / SIMD CPU instructions. Faster than anything so far? GPU parallel executor threads. Fastest? Your own programmed ASIC.
albert0bsd
Hero Member
*****
Offline Offline

Activity: 933
Merit: 677



View Profile
April 09, 2024, 05:10:43 PM
 #4869

would you recommend any other? or any other PRO tips?

The function that you mention use the method know as Scalar Multiplication, this method is also know as "double and add" it use a cycle that per each bit in the key double the generation point G and only adds to the result those whom are bits 1.

In the worst case it is near 256 cycle per key or if you have some precalculated data of those public keys divided in bytes instead bits  you can reduce that cycle to 32 per key but that is still just a suggestion for that function.

The best way to proceed with it this kind of programs is just calculate the first key and with that first key do Public key additions to reach the next key this process will speed you program around 30 times

So instead of recalculate the public key each time with secp256k1_ec_pubkey_create

Code:
result=secp256k1_ec_pubkey_create(ctx, &pubkey_from_secp256k1.p, privkey); 
next_key =secp256k1_ec_pubkey_create(ctx, &pubkey_from_secp256k1.p, privkey +1);
next_key =secp256k1_ec_pubkey_create(ctx, &pubkey_from_secp256k1.p, privkey +2);
next_key =secp256k1_ec_pubkey_create(ctx, &pubkey_from_secp256k1.p, privkey+3);

privkey + something is just an example to illustrate what i mean.

the program will do something like:

Code:
first_key=secp256k1_ec_pubkey_create(ctx, &pubkey_from_secp256k1.p, privkey); 
next_key = some_publickey_addition(first_key,G);
next_key = some_publickey_addition(next_key ,G);
next_key = some_publickey_addition(next_key ,G);
...
next_key = some_publickey_addition(next_key ,G);
...


Only the first key is calculated in the old way and the subsequent keys are calculated in a faster way.

Another short cut is you don't need to calculate the Y value of all the subsequent keys (unless you are scanning for uncompressed keys) this may double the speed of the calculations.

Another short cut is endomorphism (This don't work on small puzzles) but it can multiply your speed up to 6 times for a general search.
joseperal
Newbie
*
Offline Offline

Activity: 56
Merit: 0


View Profile
April 09, 2024, 06:43:07 PM
Last edit: April 09, 2024, 06:54:30 PM by joseperal
 #4870

Thanks again for the detailed answer Alberto. I will try what you suggested.


My tool actually calculates for all the ID Bytes, 0x02, 0x03, 0x04, 0x06, and 0x07.

Code:
    //-----------------------------------------------------------------
    // Wallet Generation
    //
    do{

        // 0) Priv Key print
        if(single_calculation){
            printf("\r\n\r\n(0) Private ECDSA Key (64 hex chars, 256 bits): ");
            printf("\r\n    " COLOR_RED);
            for(k=0;k<32;k++) printf("%02x", privkey[k]);
            printf(COLOR_RESET);
        }

        // 1) Calculate Public Key using SECP256K1 eliptic curve
        if(single_calculation){
            printf("\r\n(1) (U)ncompressed & (C)ompressed Public Key from SECP256K1 curve (130 hex chars, 520 bits): ");
            if(single_calculation) start=omp_get_wtime();
        }
        result=secp256k1_ec_pubkey_create(ctx, &pubkey_from_secp256k1.p, privkey);       //secp256k1_ec_pubkey_create(const secp256k1_context* ctx,  secp256k1_pubkey *pubkey, const unsigned char *seckey)
        if(single_calculation){
            end=omp_get_wtime();
            printf("%.2f us",(end - start)*1000000);
        }

        //---------------------------------------------
        // Public Key
        // https://github.com/bitcoin/bitcoin/blob/ba4b3fbcf21317a9410f3be913e4437d58968091/src/secp256k1/include/secp256k1.h#L179
        //
        // Prefix byte used to tag various encoded curvepoints for specific purposes
        #define SECP256K1_TAG_PUBKEY_EVEN 0x02          // par
        #define SECP256K1_TAG_PUBKEY_ODD 0x03 // impar
        #define SECP256K1_TAG_PUBKEY_UNCOMPRESSED 0x04
        #define SECP256K1_TAG_PUBKEY_HYBRID_EVEN 0x06
        #define SECP256K1_TAG_PUBKEY_HYBRID_ODD 0x07

        // ID Byte
          compressed_02_pubkey[0]=SECP256K1_TAG_PUBKEY_EVEN;
          compressed_03_pubkey[0]=SECP256K1_TAG_PUBKEY_ODD;
          uncompressed_04_pubkey[0]=SECP256K1_TAG_PUBKEY_UNCOMPRESSED;
          compressed_06_pubkey[0]=SECP256K1_TAG_PUBKEY_HYBRID_EVEN;
          compressed_07_pubkey[0]=SECP256K1_TAG_PUBKEY_HYBRID_ODD;
       
        //---------------------------------------------
        // Uncompressed Pubkey reordering from 2 chunks of 32bytes to 65 bytes most significative byte lower index, and adding the key ID.
        //
        // 0x04 - Uncompressed public key format ID 0x04.
        //
        l=32;                                      // First 32 bytes chunk
        for(k=0;k<32;k++){
            uncompressed_04_pubkey[l]=pubkey_from_secp256k1.eb[k];  // .eb is the union element to access the memory in (E)igth (B)its.
            l--;
        }
        l=64;                                      // second 32 bytes chunk
        for(k=32;k<64;k++){
            uncompressed_04_pubkey[l]=pubkey_from_secp256k1.eb[k];
            l--;
        }

        //---------------------------------------------
        // Compressed PubKey get X from uncompressed and select ID byte using parity 0x02-0x03
        //
        // Copy X coordinate to new array with ID byte
        l=32;                                      // First 32 bytes chunk
        for(k=0;k<32;k++){
          compressed_02_pubkey[l]=pubkey_from_secp256k1.eb[k];  // .eb is the union element to access the memory in (E)igth (B)its.
          compressed_03_pubkey[l]=pubkey_from_secp256k1.eb[k];  // .eb is the union element to access the memory in (E)igth (B)its.
          compressed_06_pubkey[l]=pubkey_from_secp256k1.eb[k];  // .eb is the union element to access the memory in (E)igth (B)its.
          compressed_07_pubkey[l]=pubkey_from_secp256k1.eb[k];  // .eb is the union element to access the memory in (E)igth (B)its.  
          l--;
        }
       
        if(single_calculation){
            printf("\r\n          (C-02)" COLOR_GREEN ); for(k=0;k<33;k++) printf("%02x", compressed_02_pubkey[k]); printf(COLOR_RESET);
            printf("\r\n          (C-03)" COLOR_GREEN ); for(k=0;k<33;k++) printf("%02x", compressed_03_pubkey[k]); printf(COLOR_RESET);
            printf("\r\n          (U-04)" COLOR_GREEN ); for(k=0;k<65;k++) printf("%02x", uncompressed_04_pubkey[k]); printf(COLOR_RESET);
            printf("\r\n          (C-06)" COLOR_GREEN ); for(k=0;k<33;k++) printf("%02x", compressed_06_pubkey[k]); printf(COLOR_RESET);
            printf("\r\n          (C-07)" COLOR_GREEN ); for(k=0;k<33;k++) printf("%02x", compressed_07_pubkey[k]); printf(COLOR_RESET);
        }


Also talking about ID's. I realized the puzzle pieces are alternatively Compressed-02 and 03 only.

I got the list below just running my tool using the know private keys found here.

I know the puzzle creator said there is no pattern just a mask from HD wallets.

For example puzzle-1 to 5 are Compressed-02, and puzzle-6 is Compressed-03.


Code:
 
 1, Asc, C-02, 000000000000000001, 0000000000000000000000000000000000000001,            1,           2, 0000000000000000000000000000000000000010
 2, Asc, C-02, 000000000000000003, 0000000000000000000000000000000000000011,            3,           4, 0000000000000000000000000000000000000100
 3, Asc, C-02, 000000000000000007, 0000000000000000000000000000000000000111,            7,           1, 0000000000000000000000000000000000000001
 4, Asc, C-02, 000000000000000008, 0000000000000000000000000000000000001000,            8,          13, 0000000000000000000000000000000000001101
 5, Asc, C-02, 000000000000000015, 0000000000000000000000000000000000010101,           21,          28, 0000000000000000000000000000000000011100
 6, Asc, C-03, 000000000000000031, 0000000000000000000000000000000000110001,           49,          27, 0000000000000000000000000000000000011011
 7, Asc, C-02, 00000000000000004c, 0000000000000000000000000000000001001100,           76,         148, 0000000000000000000000000000000010010100
 8, Asc, C-03, 0000000000000000e0, 0000000000000000000000000000000011100000,          224,         243, 0000000000000000000000000000000011110011
 9, Asc, C-02, 0000000000000001d3, 0000000000000000000000000000000111010011,          467,          47, 0000000000000000000000000000000000101111
10, Asc, C-03, 000000000000000202, 0000000000000000000000000000001000000010,          514,         641, 0000000000000000000000000000001010000001
11, Asc, C-03, 000000000000000483, 0000000000000000000000000000010010000011,         1155,        1528, 0000000000000000000000000000010111111000
12, Asc, C-03, 000000000000000a7b, 0000000000000000000000000000101001111011,         2683,        2533, 0000000000000000000000000000100111100101
13, Asc, C-03, 000000000000001460, 0000000000000000000000000001010001100000,         5216,        5328, 0000000000000000000000000001010011010000
14, Asc, C-03, 000000000000002930, 0000000000000000000000000010100100110000,        10544,       16323, 0000000000000000000000000011111111000011
15, Asc, C-02, 0000000000000068f3, 0000000000000000000000000110100011110011,        26867,       24643, 0000000000000000000000000110000001000011
16, Asc, C-02, 00000000000000c936, 0000000000000000000000001100100100110110,        51510,       44313, 0000000000000000000000001010110100011001
17, Asc, C-03, 00000000000001764f, 0000000000000000000000010111011001001111,        95823,      102846, 0000000000000000000000011001000110111110
18, Asc, C-02, 00000000000003080d, 0000000000000000000000110000100000001101,       198669,      158866, 0000000000000000000000100110110010010010
19, Asc, C-03, 00000000000005749f, 0000000000000000000001010111010010011111,       357535,      505782, 0000000000000000000001111011011110110110
20, Asc, C-03, 0000000000000d2c55, 0000000000000000000011010010110001010101,       863317,      948447, 0000000000000000000011100111100011011111
21, Asc, C-03, 0000000000001ba534, 0000000000000000000110111010010100110100,      1811764,     1195739, 0000000000000000000100100011111011011011
22, Asc, C-02, 0000000000002de40f, 0000000000000000001011011110010000001111,      3007503,     2591299, 0000000000000000001001111000101001000011
23, Asc, C-03, 000000000000556e52, 0000000000000000010101010110111001010010,      5598802,     8829874, 0000000000000000100001101011101110110010
24, Asc, C-03, 000000000000dc2a04, 0000000000000000110111000010101000000100,     14428676,    18756833, 0000000000000001000111100011010011100001
25, Asc, C-03, 000000000001fa5ee5, 0000000000000001111110100101111011100101,     33185509,    21353353, 0000000000000001010001011101001110001001
26, Asc, C-02, 00000000000340326e, 0000000000000011010000000011001001101110,     54538862,    57411079, 0000000000000011011011000000011000000111
27, Asc, C-03, 000000000006ac3875, 0000000000000110101011000011100001110101,    111949941,   115684467, 0000000000000110111001010011010001110011
28, Asc, C-03, 00000000000d916ce8, 0000000000001101100100010110110011101000,    227634408,   173074486, 0000000000001010010100001110100000110110  
29, Asc, C-02, 000000000017e2551e, 0000000000010111111000100101010100011110,    400708894,   632453190, 0000000000100101101100100111100001000110
30, Asc, C-03, 00000000003d94cd64, 0000000000111101100101001100110101100100,   1033162084,  1069226467, 0000000000111111101110110001100111100011
31, Asc, C-03, 00000000007d4fe747, 0000000001111101010011111110011101000111,   2102388551,   991084263, 0000000000111011000100101011111011100111
32, Asc, C-02, 0000000000b862a62e, 0000000010111000011000101010011000101110,   3093472814,  4043965098, 0000000011110001000010100000001010101010
33, Asc, C-03, 0000000001a96ca8d8, 0000000110101001011011001010100011011000,   7137437912,  6995634245, 0000000110100000111110001110100001000101
34, Asc, C-03, 00000000034a65911d, 0000001101001010011001011001000100011101,  14133072157,  5979799635, 0000000101100100011011001000000001010011
35, Asc, C-02, 0000000004aed21170, 0000010010101110110100100001000101110000,  20112871792, 22274898188, 0000010100101111101011111111100100001100
36, Asc, C-02, 0000000009de820a7c, 0000100111011110100000100000101001111100,  42387769980, 57863790615, 0000110101111000111100110110000000010111
37, Asc, C-02, 000000001757756a93, 0001011101010111011101010110101010010011, 100251560595, 46719975997, 0000101011100000101110100100001000111101

I will drop the uncompressed (04) and the Compressed 06-07 as the puzzle seems not using them.

Does anyone know if the uncompressed (04) and the Compressed 06-07 were used so far on any early days wallet? or for what are they used for?

I always dreamed finding something unspent on those ID's (04-06-07).



kTimesG
Member
**
Offline Offline

Activity: 142
Merit: 25


View Profile
April 09, 2024, 09:28:39 PM
 #4871

Also talking about ID's. I realized the puzzle pieces are alternatively Compressed-02 and 03 only.
It's not like the 02 or 03 were chosen arbitrarily. It's stupid to check for a collision by doing both 02 and 03. Just stick to the correct parity of the actual Y of the point.

Why? Because if k is the private key of some point, then the key of its Y-symmetric point is -k == N - k. So the keys of all those other points is in the range [2^256 - 2^66 .... 2^256 - 2^65] which is always outside the interval of interest.

Another short cut is you don't need to calculate the Y value of all the subsequent keys (unless you are scanning for uncompressed keys) this may double the speed of the calculations.

Another short cut is endomorphism (This don't work on small puzzles) but it can multiply your speed up to 6 times for a general search.

Is there some trick to compute the X value of P + G if you don't know P.y? I'm curious to know.

Endomorphism will not work for any puzzle, not just small ones. Same reason as above. Multiplying the key by lambda or lambda^2 instantly lands your key into 256-bit space, no matter what interval you were working on. Even for 160-bit puzzle, the chance that k*lambda or k*lambda^2 ends up back into a 160-bit space is 1 / 2^96.
albert0bsd
Hero Member
*****
Offline Offline

Activity: 933
Merit: 677



View Profile
April 09, 2024, 10:35:09 PM
Last edit: April 09, 2024, 10:54:15 PM by albert0bsd
 #4872

I always dreamed finding something unspent on those ID's (04-06-07).

I didn't know the existence of 06 and 07 public key prefix. I wonder where are those prefixes used?

Is there some trick to compute the X value of P + G if you don't know P.y? I'm curious to know.

Q = P+G

Well you need to know the value P.y in order to calcualte the next sequence of Q values but you you don't need to calculate the actual Q.y value, this sound a dubious but actuallly it works and faster than regular approach.

This work better for some array of Q values, if the array is 512 or 1024 items long you can skip the calcualtions of 512 or 1024  Q.y values

You only need to calculate one Q.y value for next group of items and repeat (This value need to be the center of the group becuse it use it use a property that  P + i*G and P - i*G have the same deltax and same inverse value), this save alot of time.

It not only works for  Q = P+G but for any Q = P+ iG

Its complex and painful but read the code but it worth the time to study and implement it, just to see how the speed increment, maybe i will publish an step by step explatnation for it, but if you want to take a look please check where i learned it: https://github.com/JeanLucPons/BSGS/blob/master/BSGS.cpp#L189

That implementation alone multiply the previous speed x4 times.
joseperal
Newbie
*
Offline Offline

Activity: 56
Merit: 0


View Profile
April 10, 2024, 01:07:55 AM
Last edit: April 10, 2024, 10:40:09 AM by joseperal
 #4873

Quote
It's not like the 02 or 03 were chosen arbitrarily. It's stupid to check for a collision by doing both 02 and 03. Just stick to the correct parity of the actual Y of the point.

I could save some time there, calculating only what has to be calculated, C-02 or C-03, but...

If it is stupid, why people sent funds to all 3, compressed-02, compressed-03 and uncompressed-04 addresses of the same private key?, by error? just for testing? who knows...

I discovered this by accident, because did not understand which is the check on the private key, to decide which Compressed-02 or compressed-03 Id I must use, so I did both, and also the other U-4, C-6 and C7 and calculated everything else up to the ripemd160 hash, and searched all 5 in my list of list 53M ripemd160 hashes with balance. Just in case there is a treasure somewhere.

For example, private key 1,


Quote
(0) Private ECDSA Key (64 hex chars, 256 bits):
    0000000000000000000000000000000000000000000000000000000000000001
(1) (U)ncompressed & (C)ompressed Public Key from SECP256K1 curve (130 hex chars, 520 bits): 27.46 us
          (C-02) 0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798
          (C-03) 0379be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798
          (U-04) 0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c 4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8
          (C-06) 0679be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798
          (C-07) 0779be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798
(2) SHA-256 hash of 1) (64 hex chars, 256 bits): 2.41 us
          (C-02) 0f715baf5d4c2ed329785cef29e562f73488c8a2bb9dbc5700b361d54b9b0554
          (C-03) fbd27dbb9e7f471bf3de3704a35e884e37d35c676dc2cc8c3cc574c3962376d2
          (U-04) 50929b74c1a04954b78b4b6035e97a5e078a5a0f28ec96d547bfee9ace803ac0
          (C-06) a5b6d4f1afa0d2d636d24fedbbf4b9e7af021c781ba49d3aa929995ff2ca816b
          (C-07) f202daaa8a47a5b3c956ed3336a29a41bd18219f774631a36486fcc6d2c07bf4
(3) RIPEMD-160 Hash of 2) (40 hex chars, 160 bits): 3.13 us
          (C-02) 751e76e8199196d454941c45d1b3a323f1433bd6
          (C-03) adde4c73c7b9cee17da6c7b3e2b2eea1a0dcbe67
          (U-04) 91b24bf9f5288532960ac687abb035127b1d28a5
          (C-06) f7c5db8a136ecdeb0a166b90dba910ec5c0e084c
          (C-07) b5ad7fc95a16cd96ac15b34f5556c8c42738f4c2
(4) Adding Bitcoin (00) network byte to 3) Smiley
          (C-02) 00751e76e8199196d454941c45d1b3a323f1433bd6
          (C-03) 00adde4c73c7b9cee17da6c7b3e2b2eea1a0dcbe67
          (U-04) 0091b24bf9f5288532960ac687abb035127b1d28a5
          (C-06) 00f7c5db8a136ecdeb0a166b90dba910ec5c0e084c
          (C-07) 00b5ad7fc95a16cd96ac15b34f5556c8c42738f4c2
(5) SHA-256 hash of 4) (64 hex chars, 256 bits): 1.20 us
          (C-02) c5a2ed70d2c035108c2415792162a6daaf21e6dc015ace0f9a458dd3f01da598
          (C-03) 0a949428f11ccbbd74e2f6837b65bee2cde8d5c493c44868a746ed0c4b8d382f
          (U-04) 79fa926bf4ac874060b244d6e985c694233eed0d5562c0b88cdf37bfbb80b44f
          (C-06) 1b051daafde0cc5730701f0bb7fe41afe06d613a22f31b98600eefb76d2c4d74
          (C-07) eadcc137063b2856e15e9579d006370d02dbe11130912bd31ada66516e632637
(6) SHA-256 hash of 5) (64 hex chars, 256 bits): 1.17 us
          (C-02) 510d1634d943109b69da527ef5948106f22b655fb5193b4e9ef7e4dcd342d245
          (C-03) 2c2b0787b4332fa72ea7174062b0dd262dcf24cff911ff122cad781c40b213dd
          (U-04) 0074ffe0526d823be09b39865422a1d6135afc85afb0a6863c58e9fe89989170
          (C-06) af537bc85e867fed63eb5460d085e35a06275e524be860ef2926d2920cf32cc6
          (C-07) 9fbf8ab54d2f5f4e754048ee673346c389281b4f0d805209bc3a8c7ed2ca6f0e
(7-8 ) First four bytes of 6) at the end of 4):
          (C-02) 00751e76e8199196d454941c45d1b3a323f1433bd6510d1634
          (C-03) 00adde4c73c7b9cee17da6c7b3e2b2eea1a0dcbe672c2b0787
          (U-04) 0091b24bf9f5288532960ac687abb035127b1d28a50074ffe0
          (C-06) 00f7c5db8a136ecdeb0a166b90dba910ec5c0e084caf537bc8
          (C-07) 00b5ad7fc95a16cd96ac15b34f5556c8c42738f4c29fbf8ab5
9) Base58 encoding of 8 ):6.48 us
      (BTC C-02) 1BgGZ9tcN4rm9KBzDn7KprQz87SZ26SAMH (35 chars)
      (BTC C-03) 1GrLCmVQXoyJXaPJQdqssNqwxvha1eUo2E (35 chars)
      (BTC U-04) 1EHNa6Q4Jz2uvNExL497mE43ikXhwF6kZm (35 chars)
   (BTC CHyb-06) 1Pb6vmWniHWeK1yVECHcHGmw5y8b5DAaRD (35 chars)
   (BTC CHyb-07) 1HZd9eyS44EXgWsDVrQnpqZnLiqLTnARvU (35 chars)
10) Export Mainnet PrivKey 1) into WIF format:
    (C-SHA256x2) 4671fc3f80de85b50cc4d7d718fbe440800b885dba9e2b4c2cf930d1e4682401
    (U-SHA256x2) a85aa87e9879f34d1449e35c58e64d9325733ca2efb4577e6720ec42c3625783
         (C-ext) 80000000000000000000000000000000000000000000000000000000000000000101
         (U-ext) 800000000000000000000000000000000000000000000000000000000000000001
   (C-ext+chksm) 800000000000000000000000000000000000000000000000000000000000000001014671fc3f
   (U-ext+chksm) 800000000000000000000000000000000000000000000000000000000000000001a85aa87e
         (C-WIF) KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rFU73sVHnoWn (53 chars)
         (U-WIF) 5HpHagT65TZzG1PH3CSu63k8DbpvD8s5ip4nEB3kEsreAnchuDf (52 chars)
11) Binary Search of 3) in the input list:
    (C-02)751e76e8199196d454941c45d1b3a323f1433bd6 r=-138
    L=000000,M=26997358,R=53994717  [026997358][7f6d1f7a3c4c2218944870f7902f2a7f1b489082] r=-10 -> searching down
    L=000000,M=13498678,R=26997357  [013498678][3fba6ab86c91fd1c7d8eaccfae45d634c948047d] r=54 -> searching up
    L=13498679,M=20248018,R=26997357  [020248018][5fcf41f80dc97a709b37bab9dadefe50a79d6d77] r=22 -> searching up
    L=20248019,M=23622688,R=26997357  [023622688][6f802f2c5209b67328916fb7f91420630758b503] r=6 -> searching up
    L=23622689,M=25310023,R=26997357  [025310023][776afd85cbc23414b99aa4244d69973effbf60cf] r=-2 -> searching down
    L=23622689,M=24466355,R=25310022  [024466355][73738b855e053c71397fc6572be19fb88a9b9210] r=2 -> searching up
    L=24466356,M=24888189,R=25310022  [024888189][756e25805cddbb24d6b177b9d9af29139b8ea84b] r=-80 -> searching down
    L=24466356,M=24677272,R=24888188  [024677272][746f6d2ac6e6008d61cff82eaeb5b78a1f364412] r=1 -> searching up
    L=24677273,M=24782730,R=24888188  [024782730][74eec386cc13e03a62ee0a281e5d6210a852cda4] r=1 -> searching up
    L=24782731,M=24835459,R=24888188  [024835459][752ea978faffb2d9aac5f77db626f212681e79db] r=-16 -> searching down
    L=24782731,M=24809094,R=24835458  [024809094][750f08e0526ff1235da8fb58517e1cc48dda0f1e] r=15 -> searching up
    L=24809095,M=24822276,R=24835458  [024822276][751ef46df183ecf1edff58087507827f57a3f152] r=-126 -> searching down
    L=24809095,M=24815685,R=24822275  [024815685][75171082196189db524ce50e841c80ddbc97322b] r=7 -> searching up
    L=24815686,M=24818980,R=24822275  [024818980][751b051c231073cd588960ba4bba649424b17132] r=3 -> searching up
    L=24818981,M=24820628,R=24822275  [024820628][751d0c2953b8d5d899012432daab1887806c0635] r=1 -> searching up
    L=24820629,M=24821452,R=24822275  [024821452][751e02f00e0e1c8c701914d1472388066bcc2c8b] r=116 -> searching up
    L=24821453,M=24821864,R=24822275  [024821864][751e7ebf0973e343e36db34274248749b7287411] r=-8 -> searching down
    L=24821453,M=24821658,R=24821863  [024821658][751e430d740583d15556375e8591a0ef153679a6] r=51 -> searching up
    L=24821659,M=24821761,R=24821863  [024821761][751e61cc4036ac563d6b247b59a92fd81600bbe1] r=21 -> searching up
    L=24821762,M=24821812,R=24821863  [024821812][751e70916d45447472ca626365a8c7b8adbfd9e7] r=6 -> searching up
    L=24821813,M=24821838,R=24821863  [024821838][751e77051d52a132cafa91f0adc6b58ef6206889] r=-1 -> searching down
    L=24821813,M=24821825,R=24821837  [024821825][751e752b04646b2142e3f89cf74a23d230353062] r=1 -> searching up
    L=24821826,M=24821831,R=24821837  [024821831][751e7594b54496e60d9f87c9719d7de9c88de58a] r=1 -> searching up
    L=24821832,M=24821834,R=24821837  [024821834][751e7677d4b56fa664dd5690336ac26bf382c48d] r=113 -> searching up
    L=24821835,M=24821836,R=24821837  [024821836][751e76e8199196d454941c45d1b3a323f1433bd6] r=0 -> BINGO! HASH FOUND!-C02.
    COMPRESSED-02 HASH FOUND IN THE LIST!: 0000000000000000000000000000000000000000000000000000000000000001 -> Key saved in found.txt
 jumps=024 95618.23 us

    (C-03)adde4c73c7b9cee17da6c7b3e2b2eea1a0dcbe67 r=-82
    L=000000,M=26997358,R=53994717  [026997358][7f6d1f7a3c4c2218944870f7902f2a7f1b489082] r=46 -> searching up
    L=26997359,M=40496038,R=53994717  [040496038][bfa9e9e4e75dd26fc34343505fc7bfe7e1b3f854] r=-18 -> searching down
    L=26997359,M=33746698,R=40496037  [033746698][9f9293a4b16f79ebdd6a9a95d1280381fe306683] r=14 -> searching up
    L=33746699,M=37121368,R=40496037  [037121368][af90a29b48ca6c37ad04c9af7549eaad65485cf7] r=-2 -> searching down
    L=33746699,M=35434033,R=37121367  [035434033][a7846d7805d181ab265c83af5b384bfe9564c78d] r=6 -> searching up
    L=35434034,M=36277700,R=37121367  [036277700][ab89e364ae07e7ab122b9df14234e038c0ea8f11] r=2 -> searching up
    L=36277701,M=36699534,R=37121367  [036699534][ad8cf4b68db1de5beaaad5d2f279bcde8a568c2a] r=82 -> searching up
    L=36699535,M=36910451,R=37121367  [036910451][ae8e36ba499c869a9badb6891a6561a585f357d4] r=-1 -> searching down
    L=36699535,M=36804992,R=36910450  [036804992][ae0dadbf3e37cd2295b03b2d097b817c053a6c59] r=-1 -> searching down
    L=36699535,M=36752263,R=36804991  [036752263][adcd5813cc21b7a7d617a7bc69813c2614b59a4e] r=17 -> searching up
    L=36752264,M=36778627,R=36804991  [036778627][aded6fdfd74c74b11df493a5c41f75a9ae30e9c8] r=-15 -> searching down
    L=36752264,M=36765445,R=36778626  [036765445][addd68257d27cf9054cfb9c45f9dcef937cc31bc] r=1 -> searching up
    L=36765446,M=36772036,R=36778626  [036772036][ade5847b88a3fee264ad2a339c7c16b1e644e3ee] r=-7 -> searching down
    L=36765446,M=36768740,R=36772035  [036768740][ade168acc9b78d9bc5f4125418a413932e5b5efe] r=-3 -> searching down
    L=36765446,M=36767092,R=36768739  [036767092][addf7426bc41f6013b5159143d5b46c8736b3345] r=-1 -> searching down
    L=36765446,M=36766268,R=36767091  [036766268][adde6c452daddda62a0487280c0030282b29f8ae] r=-32 -> searching down
    L=36765446,M=36765856,R=36766267  [036765856][addde8aa011388d42d723698fed8f32b4ac4100f] r=1 -> searching up
    L=36765857,M=36766062,R=36766267  [036766062][adde293f8d6b835e398c9086c68711f5606a4e49] r=35 -> searching up
    L=36766063,M=36766165,R=36766267  [036766165][adde4c6650e369dd5470acf1a4c30a21c8bf2b3c] r=13 -> searching up
    L=36766166,M=36766216,R=36766267  [036766216][adde5cdf4390cce6fdf12fb092a082a23a42e865] r=-16 -> searching down
    L=36766166,M=36766190,R=36766215  [036766190][adde540d129d88a372939332767c98fc96d6d1b0] r=-8 -> searching down
    L=36766166,M=36766177,R=36766189  [036766177][adde50f07fd306d43ed5e8a3eecc3acc133bce6b] r=-4 -> searching down
    L=36766166,M=36766171,R=36766176  [036766171][adde4de053aa9db5394b38d4bdd1ddeb7b961d5a] r=-1 -> searching down
    L=36766166,M=36766168,R=36766170  [036766168][adde4cfe08c932487a7ff6119540d9ce7d68bf9a] r=-139 -> searching down
    L=36766166,M=36766166,R=36766167  [036766166][adde4cb424dd52d296fc1d6c7bc1443f01372fb9] r=-65 -> searching down jumps=025 119.48 us

    (U-04)91b24bf9f5288532960ac687abb035127b1d28a5 r=-110
    L=000000,M=26997358,R=53994717  [026997358][7f6d1f7a3c4c2218944870f7902f2a7f1b489082] r=18 -> searching up
    L=26997359,M=40496038,R=53994717  [040496038][bfa9e9e4e75dd26fc34343505fc7bfe7e1b3f854] r=-46 -> searching down
    L=26997359,M=33746698,R=40496037  [033746698][9f9293a4b16f79ebdd6a9a95d1280381fe306683] r=-14 -> searching down
    L=26997359,M=30372028,R=33746697  [030372028][8f82895a18e2409bd54c43838f53106677ea57e0] r=2 -> searching up
    L=30372029,M=32059363,R=33746697  [032059363][978a904cfce9f5b45dbe93fc619e14bae26baeed] r=-6 -> searching down
    L=30372029,M=31215695,R=32059362  [031215695][93855355fb12b4f7a45022b2ad14af9d2fac9100] r=-2 -> searching down
    L=30372029,M=30793861,R=31215694  [030793861][9185076cb256e675c63431d76deac88a6ad6bcbb] r=45 -> searching up
    L=30793862,M=31004778,R=31215694  [031004778][9284a538feec87dcba156b217a898c644ea0df78] r=-1 -> searching down
    L=30793862,M=30899319,R=31004777  [030899319][92055139acf8da4af5987d96041cd08bfabb81a7] r=-1 -> searching down
    L=30793862,M=30846590,R=30899318  [030846590][91c4f55d85f486e7eaa9fe6242047727bce4f0e9] r=-18 -> searching down
    L=30793862,M=30820225,R=30846589  [030820225][91a4ca1f09381d0710f4888572c25b653af6b34d] r=14 -> searching up
    L=30820226,M=30833407,R=30846589  [030833407][91b4bfd64ad44d38f1aa57314e515f81ae36bfce] r=-2 -> searching down
    L=30820226,M=30826816,R=30833406  [030826816][91ace7e86f4cb311249081bee2a509257e11a844] r=6 -> searching up
    L=30826817,M=30830111,R=30833406  [030830111][91b0e4212d608573c033a5f57256f5ac61795dc4] r=2 -> searching up
    L=30830112,M=30831759,R=30833406  [030831759][91b2d3b2294d5fac93843ba59ce61c3ae41ac7b9] r=-136 -> searching down
    L=30830112,M=30830935,R=30831758  [030830935][91b1daf82560e8f09e0498939908b583de393e1e] r=1 -> searching up
    L=30830936,M=30831347,R=30831758  [030831347][91b254f149b3cc8f2c459b84d0aa740924b108dd] r=-9 -> searching down
    L=30830936,M=30831141,R=30831346  [030831141][91b2194e05060df067c4989c1ea6f1865b03432e] r=50 -> searching up
    L=30831142,M=30831244,R=30831346  [030831244][91b2379d843bebf2fbaf20cad483858571b4382b] r=20 -> searching up
    L=30831245,M=30831295,R=30831346  [030831295][91b24748670f53d3f79af870926e137fff8a35f6] r=4 -> searching up
    L=30831296,M=30831321,R=30831346  [030831321][91b24e755c0c43dbc4465b4efb046ddf060bade3] r=-3 -> searching down
    L=30831296,M=30831308,R=30831320  [030831308][91b24b66892bcda55cb5bdddf8b2b0f84366b6c2] r=147 -> searching up
    L=30831309,M=30831314,R=30831320  [030831314][91b24c396b87f530d25ed9ec28c3965bfbdb1040] r=-1 -> searching down
    L=30831309,M=30831311,R=30831313  [030831311][91b24bc29b0206629359d3f6d4a6727245d08039] r=55 -> searching up
    L=30831312,M=30831312,R=30831313  [030831312][91b24bd47b0d32db93138158203277c2737e6b6e] r=37 -> searching up
    L=30831313,M=30831313,R=30831313  [030831313][91b24c165727fce1d621ab36caedece9d0469a3c] r=-1 -> searching down jumps=026 70.70 us

    (C-06)f7c5db8a136ecdeb0a166b90dba910ec5c0e084c r=-8
    L=000000,M=26997358,R=53994717  [026997358][7f6d1f7a3c4c2218944870f7902f2a7f1b489082] r=120 -> searching up
    L=26997359,M=40496038,R=53994717  [040496038][bfa9e9e4e75dd26fc34343505fc7bfe7e1b3f854] r=56 -> searching up
    L=40496039,M=47245378,R=53994717  [047245378][dfd6d80c1f496f49e64c37c35825ade57c2e96c9] r=24 -> searching up
    L=47245379,M=50620048,R=53994717  [050620048][efe8281cd47c48401a8f59d2a22262eddabb2b84] r=8 -> searching up
    L=50620049,M=52307383,R=53994717  [052307383][f7f2aa3652744864d14e1b58cfc2fc6b5aab2a8b] r=-45 -> searching down
    L=50620049,M=51463715,R=52307382  [051463715][f3ec6ffa4c78a65d0aa1422540edd87fb90b7fc0] r=4 -> searching up
    L=51463716,M=51885549,R=52307382  [051885549][f5ef5e49e0674be3bfc3c529b42eb5ca6687c0b5] r=2 -> searching up
    L=51885550,M=52096466,R=52307382  [052096466][f6f125770f6b709b6ffb3388b14dac4c341f24ea] r=1 -> searching up
    L=52096467,M=52201924,R=52307382  [052201924][f7727ccda3c74e95ae0bc580b0cded445452001b] r=83 -> searching up
    L=52201925,M=52254653,R=52307382  [052254653][f7b2974abd090996c8f0b51108b1f7b0bd98b400] r=19 -> searching up
    L=52254654,M=52281018,R=52307382  [052281018][f7d25d4920fe3c44aef56a2c34e8556d60a223ab] r=-13 -> searching down
    L=52254654,M=52267835,R=52281017  [052267835][f7c24227fa1ce2dccf7dae013d7a2f9dd71dc65f] r=3 -> searching up
    L=52267836,M=52274426,R=52281017  [052274426][f7ca352f88a1737e0a2cc60f90eae03c1f15c917] r=-5 -> searching down
    L=52267836,M=52271130,R=52274425  [052271130][f7c6463d6ae90ac102cd3cd25a824c134d88d47b] r=-1 -> searching down
    L=52267836,M=52269482,R=52271129  [052269482][f7c4452debea533b835d18f421b295ea5c8c19db] r=1 -> searching up
    L=52269483,M=52270306,R=52271129  [052270306][f7c5427c9fb735b8e63ac6e7c79c4c633d00f91e] r=153 -> searching up
    L=52270307,M=52270718,R=52271129  [052270718][f7c5c843a21776136c95b09c7824a3f0bdbd4708] r=19 -> searching up
    L=52270719,M=52270924,R=52271129  [052270924][f7c60967db247b96b4384463a7e1b6dafa2045ab] r=-1 -> searching down
    L=52270719,M=52270821,R=52270923  [052270821][f7c5e828d3f6afc2238c219719610a4ed30faf39] r=-13 -> searching down
    L=52270719,M=52270769,R=52270820  [052270769][f7c5d79937b794705594f7fe89c4bad9ce1e6dda] r=4 -> searching up
    L=52270770,M=52270795,R=52270820  [052270795][f7c5e034e87fd22b7c52af6a74a0cf61663ba4b4] r=-5 -> searching down
    L=52270770,M=52270782,R=52270794  [052270782][f7c5db2ce61593bddfc473ea05d60ce1770179cd] r=94 -> searching up
    L=52270783,M=52270788,R=52270794  [052270788][f7c5dc9ff1b3ac6c65c7c19f8692521ca4894c73] r=-1 -> searching down
    L=52270783,M=52270785,R=52270787  [052270785][f7c5dc0fde1087bd5260d0bbb05c8f80c7248878] r=-1 -> searching down
    L=52270783,M=52270783,R=52270784  [052270783][f7c5db9dcdd5f2b4a4e617ca8b6640ce4b902403] r=-19 -> searching down jumps=025 160.75 us

    (U-07)b5ad7fc95a16cd96ac15b34f5556c8c42738f4c2 r=-74
    L=000000,M=26997358,R=53994717  [026997358][7f6d1f7a3c4c2218944870f7902f2a7f1b489082] r=54 -> searching up
    L=26997359,M=40496038,R=53994717  [040496038][bfa9e9e4e75dd26fc34343505fc7bfe7e1b3f854] r=-10 -> searching down
    L=26997359,M=33746698,R=40496037  [033746698][9f9293a4b16f79ebdd6a9a95d1280381fe306683] r=22 -> searching up
    L=33746699,M=37121368,R=40496037  [037121368][af90a29b48ca6c37ad04c9af7549eaad65485cf7] r=6 -> searching up
    L=37121369,M=38808703,R=40496037  [038808703][b79c46c17fe0cc0ab23e538fe6c29664f0fae312] r=-2 -> searching down
    L=37121369,M=37965035,R=38808702  [037965035][b396058622569091c9de70b5fc92e87c356dd4d8] r=2 -> searching up
    L=37965036,M=38386869,R=38808702  [038386869][b59a79f07fa7d88ef487c0d7d8e635ece640a219] r=19 -> searching up
    L=38386870,M=38597786,R=38808702  [038597786][b69b64ad218fc50c92996d143792b661826a84e1] r=-1 -> searching down
    L=38386870,M=38492327,R=38597785  [038492327][b61a64aa24df4516957df4b07ce243d8c0c337f3] r=-1 -> searching down
    L=38386870,M=38439598,R=38492326  [038439598][b5da7b7a0b837d0905968bb09aafbce1a6b5ae62] r=-45 -> searching down
    L=38386870,M=38413233,R=38439597  [038413233][b5ba9dab104aacf677a7bdf3b794ecc4b3ff7801] r=-13 -> searching down
    L=38386870,M=38400051,R=38413232  [038400051][b5aaae7f8215bcc0f58f80b7c89a603237dcf9de] r=3 -> searching up
    L=38400052,M=38406642,R=38413232  [038406642][b5b28cfd055b817109126b78d7ff2f60d6682a77] r=-5 -> searching down
    L=38400052,M=38403346,R=38406641  [038403346][b5ae9c6645b33cb8c53fab074a2b8411c6a192c0] r=-1 -> searching down
    L=38400052,M=38401698,R=38403345  [038401698][b5acabe38fa7fe92f163b4e27ffe2b3eaa1cb501] r=1 -> searching up
    L=38401699,M=38402522,R=38403345  [038402522][b5ad9e724f11549ad8771064bd817cdd0184619a] r=-31 -> searching down
    L=38401699,M=38402110,R=38402521  [038402110][b5ad25fde5a12578352a5e6cb9e27e724475905d] r=90 -> searching up
    L=38402111,M=38402316,R=38402521  [038402316][b5ad63c866b42c3a414dfea477a1a268e7fc0192] r=28 -> searching up
    L=38402317,M=38402419,R=38402521  [038402419][b5ad843176e8653cb0ed83ebe23cc968fbfe4e4a] r=-5 -> searching down
    L=38402317,M=38402367,R=38402418  [038402367][b5ad728ee14d53c76f72cf6568d7b8547e699ea8] r=13 -> searching up
    L=38402368,M=38402393,R=38402418  [038402393][b5ad7c8d5a602db819db894a82d0ad8b3df0d961] r=3 -> searching up
    L=38402394,M=38402406,R=38402418  [038402406][b5ad8080c63a396fa9f679e8dd7c29d17231e200] r=-1 -> searching down
    L=38402394,M=38402399,R=38402405  [038402399][b5ad7e4eff15d25f57a527ce4fcc091f2d913d01] r=1 -> searching up
    L=38402400,M=38402402,R=38402405  [038402402][b5ad7f8a2a5f7180d5da6423eaebac0796791933] r=63 -> searching up
    L=38402403,M=38402404,R=38402405  [038402404][b5ad80167174e9c1b677d1e13907c2e7faec9617] r=-1 -> searching down
    L=38402403,M=38402403,R=38402403  [038402403][b5ad7fa7c7ca3e1847cce60fe36797e6f0af733d] r=34 -> searching up jumps=026 173.27 us

In step 9 we got the addresses for the 5 Ids:

      (BTC C-02) 1BgGZ9tcN4rm9KBzDn7KprQz87SZ26SAMH (35 chars)   this is puzzle 1 -> https://mempool.space/address/1BgGZ9tcN4rm9KBzDn7KprQz87SZ26SAMH
      (BTC C-03) 1GrLCmVQXoyJXaPJQdqssNqwxvha1eUo2E (35 chars)   but, this also got and spent funds! -> https://mempool.space/address/1GrLCmVQXoyJXaPJQdqssNqwxvha1eUo2E
      (BTC U-04) 1EHNa6Q4Jz2uvNExL497mE43ikXhwF6kZm (35 chars) and this had 7.847675 BTC!! https://mempool.space/address/1EHNa6Q4Jz2uvNExL497mE43ikXhwF6kZm
   (BTC CHyb-06) 1Pb6vmWniHWeK1yVECHcHGmw5y8b5DAaRD (35 chars) -> nothing
   (BTC CHyb-07) 1HZd9eyS44EXgWsDVrQnpqZnLiqLTnARvU (35 chars) -> nothing

Now you tell me how stupid is searching for all C-02, C-03 and U-04.... AT THE SAME TIME


Private key 0 (I know it is not valid point of the curve), is also interesting. People also sent funds to all 3 Addresses! Could this be considered a black hole address?

Quote
(0) Private ECDSA Key (64 hex chars, 256 bits):
    0000000000000000000000000000000000000000000000000000000000000000
(1) (U)ncompressed & (C)ompressed Public Key from SECP256K1 curve (130 hex chars, 520 bits): 29.75 us
          (C-02) 020000000000000000000000000000000000000000000000000000000000000000
          (C-03) 030000000000000000000000000000000000000000000000000000000000000000
          (U-04) 0400000000000000000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000000000000000000
          (C-06) 060000000000000000000000000000000000000000000000000000000000000000
          (C-07) 070000000000000000000000000000000000000000000000000000000000000000
(2) SHA-256 hash of 1) (64 hex chars, 256 bits): 2.08 us
          (C-02) 523ba5a7ec9362dbb08039a387922592ccea3dde63634480cd1b05b7bd50a269
          (C-03) 7324b5c72b51bb5d4c180f1109cfd347b60473882145841c39f3e584576296f9
          (U-04) 59ef1a5a00f35b1a722da56ca70b52a721f33998634d4fa4259301f170f7b6bd
          (C-06) fdfdd5396ba68d416587eb28ee4dbdcb3cb04c34e0c7bb63f393afa769cd74f4
          (C-07) c14ca2b59dbaac489b662ff822ffeeab3eff0a505f23e78a589ca4d49daf350e
(3) RIPEMD-160 Hash of 2) (40 hex chars, 160 bits): 2.84 us
          (C-02) 3625c4a2ea974760a816368fd15de771594476e7
          (C-03) e47e46277b5ba401242699870e3688b9d1848f18
          (U-04) 3b4df4363caa9e3bd9da58020d3080be8230a4ae
          (C-06) 814c7d332b816d56b7983c6acf420adcb39a18c6
          (C-07) bddff6369989dc001049f578a506b8eb3d0fd1ed
(4) Adding Bitcoin (00) network byte to 3) Smiley
          (C-02) 003625c4a2ea974760a816368fd15de771594476e7
          (C-03) 00e47e46277b5ba401242699870e3688b9d1848f18
          (U-04) 003b4df4363caa9e3bd9da58020d3080be8230a4ae
          (C-06) 00814c7d332b816d56b7983c6acf420adcb39a18c6
          (C-07) 00bddff6369989dc001049f578a506b8eb3d0fd1ed
(5) SHA-256 hash of 4) (64 hex chars, 256 bits): 1.37 us
          (C-02) 15bc4c5c37fa3ddf59e3107df6813c1d5c0edcf23c9950b1c8d8df27044c1692
          (C-03) 8c3c4456ca89295fdbb255b77f4ad38d9c7feded3086b709bbc1d3ef075a835f
          (U-04) ba02fc87e13c4ac93ba8029ee9b92f4b7a73b110c40d6d913e663d566af9d0e7
          (C-06) aa7ad76bcdc7f15b2ebf07910b96e2d72ebf32cb7cb8efa79ebbceb59903e0eb
          (C-07) e43048f84bab9a001f7e70ce80dbce8020b3a82b7785b2aa474bcc5e314ef991
(6) SHA-256 hash of 5) (64 hex chars, 256 bits): 1.31 us
          (C-02) f4ed0da0b4234dcea06a923d8cab0d17d68ed9e3fe6be3a31307b0f81b934be7
          (C-03) fe3a65ae291d82113714a8b243b1b34bd8ab05d5659b38d54133d3af5f8647b1
          (U-04) b158b448eed111aafb81f989f8b29c392f7ee228814a789d5ad786ad55a95346
          (C-06) 4b5026dca67fbde6299cd7e067d2bbafe3dc6b1b387f4253ae1339ec6fd0cdf8
          (C-07) f4d06de7e9c76c6c8095dc53e3bce38ba492624f756c743f79e4576e79ccec2e
(7-8) First four bytes of 6) at the end of 4):
          (C-02) 003625c4a2ea974760a816368fd15de771594476e7f4ed0da0
          (C-03) 00e47e46277b5ba401242699870e3688b9d1848f18fe3a65ae
          (U-04) 003b4df4363caa9e3bd9da58020d3080be8230a4aeb158b448
          (C-06) 00814c7d332b816d56b7983c6acf420adcb39a18c64b5026dc
          (C-07) 00bddff6369989dc001049f578a506b8eb3d0fd1edf4d06de7
9) Base58 encoding of Cool:7.02 us
      (BTC C-02) 15wJjXvfQzo3SXqoWGbWZmNYND1Si4siqV (35 chars)
      (BTC C-03) 1MqALQs6ea1ACgwRurqgaBDWzxYPoXCXzu (35 chars)
      (BTC U-04) 16QaFeudRUt8NYy2yzjm3BMvG4xBbAsBFM (35 chars)
   (BTC CHyb-06) 1CnfoJMvvo9SV98PQhzQMMC2UJuHjuAA43 (35 chars)
   (BTC CHyb-07) 1JJy1PmdaPCsNFcdW5MBRyLyT5ahitktSA (35 chars)
10) Export Mainnet PrivKey 1) into WIF format:
    (C-SHA256x2) 69f436de87362589b89943c1554c53c4cee37d1c951552eff7e2bca8b3068967
    (U-SHA256x2) 0565fba7ebf8143516e0222d7950c28589a34c3ee144c3876ceb01bfb0e9bb70
         (C-ext) 80000000000000000000000000000000000000000000000000000000000000000001
         (U-ext) 800000000000000000000000000000000000000000000000000000000000000000
   (C-ext+chksm) 8000000000000000000000000000000000000000000000000000000000000000000169f436de
   (U-ext+chksm) 8000000000000000000000000000000000000000000000000000000000000000000565fba7
         (C-WIF) KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rFU73Nd2Mcv1 (53 chars)
         (U-WIF) 5HpHagT65TZzG1PH3CSu63k8DbpvD8s5ip4nEB3kEsreAbuatmU (52 chars)
11) Binary Search of 3) in the input list:
    (C-02)3625c4a2ea974760a816368fd15de771594476e7 r=-201 -> Blacklisted!  jumps=000 1.92 us

    (C-03)e47e46277b5ba401242699870e3688b9d1848f18 r=-27 -> Blacklisted!  jumps=000 0.46 us

    (U-04)3b4df4363caa9e3bd9da58020d3080be8230a4ae r=-196 -> Blacklisted!  jumps=000 0.46 us

    (C-06)814c7d332b816d56b7983c6acf420adcb39a18c6 r=-126
    L=000000,M=000127,R=000255  [000000127][80df54e1f612f2fc5bdc05c9d21a83aa8d20791e] r=1 -> searching up
    L=000128,M=000191,R=000255  [000000191][c97f9591e28687be1c4d972e25be7c372a3221b4] r=-72 -> searching down
    L=000128,M=000159,R=000190  [000000159][a45dae9cd5d3fde21e5aa9a95367d107267b3b8a] r=-35 -> searching down
    L=000128,M=000143,R=000158  [000000143][941ccb7383109b47b841044c9f865785676b0918] r=-19 -> searching down
    L=000128,M=000135,R=000142  [000000135][8c2a6071f89c90c4dab5ab295d7729d1b54ea60f] r=-11 -> searching down
    L=000128,M=000131,R=000134  [000000131][8661cb56d9df0a61f01328b55af7e56a3fe7a2b2] r=-5 -> searching down
    L=000128,M=000129,R=000130  [000000129][85a1f9ba4da24c24e582d9b891dacbd1b043f971] r=-4 -> searching down
    L=000128,M=000128,R=000128  [000000128][85567151f330b69bac3eba86bb3aedd8813ec2b7] r=-4 -> searching down jumps=008 18.22 us

    (U-07)bddff6369989dc001049f578a506b8eb3d0fd1ed r=-66
    L=000000,M=000127,R=000255  [000000127][80df54e1f612f2fc5bdc05c9d21a83aa8d20791e] r=61 -> searching up
    L=000128,M=000191,R=000255  [000000191][c97f9591e28687be1c4d972e25be7c372a3221b4] r=-12 -> searching down
    L=000128,M=000159,R=000190  [000000159][a45dae9cd5d3fde21e5aa9a95367d107267b3b8a] r=25 -> searching up
    L=000160,M=000175,R=000190  [000000175][b907c3a2a3b27789dfb509b730dd47703c272868] r=4 -> searching up
    L=000176,M=000183,R=000190  [000000183][c053d1c7b2e7e27c624dcb8087549876af73aa03] r=-3 -> searching down
    L=000176,M=000179,R=000182  [000000179][badf8b0d34289e679ec65c6c61d3a974353be5cf] r=3 -> searching up
    L=000180,M=000181,R=000182  [000000181][bfebb73562d4541b32a02ba664d140b5a574792f] r=-2 -> searching down
    L=000180,M=000180,R=000180  [000000180][bf7413e8df4e7a34ce9dc13e2f2648783ec54adb] r=-2 -> searching down jumps=008 54.80 us


9) Base58 encoding of Cool:7.02 us
      (BTC C-02) 15wJjXvfQzo3SXqoWGbWZmNYND1Si4siqV (35 chars)  -> HAS 0.0066 BTC https://mempool.space/address/15wJjXvfQzo3SXqoWGbWZmNYND1Si4siqV
      (BTC C-03) 1MqALQs6ea1ACgwRurqgaBDWzxYPoXCXzu (35 chars) -> HAS 0.00001800 BTC https://mempool.space/address/1MqALQs6ea1ACgwRurqgaBDWzxYPoXCXzu
      (BTC U-04) 16QaFeudRUt8NYy2yzjm3BMvG4xBbAsBFM (35 chars) -> HAS 0.01024676 BTC https://mempool.space/address/16QaFeudRUt8NYy2yzjm3BMvG4xBbAsBFM
   (BTC CHyb-06) 1CnfoJMvvo9SV98PQhzQMMC2UJuHjuAA43 (35 chars)
   (BTC CHyb-07) 1JJy1PmdaPCsNFcdW5MBRyLyT5ahitktSA (35 chars)

I blacklisted this 3 ripemd160 to avoid confusions, and getting excited for nothing, I believe they are invalid addresses:
15wJjXvfQzo3SXqoWGbWZmNYND1Si4siqV,666556,743371,3625c4a2ea974760a816368fd15de771594476e7
16QaFeudRUt8NYy2yzjm3BMvG4xBbAsBFM,1024130,549600,3b4df4363caa9e3bd9da58020d3080be8230a4ae
1MqALQs6ea1ACgwRurqgaBDWzxYPoXCXzu,1800,330208,e47e46277b5ba401242699870e3688b9d1848f18
Public Address, Balance, Transactions,ripemd

It is interesting there is a lot of transactions reported for all the 3 ripemd160... this might be an error of the python parser I am using to scrap the bitcoin addresses with balance (https://github.com/graymauser/btcposbal2csv).

I have no idea what they mean...





kTimesG
Member
**
Offline Offline

Activity: 142
Merit: 25


View Profile
April 10, 2024, 12:12:22 PM
Last edit: April 10, 2024, 12:23:32 PM by kTimesG
Merited by albert0bsd (1)
 #4874

I could save some time there, calculating only what has to be calculated, C-02 or C-03, but...

If it is stupid, why people sent funds to all 3, compressed-02, compressed-03 and uncompressed-04 addresses of the same private key?, by error? just for testing? who knows...

I discovered this by accident, because did not understand which is the check on the private key, to decide which Compressed-02 or compressed-03 Id I must use, so I did both, and also the other U-4, C-6 and C7 and calculated everything else up to the ripemd160 hash, and searched all 5 in my list of list 53M ripemd160 hashes with balance. Just in case there is a treasure somewhere.
You are confusing a lot of things.
Private Key is a scalar value.
Public Key is an EC point (X, Y) and Y has a parity (e.g. least significant bit odd or even, 1 or 0).
Y is a function of X.
So a public key can be uncompressed (04) in full (X, Y) form or compressed with just X and the Y parity (02 or 03 byte hint prefix)

If you are doing blind searches in hope of a collision, and you have a private key interval, you need to use the correct Y parity to produce the hashed address, otherwise you are hashing the address for private key N - k which is always outside your private key search interval (for all intervals lower than N/2 in size, which is ~ 2^255), and the Y value is negated, hence the key for (X, -Y) = (X, P - Y). -Y = P- Y is always odd if Y is even, and viceversa, because P is odd.

If you are doing blind searches in hope of a collision and you don't have a private key interval in mind (so full-blown 256-bit keyspace), then your goal is to produce as fast as possible public keys, in which case you can use symmetry (02 / 03) and the 3-cycle endomorphism ±k*lambda^i -> (X*beta^i, ±Y) to quickly compute 6 (2 * 3) private keys and their points (public keys) for every generated (private key, public key) pair. So it ends up as an optimization problem to do as fast as possible key generation with lowest amount of multiplications involved, since it was explained earlier that multiplication is the highest overhead of any possible group operation (since it's basically just rounds of additions).

The only number I am aware of that is larger than the number of all possible Bitcoin private keys is the number of electrons in the Universe (around 2-3 electrons for every possible BTC private key).
shelby0930
Newbie
*
Offline Offline

Activity: 24
Merit: 4


View Profile
April 10, 2024, 03:10:40 PM
 #4875

Hey Guys,, the Question is about Kangaroo. i'm a bit confused..  the kangaroo designed by JeanLucPons. is the program restricted to work only inside the range of 125 bits? if yes what does it mean? because i tried it with a 130 bit range and it seems to work and in the issues section i see people talking about how it wouldn't work for 130 bits can someone tell me what they are talking about ?
Filip8472
Newbie
*
Offline Offline

Activity: 4
Merit: 0


View Profile
April 11, 2024, 07:46:53 PM
 #4876

Could someone take a look at my smaller application/website for calculating smaller ranges to see if it uses the correct calculations ?    http://cosmiccat.unas.cz/ (You need to use HTTP instead of HTTPS. It's some random free web hosting, don't worry)
CY4NiDE
Jr. Member
*
Offline Offline

Activity: 50
Merit: 13


View Profile
April 12, 2024, 12:03:03 AM
 #4877

Hey Guys,, the Question is about Kangaroo. i'm a bit confused..  the kangaroo designed by JeanLucPons. is the program restricted to work only inside the range of 125 bits? if yes what does it mean? because i tried it with a 130 bit range and it seems to work and in the issues section i see people talking about how it wouldn't work for 130 bits can someone tell me what they are talking about ?

The program is limited to a range width of 125 bits or less.

The range width is the upper bound of the range minus the lower bound.

You can find the discussion about this on the kangaroo thread;

https://bitcointalk.org/index.php?topic=5244940.0

1CY4NiDEaNXfhZ3ndgC2M2sPnrkRhAZhmS
zahid888
Member
**
Offline Offline

Activity: 272
Merit: 20

the right steps towerds the goal


View Profile
April 14, 2024, 08:17:02 AM
Last edit: April 14, 2024, 08:43:09 AM by zahid888
 #4878

e54acb08cf7e7d9be0102e2914d1a4eb643f5df386e67bb4be1bad5a05a53879

1BGvwggxfCaHGykKrVXX7fk8GYaLQpeixA
brainless
Member
**
Offline Offline

Activity: 318
Merit: 34


View Profile
April 14, 2024, 02:42:11 PM
 #4879

e54acb08cf7e7d9be0102e2914d1a4eb643f5df386e67bb4be1bad5a05a53879

Huh

13sXkWqtivcMtNGQpskD78iqsgVy9hcHLF
kTimesG
Member
**
Offline Offline

Activity: 142
Merit: 25


View Profile
April 14, 2024, 05:10:20 PM
 #4880

e54acb08cf7e7d9be0102e2914d1a4eb643f5df386e67bb4be1bad5a05a53879

Huh
I guess he's implying that he found some <80 bits solution and he posted here some proof hash so the Collective assists him morally once the pubkey gets leaked and hundreds of TX will fight over the fee in the next 10 seconds.
Pages: « 1 ... 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 [244] 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 ... 297 »
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!