Bitcoin Forum
April 26, 2026, 05:23:22 AM *
News: Latest Bitcoin Core release: 30.2 [Torrent]
 
   Home   Help Search Login Register More  
Pages: « 1 ... 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 [397] 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 ... 653 »
  Print  
Author Topic: Bitcoin puzzle transaction ~32 BTC prize to who solves it  (Read 381271 times)
Akito S. M. Hosana
Jr. Member
*
Offline Offline

Activity: 420
Merit: 8


View Profile
March 13, 2025, 07:01:12 AM
 #7921

I see you're started with the modification. Just to let you know in advance, I don't use #include "p2pkh_decoder.h" or p2pkh_decoder. Using them costs around 10-15 Mkeys/s in performance. Comparing HASH160 directly is much faster than decoding to a P2PKH address and then comparing. Additionally, it will be even slower if the comparison is based on the decoded address.

So, the fastest way would be to compare public addresses directly without any hashing?

And from Cyclone, we get Kangaroolone. 😄
nomachine
Full Member
***
Offline Offline

Activity: 812
Merit: 134



View Profile
March 13, 2025, 07:16:26 AM
Last edit: March 13, 2025, 07:59:16 AM by nomachine
 #7922

I see you're started with the modification. Just to let you know in advance, I don't use #include "p2pkh_decoder.h" or p2pkh_decoder. Using them costs around 10-15 Mkeys/s in performance. Comparing HASH160 directly is much faster than decoding to a P2PKH address and then comparing. Additionally, it will be even slower if the comparison is based on the decoded address.

So, the fastest way would be to compare public addresses directly without any hashing?


Yes, if the script is almost the same, then it compares the first or last 4 bytes of the public key, similar to this: dividing the batch into 512 keys, SIMD, etc. And it runs on my processor at over 300Mkeys/s.

BTC: bc1qdwnxr7s08xwelpjy3cc52rrxg63xsmagv50fa8
Bram24732
Member
**
Offline Offline

Activity: 322
Merit: 28


View Profile
March 13, 2025, 08:55:10 AM
 #7923

You intend to throw a coin 100 times. You have 50 tails after 90 throws.
Do you have more wins if you throw the last 10 now or if you wait 10 minutes ?

Your methods are assuming waiting 10 min gives better odds.

I solved 67 and 68 using custom software distributing the load across ~25k GPUs. 4090 stocks speeds : ~8.1Bkeys/sec. Don’t challenge me technically if you know shit about fuck, I’ll ignore you. Same goes if all you can do is LLM reply.
kTimesG
Full Member
***
Offline Offline

Activity: 812
Merit: 248


View Profile
March 13, 2025, 09:33:44 AM
 #7924

You intend to throw a coin 100 times. You have 50 tails after 90 throws.
Do you have more wins if you throw the last 10 now or if you wait 10 minutes ?

Your methods are assuming waiting 10 min gives better odds.

You take 100 people to throw the coin.

You put some tag on each of them, but to make it fun you use numbers from 1 to 100.

You invite them one by one, based on their number tag, to publish their result, but if  they got a tail, you skip the next person and add them to a waiting list.

After you've got more tails than expected, you start going through the waiting list.

Efficiency Cheesy

Off the grid, training pigeons to broadcast signed messages.
Bram24732
Member
**
Offline Offline

Activity: 322
Merit: 28


View Profile
March 13, 2025, 11:32:50 AM
 #7925

You intend to throw a coin 100 times. You have 50 tails after 90 throws.
Do you have more wins if you throw the last 10 now or if you wait 10 minutes ?

Your methods are assuming waiting 10 min gives better odds.

You take 100 people to throw the coin.

You put some tag on each of them, but to make it fun you use numbers from 1 to 100.

You invite them one by one, based on their number tag, to publish their result, but if  they got a tail, you skip the next person and add them to a waiting list.

After you've got more tails than expected, you start going through the waiting list.

Efficiency Cheesy

Love those extra steps

I solved 67 and 68 using custom software distributing the load across ~25k GPUs. 4090 stocks speeds : ~8.1Bkeys/sec. Don’t challenge me technically if you know shit about fuck, I’ll ignore you. Same goes if all you can do is LLM reply.
tmar777
Newbie
*
Offline Offline

Activity: 33
Merit: 0


View Profile
March 13, 2025, 03:51:57 PM
 #7926

Can someone please explain all these "methods" of finding the prefixes? Is it only me who believes that this is nonsense?
I have read so many posts here and still I can't understand why you have chosen this path?
dastic
Jr. Member
*
Offline Offline

Activity: 35
Merit: 1


View Profile
March 13, 2025, 04:13:09 PM
 #7927

Can someone please explain all these "methods" of finding the prefixes? Is it only me who believes that this is nonsense?
I have read so many posts here and still I can't understand why you have chosen this path?

It makes no sense, it just feels nice when you find it.... but the result is the same as random scanning.
damiankopacz87
Newbie
*
Offline Offline

Activity: 16
Merit: 0


View Profile
March 13, 2025, 04:17:05 PM
 #7928

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
dastic
Jr. Member
*
Offline Offline

Activity: 35
Merit: 1


View Profile
March 13, 2025, 04:22:10 PM
 #7929

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

you could convert binary keys to hex easily and then run keyhunt
mcdouglasx
Hero Member
*****
Offline Offline

Activity: 980
Merit: 535



View Profile WWW
March 13, 2025, 04:43:20 PM
 #7930

I'm sharing five probability books for anyone who finds it useful to learn about it. Probability is a beautiful mathematical resource that shows how ignorant some of us can be about things beyond our understanding:

1. "Introduction to Probability" by Dimitri P. Bertsekas and John N. Tsitsiklis
2. "Probability: A Lively Introduction" by Henk Tijms
3. "A First Course in Probability" by Sheldon Ross
4. "Probability and Statistics for Engineers and Scientists" by Ronald E. Walpole, Raymond H. Myers, Sharon L. Myers, and Keying E. Ye
5. "An Introduction to Probability Theory and Its Applications" by William Feller

██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██



██
██
██
██
██
██
██



██
██
██
██
██



██
██

██
██
██
██
██
██
██
██
██
██
███████▄▄███████▄▄
████▄███████████████▄█████▄▄▄
██▄███████████████████▄▄██▀████▄▄▄▄▄▄▄▄███▄██████
▄███████████████████▀▄█████▄▄███████████▄▀▀▀██▄██
▄███▐███████████████▄▄▀███▀███▄█████████████▄███████
████▐██████████████████▀██▄▀██▐██▄▄▄▄██▀███▀▀███▀▀▀
█████████████████████▌▄▄▄██▐██▐██▀▀▀▀███████████
███████▌█████████▐██████▄▀██▄▀█████████████████████▄
▀██▐███▌█████████▐███▀████████▄██████████▀███████████
▀█▐█████████████████▀▀▀███▀██▀▀▀▀▀▀▀▀▀██▀▀▀███▀▀▀▀▀
██▀███████████████████▀▄██▀
████▀███████████████▀
███████▀▀███████▀▀
██
██


██
██
██
██
██
██
██
██
██

██
██
██


██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
 
    FAST    🔒 SECURE    🛡️ NO KYC        EXCHANGE NOW      
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██

██
██
██
██
██
██


██
██
██
██
██
██
██
██
██
██

██
██
██
██
██
██
██
██
██
██
██
Akito S. M. Hosana
Jr. Member
*
Offline Offline

Activity: 420
Merit: 8


View Profile
March 13, 2025, 04:52:07 PM
 #7931

Yes, if the script is almost the same, then it compares the first or last 4 bytes of the public key, similar to this: dividing the batch into 512 keys, SIMD, etc. And it runs on my processor at over 300Mkeys/s.

Any chance you’d be willing to "accidentally" paste that code here? I promise I won’t tell anyone… except my CPU, which is very trustful.  Grin
damiankopacz87
Newbie
*
Offline Offline

Activity: 16
Merit: 0


View Profile
March 13, 2025, 05:00:11 PM
 #7932


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
zahid888
Member
**
Online Online

Activity: 335
Merit: 24

the right steps towards the goal


View Profile
March 13, 2025, 05:09:18 PM
 #7933

Thanks in Advance Smiley

I see you're started with the modification. Just to let you know in advance, I don't use #include "p2pkh_decoder.h" or p2pkh_decoder. Using them costs around 10-15 Mkeys/s in performance. Comparing HASH160 directly is much faster than decoding to a P2PKH address and then comparing. Additionally, it will be even slower if the comparison is based on the decoded address.

The --prefix argument is not being used in the script to filter addresses based on a specific prefix.


Code:
// You need function like this to extract the prefix from a P2PKH address
std::string extractPrefix(const std::string& address, size_t prefixLength) {
    return address.substr(0, prefixLength);
}

// Inside the parallel section
std::string generatedAddress = P2PKHDecoder::getAddressFromHash160(localHashResults[j]);
std::string generatedPrefix = extractPrefix(generatedAddress, prefixFilter.length());

if (generatedPrefix == prefixFilter) {
    // Prefix matches, now check if the address matches the target
    __m128i cand16 = _mm_loadu_si128(reinterpret_cast<const __m128i*>(localHashResults[j]));
    __m128i cmp = _mm_cmpeq_epi8(cand16, target16);
    if (_mm_movemask_epi8(cmp) == 0xFFFF) {
        // Checking last 4 bytes (20 - 16)
        if (!matchFound && std::memcmp(localHashResults[j], targetHash160.data(), 20) == 0) {
            #pragma omp critical
            {
                if (!matchFound) {
                    matchFound = true;
                    auto tEndTime = std::chrono::high_resolution_clock::now();
                    globalElapsedTime = std::chrono::duration<double>(tEndTime - tStart).count();
                    mkeysPerSec = (double)(globalComparedCount + localComparedCount) / globalElapsedTime / 1e6;

                    // Recovering private key
                    Int matchingPrivateKey;
                    matchingPrivateKey.Set(&currentBatchKey);
                    int idx = pointIndices[j];
                    if (idx < 256) {
                        Int offset; offset.SetInt32(idx);
                        matchingPrivateKey.Add(&offset);
                    } else {
                        Int offset; offset.SetInt32(idx - 256);
                        matchingPrivateKey.Sub(&offset);
                    }
                    foundPrivateKeyHex = padHexTo64(intToHex(matchingPrivateKey));
                    Point matchedPoint = pointBatch[idx];
                    foundPublicKeyHex  = pointToCompressedHex(matchedPoint);
                    foundWIF = P2PKHDecoder::compute_wif(foundPrivateKeyHex, true);
                }
            }
            #pragma omp cancel parallel
        }
        localComparedCount++;
    } else {
        localComparedCount++;
    }
}


Implementing the stride option is even more challenging in such a complex AVX2 implementation, especially with so many if statements and batch operations.

I appreciate the suggestion! But trust me, it's not just a small tweak—it's like trying to upgrade a bicycle into a spaceship. The whole repo needs a serious overhaul just to make it work, and for a beginner like me, that’s like climbing Mount Everest in flip-flops! Grin Anyway, thanks for the idea!"

1BGvwggxfCaHGykKrVXX7fk8GYaLQpeixA
madogss
Newbie
*
Offline Offline

Activity: 53
Merit: 0


View Profile
March 13, 2025, 05:19:17 PM
 #7934


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

if the list is that small then
Code:
import secp256k1 as ice

keys = []
addresses = []

with open("keys.txt", 'r') as vf:
    for line in vf:
        for word in line.split():
            keys.append(word)

with open("addresses.txt", 'r') as vf:
    for line in vf:
        for word in line.split():
            addresses.append(word)

for i in range(len(addresses)):
    for k in range(len(keys)):
        if ice.privatekey_to_address(0, True, keys[k]) == addresses[i]:
            with open("Found.txt", "w") as file:
                file.write(f"Found: {keys[k]} Address: {addresses[i]}")
                file.close()
        print("FOUND")
        exit()
nomachine
Full Member
***
Offline Offline

Activity: 812
Merit: 134



View Profile
March 13, 2025, 05:36:58 PM
Last edit: March 27, 2025, 01:53:20 AM by nomachine
 #7935

Any chance you’d be willing to "accidentally" paste that code here? I promise I won’t tell anyone… except my CPU, which is very trustful.  Grin

https://github.com/NoMachine1/Cyclone

This version uses Xoshiro256plus.  I have about ~380M keys/s.

Almost feels like smoke is coming out of the 7985WX!  Grin

BTC: bc1qdwnxr7s08xwelpjy3cc52rrxg63xsmagv50fa8
kTimesG
Full Member
***
Offline Offline

Activity: 812
Merit: 248


View Profile
March 13, 2025, 06:26:27 PM
 #7936

This version uses Xoshiro256plus. I have about ~380M keys/s.

Almost feels like smoke is coming out of the 7985WX!  Grin

Can you explain how is this useful? Does it do H160(pubKey)?

If so, what's the power consumption while you're getting those 380 MK/s ?

H160/W is more meaningful than some absolute number. For example, 15.5 Mh/watt for a single RTX 4090.

Off the grid, training pigeons to broadcast signed messages.
btc11235
Jr. Member
*
Offline Offline

Activity: 35
Merit: 1


View Profile
March 13, 2025, 06:38:36 PM
 #7937

Code:
git clone https://github.com/Dookoo2/Cyclone.git

well, now I have a new project: trying to figure out how I can compile the SECP256K1 & H160 portions of that project into a DLL I can then import into my C# script, in the hopes that it's a lot fast than the lib I'm using now Tongue
Akito S. M. Hosana
Jr. Member
*
Offline Offline

Activity: 420
Merit: 8


View Profile
March 13, 2025, 06:48:05 PM
Last edit: March 13, 2025, 07:08:24 PM by Akito S. M. Hosana
 #7938


This version uses Xoshiro256plus. I have about ~380M keys/s.

Almost feels like smoke is coming out of the 7985WX!  Grin


Thanks !
I have 60Mkeys/s on AMD Ryzen 5 3600   Tongue


Can you explain how is this useful? Does it do H160(pubKey)?

This is my fault. It only outputs public keys(which is what I asked for).  Smiley
kTimesG
Full Member
***
Offline Offline

Activity: 812
Merit: 248


View Profile
March 13, 2025, 07:10:35 PM
 #7939

Can you explain how is this useful? Does it do H160(pubKey)?

This is my fault. It only outputs public keys(what I asked for).  Smiley

And this helps with what? I see things related to AVX2 and stuff, wasn't this useful for hashing?

If you only want public keys, for whatever reason, there are much faster options than that.

Off the grid, training pigeons to broadcast signed messages.
Akito S. M. Hosana
Jr. Member
*
Offline Offline

Activity: 420
Merit: 8


View Profile
March 13, 2025, 07:19:41 PM
 #7940



And this helps with what? I see things related to AVX2 and stuff, wasn't this useful for hashing?

If you only want public keys, for whatever reason, there are much faster options than that.

You're right. I should have asked him for the fastest version for hashing. The problem is that I don't even know what to do when I have a weak processor.  Cry
Pages: « 1 ... 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 [397] 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 ... 653 »
  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!