Pages:
Author

Topic: Bitcoin puzzle transaction ~32 BTC prize to who solves it - page 59. (Read 245054 times)

member
Activity: 503
Merit: 38
I tested your program and it works fine... i was wondering if that would make any sense to compile it for windows and run it on 5W powered fanless Intel NUC  1core atom procesor and let it run "forever" as a lottery ...

It doesn't have to be forever... I have a crystal ball, but I don't know how to look into it.  Grin
newbie
Activity: 16
Merit: 0
Hi Guys, Lets say I have the key for puzzle 68 already , How can I spend it safely as I have seen what happned with puzzle 65 , Please can someone help will tip

what happened with puzzle 65?
member
Activity: 122
Merit: 11

# ./puzzle -r 46346217550300000000:46346217550360000000 -a 13zb1hQbWVsc2S7ZTZnP2G4undNNpdh5so
  • Puzzle search
  • Script started at:2024-09-22 19:05:32
  • concurrency:12
  • range:46346217550300000000 to:46346217550360000000
  • target:13zb1hQbWVsc2S7ZTZnP2G4undNNpdh5so
  • --------------------------------------------------------------------------------
  • KEY FOUND! 2024-09-22 19:06:00
  • decimal: 46346217550346335726
  • private key: KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qZfFoWMiwBt943V7CQeX
  • public key: 024ee2be2d4e9f92d2f5a4a03058617dc45befe22938feed5b7a6b7282dd74cbdd
  • address: 13zb1hQbWVsc2S7ZTZnP2G4undNNpdh5so

And this is an example of how narrow the range must be to hit WIF.

You hit the WIF in less than a minute... but if you have more time the range can be larger right ?

I tested your program and it works fine... i was wondering if that would make any sense to compile it for windows and run it on 5W powered fanless Intel NUC  1core atom procesor and let it run "forever" as a lottery ...
member
Activity: 239
Merit: 53
New ideas will be criticized and then admired.
Hi Guys, Lets say I have the key for puzzle 68 already , How can I spend it safely as I have seen what happned with puzzle 65 , Please can someone help will tip
Use https://slipstream.mara.com/
member
Activity: 503
Merit: 38
can the code has parameter to setup ranges with decimal ? even though is random, i want it like random through ranges.

Yes.

I have a Rust code, can you help me optimize it ?

This code is with fast 7 GB/s SmallRng and ranges with decimal

main.rs
Code:
use bitcoin::address::Address;
use bitcoin::key::PrivateKey;
use bitcoin::network::NetworkKind;
use chrono::Local;
use clap::{App, Arg};
use hex;
use num::bigint::BigInt;
use num::traits::One;

use num_cpus;
use rand::Rng;
use rand::rngs::SmallRng;
use rand::SeedableRng;
use std::fs::File;
use std::io::{self, Write};
use std::sync::atomic::{AtomicBool, Ordering};
use std::sync::{Arc};
use std::convert::TryInto;
use threadpool::ThreadPool;

fn main() {
    // Print the current time when the script starts
    let current_time = Local::now();
    println!(
        "\x1b[38;5;226m[+] Puzzle search\n[+] Script started at:{}",
        current_time.format("%Y-%m-%d %H:%M:%S")
    );
    
    let matches = App::new("Puzzle Solver")
        .version("1.0")
        .arg(
            Arg::with_name("puzzle")
                .short('p')
                .long("puzzle")
                .value_name("PUZZLE")
                .help("Sets the puzzle number")
                .takes_value(true),  // No longer required
        )
        .arg(
            Arg::with_name("address")
                .short('a')
                .long("address")
                .value_name("ADDRESS")
                .help("Sets the target address")
                .required(true)
                .takes_value(true),
        )
        .arg(
            Arg::with_name("range")
                .short('r')
                .long("range")
                .value_name("RANGE")
                .help("Sets the search range in decimal format (e.g. 73786976294838206464:147573952589676412927)")
                .takes_value(true),
        )
        .get_matches();

    let puzzle_str = matches.value_of("puzzle");
    let range_str = matches.value_of("range");

    // Ensure either -p or -r is provided
    if puzzle_str.is_none() && range_str.is_none() {
        panic!("Either --puzzle (-p) or --range (-r) must be provided.");
    }

    let target_address = Arc::new(matches
        .value_of("address")
        .expect("Target address is required")
        .to_string());

    // Parse the range if -r is provided; otherwise calculate it based on the puzzle number
    let (range_start, range_end): (BigInt, BigInt) = if let Some(range_str) = range_str {
        let parts: Vec<&str> = range_str.split(':').collect();
        if parts.len() != 2 {
            panic!("Invalid range format. Expected format: start:end");
        }
        let range_start = BigInt::parse_bytes(parts[0].as_bytes(), 10)
            .expect("Failed to parse range start");
        let range_end = BigInt::parse_bytes(parts[1].as_bytes(), 10)
            .expect("Failed to parse range end");
        (range_start, range_end)
    } else {
        // If no range is provided, compute the range from the puzzle number
        let puzzle: u128 = puzzle_str.unwrap().parse().expect("Failed to parse puzzle number");
        let range_start: BigInt = num::pow(BigInt::from(2), (puzzle - 1) as usize);
        let range_end: BigInt = num::pow(BigInt::from(2), puzzle as usize) - BigInt::one();
        (range_start, range_end)
    };

    let num_threads = num_cpus::get() as usize; // Convert to usize

    println!(
        "[+] concurrency:{}\n[+] range:{} to:{}\n[+] target:{}",
        num_threads, range_start, range_end, target_address
    );

    let found_flag = Arc::new(AtomicBool::new(false));
    let pool = ThreadPool::new(num_threads.try_into().unwrap()); // Convert to usize

    // Handling termination signals
    let found_flag_clone = found_flag.clone();
    ctrlc::set_handler(move || {
        found_flag_clone.store(true, Ordering::Relaxed);
        std::process::exit(0); // Terminate the program
    })
    .expect("Error setting Ctrl-C handler");

    for _ in 0..num_threads {
        let target_address = Arc::clone(&target_address);
        let range_start_clone = range_start.clone();
        let range_end_clone = range_end.clone();
        let found_flag = found_flag.clone();
        let pool_clone = pool.clone();
        pool.execute(move || {
            let mut rng = SmallRng::from_entropy();
            random_lookfor(&rng.gen_range(range_start_clone.clone()..range_end_clone.clone()), &range_end_clone, &target_address, &found_flag, &pool_clone);
        });
    }

    pool.join();
}

fn random_lookfor(
    range_start: &BigInt,
    range_end: &BigInt,
    target_address: &Arc,
    found_flag: &Arc,
    _pool: &ThreadPool,
) {
    let mut rng = SmallRng::from_entropy();
    let secp = bitcoin::secp256k1::Secp256k1::new();

    loop {
        let key: BigInt = rng.gen_range(range_start.clone()..range_end.clone());
        let private_key_hex = format!("{:0>64x}", key);
        let private_key_bytes =
            hex::decode(&private_key_hex).expect("Failed to decode private key hex");

        let private_key = PrivateKey {
            compressed: true,
            network: NetworkKind::Main,
            inner: bitcoin::secp256k1::SecretKey::from_slice(&private_key_bytes)
                .expect("Failed to create secret key from slice"),
        };

        let public_key = private_key.public_key(&secp);
        let address = Address::p2pkh(&public_key, NetworkKind::Main).to_string();

        // Check if a match has been found by another thread
        if found_flag.load(Ordering::Relaxed) {
            break;
        }

        if address == **target_address {
            let current_time = Local::now();
            let line_of_dashes = "-".repeat(80);
            println!(
                "\n[+] {}\n[+] KEY FOUND! {}\n[+] decimal: {} \n[+] private key: {} \n[+] public key: {} \n[+] address: {}\n[+] {}",
                line_of_dashes,
                current_time.format("%Y-%m-%d %H:%M:%S"),
                key,
                private_key,
                public_key,
                address,
                line_of_dashes
            );

            // Set the flag to true to signal other threads to exit
            found_flag.store(true, Ordering::Relaxed);

            if let Ok(mut file) = File::create("KEYFOUNDKEYFOUND.txt") {
                let line_of_dashes = "-".repeat(130);
                writeln!(
                    &mut file,
                    "\n{}\nKEY FOUND! {}\ndecimal: {} \nprivate key: {} \npublic key: {} \naddress: {}\n{}",
                    line_of_dashes,
                    current_time.format("%Y-%m-%d %H:%M:%S"),
                    key,
                    private_key,
                    public_key,
                    address,
                    line_of_dashes
                )
                .expect("Failed to write to file");
            } else {
                eprintln!("Error: Failed to create or write to KEYFOUNDKEYFOUND.txt");
            }
            io::stdout().flush().unwrap();
            break;
        }
    }
}

Cargo.toml
Code:
[package]
name = "puzzle"
version = "0.2.0"
edition = "2021"

[dependencies]
num = "0.4.1"
num-traits = "0.2"
num-bigint = { version =  "0.4.6", features = ["rand"] }
threadpool = "1.8.1"    
bitcoin = "0.32.2"
hex = "0.4.3"
rand = { version = "0.8.5", features = ["small_rng"] }
secp256k1 = "0.29.1"
num_cpus = "1.16.0"
chrono = "0.4.38"
clap = "3.0"
ctrlc = "3.4.4"


cargo build --release --target=x86_64-unknown-linux-gnu


 # ./puzzle -r 1020000000:1040000000 -a 1LHtnpd8nU5VHEMkG2TMYYNUjjLc992bps
  • Puzzle search
  • Script started at:2024-09-22 18:25:34
  • concurrency:12
  • range:1020000000 to:1040000000
  • target:1LHtnpd8nU5VHEMkG2TMYYNUjjLc992bps
  • --------------------------------------------------------------------------------
  • KEY FOUND! 2024-09-22 18:25:54
  • decimal: 1033162084
  • private key: KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M8diLSC5MyERoW
  • public key: 030d282cf2ff536d2c42f105d0b8588821a915dc3f9a05bd98bb23af67a2e92a5b
  • address: 1LHtnpd8nU5VHEMkG2TMYYNUjjLc992bps
  • --------------------------------------------------------------------------------


# ./puzzle -r 46346217550300000000:46346217550360000000 -a 13zb1hQbWVsc2S7ZTZnP2G4undNNpdh5so
  • Puzzle search
  • Script started at:2024-09-22 19:05:32
  • concurrency:12
  • range:46346217550300000000 to:46346217550360000000
  • target:13zb1hQbWVsc2S7ZTZnP2G4undNNpdh5so
  • --------------------------------------------------------------------------------
  • KEY FOUND! 2024-09-22 19:06:00
  • decimal: 46346217550346335726
  • private key: KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qZfFoWMiwBt943V7CQeX
  • public key: 024ee2be2d4e9f92d2f5a4a03058617dc45befe22938feed5b7a6b7282dd74cbdd
  • address: 13zb1hQbWVsc2S7ZTZnP2G4undNNpdh5so

And this is an example of how narrow the range must be to hit WIF.
member
Activity: 89
Merit: 10
Hi Guys, Lets say I have the key for puzzle 68 already , How can I spend it safely as I have seen what happned with puzzle 65 , Please can someone help will tip
newbie
Activity: 7
Merit: 0
It makes my day every time an intended troll post or unintended wrong statement results in some flame war  Grin

My bad... haven't slept much and i've must've seen something else on the time stamp and hurried to post what i've "found"  Smiley)
Sorry 'bout the fake news Smiley
newbie
Activity: 8
Merit: 0

My brute force Rust script with "use rand_chacha::ChaCha20Rng"


I have a Rust code, can you help me optimize it ?
jr. member
Activity: 79
Merit: 1

can the code has parameter to setup ranges with decimal ? even though is random, i want it like random through ranges.
member
Activity: 503
Merit: 38
i need speed.

My brute force Rust script with "use rand_chacha::ChaCha20Rng"

# time ./puzzle -p 40 -a 1EeAxcprB2PpCnr34VfZdFrkUWuxyiNEFv
  • Puzzle search
  • Script started at:2024-09-22 14:36:57
  • concurrency:12
  • range:549755813888 to:1099511627775
  • target:1EeAxcprB2PpCnr34VfZdFrkUWuxyiNEFv
  • --------------------------------------------------------------------------------
  • KEY FOUND! 2024-09-22 14:41:06
  • decimal: 1003651412950
  • private key: KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9aFJuCJDo5F6Jm7
  • public key: 03a2efa402fd5268400c77c20e574ba86409ededee7c4020e4b9f0edbee53de0d4
  • address: 1EeAxcprB2PpCnr34VfZdFrkUWuxyiNEFv
  • --------------------------------------------------------------------------------

real   4m9.203s
user   11m5.293s
sys   0m0.276s

look
https://bitcointalksearch.org/topic/m.64301108

It cannot be faster than this in random mode on my PC. Grin

p.s.
There are various types of RNGs in Rust, each with its own set of trade-offs and speed.

Here is a list:

https://rust-random.github.io/book/guide-rngs.html

You need Nvme & motherboard fast as hell to go 8 GB/s
jr. member
Activity: 79
Merit: 1
Just still same, if doin search with CPU, it takes whole time to hit the correct privkey.


The prediction should be very precise, a deviation on the level of puzzle 30 size to be a bingo. Which is statistically impossible. Or let's say we know that puzzle 67 WIF starts precisely with:

"KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qa"  - but 18 characters are missing.

(or at least the next eight  characters to make brute force effective)

Which is again impossible to solve.

Or is someone gifted with "Remote viewing" so that they can see the creator's WIFs.   Grin

RANGE 30

1073741823 -- upper ranges key

1033162084 <- actual priv key

1006870921 -> scaled to start search.

Wink

i need speed.
newbie
Activity: 16
Merit: 0
https://privatekeys.pw/address/bitcoin/1BY8GQbnueYofwSuFAT3USAhGjPrkxDdW9

For other addresses you can check using hash:

Public Key Hash (Hash 160):
739437bb3dd6d1983e66629c5f08c70e52769371

Based on the puzzle's statistics, the private key for 67 is likely around 95XXXXXX. If anyone finds it within this range, I’d be more than happy to accept some gifts! Smiley

bc1q4xj4maw4csvn084zwjtrgzg8tk08660mxj6wnw

Your statistics must be fantastic (none of them are working because the you was generated randomly), but it is very unlikely the private key for 67 is likely around 95XXXXXX because it is out if it's range. If I were you I wouldn't expect too much gifts. Smiley

The range for 67 is between 73786976294838206463 and 147573952589676412927. I did not give HEX range, I shared the numeric one.
member
Activity: 165
Merit: 26
Or is someone gifted with "Remote viewing" so that they can see the creator's WIFs.   Grin

Be careful about this, you don't want the CIA at your door. Parapsychological intelligence collection is a real thing. But no agency will ever admit it, it would cause global population panic instantly.
member
Activity: 503
Merit: 38
Just still same, if doin search with CPU, it takes whole time to hit the correct privkey.


The prediction should be very precise, a deviation on the level of puzzle 30 size to be a bingo. Which is statistically impossible. Or let's say we know that puzzle 67 WIF starts precisely with:

"KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qa"  - but 18 characters are missing.

(or at least the next eight  characters to make brute force effective)

Which is again impossible to solve.

Or is someone gifted with "Remote viewing" so that they can see the creator's WIFs.   Grin
jr. member
Activity: 79
Merit: 1

where is 94,93,92,91 etc bits privkeys rabges ?

oh sorry i'm not provide the next data, I count that from big bit into small bit range like 60, dont worry.
newbie
Activity: 20
Merit: 0
https://privatekeys.pw/address/bitcoin/1BY8GQbnueYofwSuFAT3USAhGjPrkxDdW9

For other addresses you can check using hash:

Public Key Hash (Hash 160):
739437bb3dd6d1983e66629c5f08c70e52769371

Based on the puzzle's statistics, the private key for 67 is likely around 95XXXXXX. If anyone finds it within this range, I’d be more than happy to accept some gifts! Smiley

bc1q4xj4maw4csvn084zwjtrgzg8tk08660mxj6wnw

Your statistics must be fantastic (none of them are working because the you was generated randomly), but it is very unlikely the private key for 67 is likely around 95XXXXXX because it is out if it's range. If I were you I wouldn't expect too much gifts. Smiley
newbie
Activity: 16
Merit: 0

Can you share the address of puzzle 67 that starts with bc and 3. I don't know how to find it. Someone previously shared the address for puzzle 66 that starts with bc and 3. Can you share it for puzzle 67 too?
bc1qww2r0wea6mges0nxv2w97zx8pef8dym3x2g8t3
__https://i.imgur.com/reTwOd9.png

For puzzle 67 on website we can see the same address:

Code:
Bitcoin:
W bc1qww2r0wea6mges0nxv2w97zx8pef8dym3x2g8t3
0  0  0

but how can we find the other addresses that have the same private key for bitcoin like we have for puzzle 66 without having the private key?

Code:
Bitcoin:
U 138XxHZGcKM6WyWuYCijLsoCd8K3x4WYjs
0  0  0
S 3PdQoXyQwWmerpt3SbF7Hbh3aukC5w28GP
0  0.00046714  4
W bc1qyr2956nky56hqr8fuzepdccejse4mw994lyftn
0  0.00006001  2
T bc1pgchl8k5hhxnlcfd3tmxp8vfk9jks438msjkth5lg93fzmskwy6js0kuqd2
0  0  0

https://privatekeys.pw/address/bitcoin/1BY8GQbnueYofwSuFAT3USAhGjPrkxDdW9

For other addresses you can check using hash:

Public Key Hash (Hash 160):
739437bb3dd6d1983e66629c5f08c70e52769371

Based on the puzzle's statistics, the private key for 67 is likely around 95XXXXXX. If anyone finds it within this range, I’d be more than happy to accept some gifts! Smiley

bc1q4xj4maw4csvn084zwjtrgzg8tk08660mxj6wnw
newbie
Activity: 9
Merit: 3
67 also has 0.67 of BCH associated with it. Are there any other forked coins that have a balance linked to 67's private key?
670005.46 XEC ~$22 https://explorer.e.cash/address/ecash:qpeegdam8htdrxp7ve3fchcgcu89ya5nwyzlapcczk
0.67 BTG ~$15.5 https://btgexplorer.com/address/GUP3gXvjtWA6kQkCB779uCWbBuBhmJ3wde
member
Activity: 873
Merit: 22
$$P2P BTC BRUTE.JOIN NOW ! https://uclck.me/SQPJk
PROOF #1 RANGE 95

1237940039285380274899124223 -- upper ranges key

868012190417726402719548863 <- actual priv key  Huh

848970019642690143254478847 -> scaled for sequence start  Shocked

PROOF # 2 RANGE 100

1267650600228229401496703205375 -- upper ranges key

868221233689326498340379183142 <- actual priv key  Huh

863825300114114781320059027455 -> scaled for sequence start  Shocked

PROOF # 3 RANGE 105

40564819207303340847894502572031 -- upper ranges key

29083230144918045706788529192435 <- actual priv key  Huh

25282409603651667990095585083391 -> scaled for sequence start  Shocked

this decimal from priv key was used for learn to scaled down the ranges, and i'll make some precision to these math.
sorry if i'm not provide the formula to this.

Just still same, if doin search with CPU, it takes whole time to hit the correct privkey.

where is 94,93,92,91 etc bits privkeys rabges ?
newbie
Activity: 25
Merit: 3
67 also has 0.67 of BCH associated with it. Are there any other forked coins that have a balance linked to 67's private key?
Pages:
Jump to: