Pages:
Author

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

full member
Activity: 290
Merit: 133
...

I am getting errors on Mac:

Code:
error: failed to parse manifest at `/Users/pbies/cc/rust/Cargo.toml`

Caused by:
  no targets specified in the manifest
  either src/lib.rs, src/main.rs, a [lib] section, or [[bin]] section must be present

I solved that by adding:

Code:
[[bin]]
name = "puzzle"
path = "main.rs"

to .toml file.

Also build command I used was:

Code:
cargo build --release --target=aarch64-apple-darwin
copper member
Activity: 198
Merit: 1
So you're saying there is a chance!

Of course, there is always a chance. In the end, it's more like a lottery than a puzzle.

More like a casino. Not only are the chances of winning not great, but it is also very difficult to collect the winnings))
Unless leaving half the winnings, if not more.
member
Activity: 462
Merit: 24
So you're saying there is a chance!

Of course, there is always a chance. In the end, it's more like a lottery than a puzzle.
newbie
Activity: 7
Merit: 1
my quantum machine learning algorithm

Your quantum machine? It's like a magic wand made from a unicorn's hair and a wizard's beard. Pretty powerful stuff, right?
But here's the kicker: every time you try to wave your wand at the fortress, a squad of time-traveling space wizards appear out of nowhere, performing counter-spells that neutralize your every move. And these aren't just any wizards – they're the grandmasters of the Quantum Realm, each with centuries of experience in thwarting exactly this kind of attack.

Even if you somehow manage to get past the force field, dodge the laser sharks, outsmart the cybernetic ninjas, and bypass the alien tech, you'd still have to crack the code hidden in a Rubik's Cube made of neutron stars, being juggled by a hyper-intelligent octopus from the 12th dimension.

In other words, the odds of your quantum machine breaking Bitcoin are about as likely as a three-legged unicorn winning the intergalactic hopscotch championship. While riding a unicycle. On a tightrope. Over a volcano. During a meteor shower.

So you're saying there is a chance! +5 for believing in me. -10 to the guy above for thinking my algorithms are useless. People are right though this puzzle is hypnotizing. I'd take even a .01 chance. My threshold for mockery is pretty high. So lay it on.

All kidding aside though this is not random data.
member
Activity: 462
Merit: 24
my quantum machine learning algorithm

Your quantum machine? It's like a magic wand made from a unicorn's hair and a wizard's beard. Pretty powerful stuff, right?
But here's the kicker: every time you try to wave your wand at the fortress, a squad of time-traveling space wizards appear out of nowhere, performing counter-spells that neutralize your every move. And these aren't just any wizards – they're the grandmasters of the Quantum Realm, each with centuries of experience in thwarting exactly this kind of attack.

Even if you somehow manage to get past the force field, dodge the laser sharks, outsmart the cybernetic ninjas, and bypass the alien tech, you'd still have to crack the code hidden in a Rubik's Cube made of neutron stars, being juggled by a hyper-intelligent octopus from the 12th dimension.

In other words, the odds of your quantum machine breaking Bitcoin are about as likely as a three-legged unicorn winning the intergalactic hopscotch championship. While riding a unicycle. On a tightrope. Over a volcano. During a meteor shower.
member
Activity: 165
Merit: 26
I'm going to solve this in the next 48 hours. I'm so close.

How do you know that you are so close? Smiley)

Cause right before I went to work this morning my quantum machine learning algorithm made a perfect run on the first 65 addresses. Then next step is to test on unseen data, which means converting the rest to quantum states, which is easy but time consuming.

Of course overfitting which is why I went to work this morning and didn't quit my job and stay home to claim prize, but I am like 75-80% confident that I got this thing licked.
Congrats on training a totally useless learning algorithm to find some matrix that correlates to a few hundred random bits.

You can find a perfect fit to any random pattern, until the point where reality slaps you in the face and the next random sample requires you do a complete retraining.
newbie
Activity: 7
Merit: 1
I'm going to solve this in the next 48 hours. I'm so close.

How do you know that you are so close? Smiley)

Cause right before I went to work this morning my quantum machine learning algorithm made a perfect run on the first 65 addresses. Then next step is to test on unseen data, which means converting the rest to quantum states, which is easy but time consuming.

Of course overfitting which is why I went to work this morning and didn't quit my job and stay home to claim prize, but I am like 75-80% confident that I got this thing licked.
newbie
Activity: 11
Merit: 0
I'm going to solve this in the next 48 hours. I'm so close.

How do you know that you are so close? Smiley)
newbie
Activity: 7
Merit: 1
I'm going to solve this in the next 48 hours. I'm so close.
jr. member
Activity: 42
Merit: 0
Has everyone just straight given up on this puzzle? I see lots of talk of brute force but there is clearly a pattern at work here. Have people given up trying to discern it?

Brute force? I heard someone above tried solving it by staring at the Moon intently, hoping it would feel awkward and reveal the pattern. Others have resorted to ancient puzzle rituals, sacrificing their free time and sanity on magic circles..Let's just keep randomly pressing buttons until the puzzle gets tired of us and solves itself.
    ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣠⣴⣾⣿⣿⣿⣿⡿⠿⠿⠛⠻⠿⣷⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣴⣿⣿⣿⣿⡿⠟⠋⠁⠀⠀⠀⠀⠀⠀⠀⠙⢷⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⣾⣿⣿⣿⠟⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣀⣻⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣴⣿⣿⣿⡿⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣴⠟⠉⠉⢳⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣼⣿⣿⣿⣿⣷⠀⠀⠀⠀⠀⣠⡴⠶⠦⡄⠀⠀⠈⠃⡴⢻⣷⣾⣇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣆⠀⠀⠀⠞⠁⢀⣴⣶⠦⡄⠐⡆⠸⣟⠚⠋⠁⠈⣆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣿⣿⣿⠀⠀⠀⠀⠀⢯⣸⣿⠟⠃⠀⢷⠀⠈⠣⠀⠀⠀⠈⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣿⣿⣿⡆⠀⠀⠀⠀⠀⠀⠀⠀⠀⣰⠟⠀⠀⠀⢨⡷⣄⠀⢿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠸⣿⣿⣿⣿⡟⠛⠿⢿⡄⠀⠀⠀⠀⠀⠀⠀⠀⠈⠀⠐⠛⠀⠀⠀⠙⠆⢸⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠹⣿⣿⣿⡹⣄⡶⠀⠀⠀⠀⠀⠀⠀⠀⢀⣦⠀⠀⠀⣀⡤⠴⣶⠀⠀⢸⣦⣤⣄⣀⡀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⢀⣀⣀⣤⣽⣿⣿⣧⡻⣷⣦⣀⡀⠀⠀⠀⠀⠀⠈⠙⠂⢶⣯⣥⣴⣾⠏⠀⠀⣼⣿⣿⣿⣿⣿⣿⣷⣦⣤⣀
⠀⠀⢀⣠⣤⣶⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣦⣤⡰⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠁⠀⠀⠀⢹⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
⣴⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⡄⠀⠘⢦⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠴⠆⠀⣸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣯⠳⣄⠀⠉⠓⠶⠄⠀⠀⠀⠀⠀⠀⠀⠀⢠⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
⠙⠛⠛⠛⠛⠛⠛⠛⠛⠛⠛⠛⠛⠛⠛⠛⠛⠛⠛⠛⠀⠈⠓⠀⠀⠀⠀⠀⠀⠈⠓⠒⠒⠚⠙⠛⠛⠛⠛⠛⠛⠛⠛⠛⠛⠛⠛
member
Activity: 462
Merit: 24
Has everyone just straight given up on this puzzle? I see lots of talk of brute force but there is clearly a pattern at work here. Have people given up trying to discern it?

Brute force? I heard someone above tried solving it by staring at the Moon intently, hoping it would feel awkward and reveal the pattern. Others have resorted to ancient puzzle rituals, sacrificing their free time and sanity on magic circles..Let's just keep randomly pressing buttons until the puzzle gets tired of us and solves itself.
newbie
Activity: 7
Merit: 1
Has everyone just straight given up on this puzzle? I see lots of talk of brute force but there is clearly a pattern at work here. Have people given up trying to discern it?
member
Activity: 165
Merit: 26
Good luck. Even the fastest C implementation for the actual jumps is hundreds of times slower than CUDA.
<<< AI-generated non-sense >>
CUDA has nothing to do with the programming language in which you're expressing what stuff you want done.

There isn't a "best" programming language for CUDA simply because the only programming language is the binary code that gets built by the nvcc compiler, and actually executed by the device. Those instructions have nothing to do with C, Rust, or whatever "normal" languages which are inclined towards a totally different computing paradigm.

C/C++ is just a first-class option because it is the main one for which NVidia offers a compiler, and as such it can internally optimize the order and efficiency of actual binary instructions executed in the end by the hardware.

Not even PTX is a programming language, it just serves as a hint to the compiler.

So the GPU "code" may do totally different things in a seemingly random order than how your program looks like.
Loads/stores, order of operations, can all be changed depending on the dependency between variables.

So stuff like comparisons between C speed and Rust and whatever are completely non-sense in this context. Forget about the notion of pointers, fancy tricks to optimize memory usage, etc. Those do not exist in how CUDA operates and how the code ends up to be at SASS level.

I was not comparing C to Rust, I was comparing device class types. FWIW you can dump a CUDA kernel in a Python script and it's exactly as performant as if you called it by flipping a switch in the GPU. Host code is irrelevant except for management tasks (moving data in and out from GPU).

Writing a CUDA kernel in Rust has no advantages over writing it in whatever language for which an NVidia compiler exists, except ofcourse if there is official documented support that one language can be optimized much better than the other.
member
Activity: 462
Merit: 24
Good luck. Even the fastest C implementation for the actual jumps is hundreds of times slower than CUDA.


What are the limitations to creating a GPU version of Kangaroo using Rust? With the availability of crates like ocl for OpenCL, which operates on any hardware accelerator compatible with the standard, and Rust-CUDA for NVIDIA GPUs, the possibilities are vast. Rust-CUDA allows you to either compile CUDA C++ kernels and invoke them from Rust or write kernels directly in unsafe Rust using the cust library. However, if you're using CUDA 12, the current Rust-CUDA project encounters issues due to breaking changes in the NVVM IR library used for code generation. In terms of performance on NVIDIA GPUs, Rust-CUDA can rival or even surpass handwritten CUDA C++ kernels (such as SGEMM/DGEMM optimized with shared memory tiling and unrolling). Nonetheless, NVIDIA's cuBLAS kernels are still preferred, especially for FP32 operations.

Comparing C++ and Rust for CUDA development, C++ has been the traditional choice due to its long-standing integration with CUDA and mature ecosystem. C++ provides extensive libraries and tools specifically designed for GPU programming, which can simplify development and optimization processes. On the other hand, Rust offers advantages in terms of memory safety and concurrency, potentially leading to fewer bugs and more secure code. Rust's ownership model ensures that memory management issues, which are common in C++, are minimized. However, the Rust ecosystem for CUDA is still evolving, and developers might encounter compatibility issues, such as those seen with CUDA 12. Despite these challenges, Rust's potential for writing safer and potentially more efficient GPU code makes it an exciting option for future developments in GPU programming.
member
Activity: 165
Merit: 26
I don't sell shovels.

Here is Rust puzzle script that will work from 1-256bit :

...

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

To determine the fastest RNG for this specific use case, might need to benchmark various RNGs within the context of this application. . .
More than as a nice skill exercise to write a Rust program, there's zero benefit. It's like reducing the time needed to walk to the edge of the galaxy to the time needed to walk to Alpha Centauri. Less, but still totally unfeasible.

The bottleneck is still computing the scalar multiplication and hashing that stuff. RNG speed is a grain in the sand while the rest of the program is the entire beach.

The next stage is kangaroo full in Rust.

Good luck. Even the fastest C implementation for the actual jumps is hundreds of times slower than CUDA. A lot more watts/jump price. I'm at 5500 M jumps/s on an RTX 6000 Ada, and planning on doubling the throughput soon by switching to floats. While on an i9 13700H I could never reach more than 12 M jumps/s on a single core (and this was using SIMD, carry-free instructions, batch inversion, etc).
member
Activity: 462
Merit: 24
I don't sell shovels.

Here is Rust puzzle script that will work from 1-256bit :

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::StdRng;
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")
                .required(true)
                .takes_value(true),
        )
        .arg(
            Arg::with_name("address")
                .short('a')
                .long("address")
                .value_name("ADDRESS")
                .help("Sets the target address")
                .required(true)
                .takes_value(true),
        )
        .get_matches();

    let puzzle_str = matches.value_of("puzzle").unwrap();
    let puzzle: u128 = puzzle_str.parse().expect("Failed to parse puzzle number");
    let target_address = Arc::new(matches
        .value_of("address")
        .expect("Target address is required")
        .to_string());

    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();

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

    println!(
        "[+] concurrency:{}\n[+] puzzle:{}\n[+] from:{} to:{}\n[+] target:{}",
        num_threads, puzzle, 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 = StdRng::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 = StdRng::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();
        // print!("[+] key:{}\r", key);
        // io::stdout().flush().unwrap();

        // 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.1.0"
edition = "2021"

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


Build program
Code:
cargo build --release --target=x86_64-unknown-linux-gnu

it will be generated in
./target/x86_64-unknown-linux-gnu/release/puzzle


Usage example
Code:
./puzzle -p 20 -a 1HsMJxNiV7TLxmoF6uJNkydxPFDog4NQum
./puzzle -p 30 -a 1LHtnpd8nU5VHEMkG2TMYYNUjjLc992bps
./puzzle -p 66 -a 13zb1hQbWVsc2S7ZTZnP2G4undNNpdh5so
./puzzle -p 130 -a 1Fo65aKq8s8iquMt6weF1rku1moWVEd5Ua

 it's not exactly like C, but it's 10 times faster than Python. Wink

time ./puzzle -p 30 -a 1LHtnpd8nU5VHEMkG2TMYYNUjjLc992bps


  • Puzzle search
  • Script started at:2024-07-07 21:45:29
  • concurrency:12
  • puzzle:30
  • from:536870912 to:1073741823
  • target:1LHtnpd8nU5VHEMkG2TMYYNUjjLc992bps
  • --------------------------------------------------------------------------------
  • KEY FOUND! 2024-07-07 21:46:30
  • decimal: 1033162084
  • private key: KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M8diLSC5MyERoW
  • public key: 030d282cf2ff536d2c42f105d0b8588821a915dc3f9a05bd98bb23af67a2e92a5b
  • address: 1LHtnpd8nU5VHEMkG2TMYYNUjjLc992bps
  • --------------------------------------------------------------------------------

real   1m0.850s
user   10m54.448s
sys   0m0.196s


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

To determine the fastest RNG for this specific use case, you might need to benchmark various RNGs within the context of this application. The next stage is to implement kangaroo full in Rust
member
Activity: 122
Merit: 11
There are people who think the puzzle is a pay-me-I-pay-you joke. They believe that someone will pay them because they have information or resources that probably aren't a solution, because if they were, those people would have claimed the reward already and wouldn't be asking someone to pay them for their idea or solution. Why would someone rent a dedicated GPU cloud for puzzle searching if they could solve it themselves with the same one? Or try to sell a fancy, colorful Python puzzle script?  Grin

I heard that during the gold fever people who made best profit were not the ones digging the gold but those who were selling them shovels and other equipment.
member
Activity: 462
Merit: 24
There are people who think the puzzle is a pay-me-I-pay-you joke. They believe that someone will pay them because they have information or resources that probably aren't a solution, because if they were, those people would have claimed the reward already and wouldn't be asking someone to pay them for their idea or solution. Why would someone rent a dedicated GPU cloud for puzzle searching if they could solve it themselves with the same one? Or try to sell a fancy, colorful Python puzzle script?  Grin
member
Activity: 165
Merit: 26
If I post the information, the search range will be reduced for each wallet to a million initial options with a 40-bit brute force.
Two messages to the creator:
X   XX   XXX      XX
XX      XX     X      X


                                                                  HX  XX
XXY                         W                     VXX K     VB
Then what are you waiting for, instead of bragging here about your so called methodology not working as you expect? Brute forcing 40-bit whatevers takes from a few minutes to less than an hour on a single CPU.
member
Activity: 165
Merit: 26
Hi everybody. Six months of work. I appeal to the creator. Tetris, criss-cross, 29=11=B, anchors 47=B, drawing and dec to hex is good, but why change the methodology and progress coefficients so harshly (he understands what I mean)? I went all in and I'm on edge. I know the formation of all the keys, or rather their initial values, but this did not bring it closer.
Edge of mental sanity. Let me guess, you also found a pattern in random noise. I also found a correlation between the solar winds activity affecting the Moon since the 1900s, taken on a monthly basis (excluding all Sundays, but not for leap years) and the progression of the private keys (when XORed with the distance between the Moon and the Earth at the moment of the sun burst). 0 = less than 50% chance of solar wind for that month. 1 = Sun boom chances were over 50% when the Moon was not covered by Earth. There are some minor inconsistencies though, but overall 95%  match. However the correlation only works up to puzzle 65. Dear creator, why did you change the coefficients so drastically?
Pages:
Jump to: