Bitcoin Forum
May 23, 2024, 12:35:06 PM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
  Home Help Search Login Register More  
  Show Posts
Pages: « 1 2 3 4 [5] 6 7 8 9 10 11 12 13 14 »
81  Bitcoin / Bitcoin Discussion / Re: Bitcoin puzzle transaction ~32 BTC prize to who solves it on: January 19, 2024, 11:42:35 AM
creator says there is no pattern

This is the fact that there is no pattern. But it's not random either. There is an exact math formula for making this puzzle with some script, errors = ZERO.  With high decimal precision (mp.dps = 20 at least)
And the formula is in the creator's mind. This is all I have to say in public and outside the SCIF room  Grin
82  Bitcoin / Bitcoin Discussion / Re: Bitcoin puzzle transaction ~32 BTC prize to who solves it on: January 18, 2024, 10:52:40 AM
probably another digaran version?
It's amazing how persistent he is in his imagination. It turns out that the real Satoshi Nakamoto has been living a double life. The digaran mysterious genius behind it all.  Grin

If you are the creator could you please sign a something to prove us? Alternative you can increase the puzzle by 10x again.

Why would anyone prove anything when we already have a verified creator:

A few words about the puzzle.  There is no pattern.  It is just consecutive keys from a deterministic wallet (masked with leading 000...0001 to set difficulty).
83  Bitcoin / Bitcoin Discussion / Re: Bitcoin puzzle transaction ~32 BTC prize to who solves it on: January 18, 2024, 09:40:41 AM
Now you understand?

I've enlisted the help of my imaginary friends, Fibonacci and Euclid, for an epic escapade through the primeval forest of PVK values and the enigmatic realm of depressed progressions. Armed with nothing but a slide rule and a cat's evil eye, we've sacrificed Netflix binging to decode cryptographic riddles, as the crypto-gods eagerly await our impending mathematical breakthrough.

Let's ride the prime number rollercoaster together and unveil the grand secret hidden within the pattern that goes beyond PVK values. I'm convinced we're on the verge of a breakthrough that will shake the foundations of mathematical academia.
The pulse of the prime force guides our quest, and we stand on the cusp of a revelation that promises to echo through the corridors of intellectual history. Get ready for the revelation of the century!

Cheers to the thrilling adventure of PVK values and their clandestine connections. May the prime force be with us!  Grin
84  Bitcoin / Bitcoin Discussion / Re: Bitcoin puzzle transaction ~32 BTC prize to who solves it on: January 17, 2024, 10:14:55 PM
215 805 661 416 years

Your calculation is correct. With 100 Ekeys/s would take an incredibly long time.

That is unbreakable even at that speed.

Speed needed for a 130 range scan time of 5 minutes is approximately
 

719,000,000 Ekeys/s. Grin
85  Bitcoin / Bitcoin Discussion / Re: Bitcoin puzzle transaction ~32 BTC prize to who solves it on: January 10, 2024, 01:07:36 PM

I think that if the creator was to come here and give us hints, this would defeat the purpose of his creation which is to measure our cracking capabilities.

Can't really be giving out hints in an experiment like this one, we must check our own leads and see what comes out of it.
He succeeded in his idea. He showed our cracking capabilities  are poor.

Prize: 988.498 BTC (total), 31.998 BTC (won), 956.5 BTC (remaining)

His 956 BTC is relatively safe even the whole world knows the ranges where the private keys are. Grin
86  Bitcoin / Bitcoin Discussion / Re: Bitcoin puzzle transaction ~32 BTC prize to who solves it on: January 08, 2024, 01:45:15 PM
HI everyone, maybe someone here can explain to me how public key subtraction works? Thanks.

Or even better.... a simplified NSA accelerated study on how to solve any puzzle with key-subtraction. Grin
87  Bitcoin / Development & Technical Discussion / Re: Binary Baby Step Giant Step with lightweight database - Brute force (BSGS) on: January 07, 2024, 07:00:14 AM
what about add step size , I think it will more better

there is already a ready-made script that does this perfectly:
https://github.com/iceland2k14/bsgs/tree/main/v6_dll_bsgs

but keyhunt is still better...so, nothing new to invent here.
only the way the bin file is packed. Grin
88  Bitcoin / Development & Technical Discussion / Re: Binary Baby Step Giant Step with lightweight database - Brute force (BSGS) on: January 06, 2024, 03:57:20 PM
sorry for jumping in and having to ask what i have to change
binary_bsgs_v1.py using this one starting at another point instead of 1 using this
"lm_upub= ice.scalar_multiplication(Add+(lm*i))"
will go for 120 bit db how to setup after 125 any help on this , mean where are you're specific scripts,
you all have your own scripts share it is care for it..

Example for 65bit

It won't work if there are no chunks. It will throw out that you don't have enough memory even if you have 128GB of RAM.

So this is will create baby_steps_binary.bin from 46117 stages....
Size of file over 5GB ....

So calculate size for 130 bit.  Grin

Code:
import secp256k1 as ice
from bitstring import BitArray

print("creating Baby Step")

# create baby step
num = 92233720368  # Keys number in Binary Babystep. same m in the search script
Low_m = 20
lm = num // Low_m
Add = 18446744073709551615
Add_pub = ice.scalar_multiplication(Add)

# Function to process a chunk and write to binary file
def process_and_write_chunk(start, end):
    res = ice.point_sequential_increment(end - start, Add_pub)

    # Ensure the length of res is a multiple of 65
    res_length = len(res)
    if res_length % 65 != 0:
        res = res[:-(res_length % 65)]

    binary = ''
    for t in range(start, end):
        h = res[t * 65 : (t + 1) * 65].hex()
        hc = int(h[2:], 16) if h else 0  # Handle the case when h is an empty string

        if str(hc).endswith(('0', '2', '4', '6', '8')):
            A = "0"
            binary += ''.join(str(A))

        if str(hc).endswith(('1', '3', '5', '7', '9')):
            A = "1"
            binary += ''.join(str(A))

    my_str = BitArray(bin=binary)

    binary_file = open('baby_steps_binary.bin', 'ab')
    my_str.tofile(binary_file)
    binary_file.close()

# Process the remaining chunks with a smaller chunk size
chunk_size = 100000
for i in range(0, lm, chunk_size):
    print("stage: " + str(i // chunk_size + 1) + "/" + str((lm + chunk_size - 1) // chunk_size))
    end = min(i + chunk_size, lm)
    process_and_write_chunk(i, end)
89  Bitcoin / Bitcoin Discussion / Re: Bitcoin puzzle transaction ~32 BTC prize to who solves it on: January 06, 2024, 12:11:06 PM
I have less. Only 5 Ekeys/s, which is very little.

And that's enough to solve 65 in two seconds. Wink


I'm scratching my head to find a way to make baby steps for the H160. There seems to be no way. Grin
There is only one way pub to rmd

And make binary database full with H160. I don't know how long that process would take. I haven't tried it yet. Grin
Serialized point and get hash160 for it on the fly
I moved this to another topic
https://bitcointalk.org/index.php?topic=5477342.msg63451195#msg63451195
90  Bitcoin / Bitcoin Discussion / Re: Bitcoin puzzle transaction ~32 BTC prize to who solves it on: January 06, 2024, 11:26:46 AM
I have less. Only 5 Ekeys/s, which is very little.

And that's enough to solve 65 in two seconds. Wink


I'm scratching my head to find a way to make baby steps for the H160. There seems to be no way. Grin
There is only one way pub to rmd

And make binary database full with H160. I don't know how long that process would take. I haven't tried it yet. Grin
91  Bitcoin / Development & Technical Discussion / Re: Binary Baby Step Giant Step with lightweight database - Brute force (BSGS) on: January 06, 2024, 11:19:52 AM
How to make lightweight database for Public Key Hashes (Hash 160) ? Grin
92  Bitcoin / Bitcoin Discussion / Re: Bitcoin puzzle transaction ~32 BTC prize to who solves it on: January 06, 2024, 10:46:06 AM
I have less. Only 5 Ekeys/s, which is very little.

And that's enough to solve 65 in two seconds. Wink


I'm scratching my head to find a way to make baby steps for the H160. There seems to be no way. Grin
93  Bitcoin / Bitcoin Discussion / Re: Bitcoin puzzle transaction ~32 BTC prize to who solves it on: January 06, 2024, 05:49:28 AM


And leave it like that until January 1, 2025   Roll Eyes

I have ~90 Ekeys/s in BSGS/keyhunt

I've been tweaking linux for months to get every atom out of Dual CPU configuration.

#RT kernel
Code:
wget -qO - https://dl.xanmod.org/archive.key | sudo gpg --dearmor -o /usr/share/keyrings/xanmod-archive-keyring.gpg
echo 'deb [signed-by=/usr/share/keyrings/xanmod-archive-keyring.gpg] http://deb.xanmod.org releases main' | sudo tee /etc/apt/sources.list.d/xanmod-release.list
sudo apt-get -y update && sudo apt install linux-xanmod-rt-x64v3

Code:
sudo apt install -y tuned tuned-utils tuned-utils-systemtap
sudo tuned-adm profile latency-performance

Code:
cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
should be performance for all cores

/etc/default/grub
Code:
quiet msr.allow_writes=on nosoftlockup mce=ignore_ce skew_tick=1 clocksource=hpet iommu=soft noresume mitigations=off nmi_watchdog=0


Nvme config (It must be a good Heatsink on Nvme, otherwise it goes over 50 C/I have had white smoke from them more than once.)
/etc/fstab
Code:
ext4 noatime,nodiratime,errors=remount-ro,inode_readahead_blks=0 0 1

AMD EPYC config
Code:
wrmsr -a 0xc0011020 0x4400000000000
wrmsr -a 0xc0011021 0x4000000000040
wrmsr -a 0xc0011022 0x8680000401570000
wrmsr -a 0xc001102b 0x2040cc10

And so on and on....This is only part of it.

I even modify BIOS on Intel boards and even GPU bios.  Until the components burn *from efficiency. Grin
94  Bitcoin / Bitcoin Discussion / Re: Bitcoin puzzle transaction ~32 BTC prize to who solves it on: January 04, 2024, 12:49:03 PM
Subtraction, multiplication, addition.....

This is like the movie Groundhog Day.
About a man reliving the same day over and over and over.
In this case trying to break the ECDSA. Grin
95  Bitcoin / Bitcoin Discussion / Re: Bitcoin puzzle transaction ~32 BTC prize to who solves it on: January 01, 2024, 04:19:50 PM

Puzzle 130 will not be solved soon, around February 1, 2025 Smiley

I am runung custom BSGS with  128 GB RAM on AMD EPYC

bpfile size ~704 GB
bloom size ~110.47 GB

According to my calculation, it should end sometime in the middle of 2028. And all this if the server does not blink and there is no power outage. Grin

LOL  ... That is ridiculous.  Grin

Happy New Year  Wink
96  Bitcoin / Bitcoin Discussion / Re: Bitcoin puzzle transaction ~32 BTC prize to who solves it on: January 01, 2024, 04:03:43 PM

Puzzle 130 will not be solved soon, around February 1, 2025 Smiley

I am running custom BSGS with 128 GB RAM on AMD EPYC

bpfile size ~704 GB
bloom size ~110.47 GB

According to my calculation, it should end sometime in the middle of 2028. And all this if the server does not blink and there is no power outage. Grin
97  Bitcoin / Bitcoin Discussion / Re: Bitcoin puzzle transaction ~32 BTC prize to who solves it on: December 31, 2023, 10:13:11 AM
Is there another way to build OpenSSL?

Yep....If you use Linux....

Code:
sudo apt-get install libgmp-dev libssl-dev build-essential
Grin
98  Bitcoin / Bitcoin Discussion / Re: Bitcoin puzzle transaction ~32 BTC prize to who solves it on: December 30, 2023, 12:42:48 PM
Here is my script that filters the 03 prefix. I cannot physically measure the benefits of this.
Who cares if it's 10, 20 or 200 Mk/s ?. . .Same slow shit.  Cry

puzzle.cpp
Code:
#include <iostream>
#include <vector>
#include <iomanip>
#include <cmath>
#include <openssl/bn.h>
#include <openssl/ec.h>
#include <openssl/obj_mac.h>
#include <openssl/evp.h>
#include <openssl/rand.h>
#include <openssl/sha.h>
#include <openssl/ripemd.h>
#include <ctime>
#include <sstream>
#include <fstream>
#include <thread>
#include <mutex>
#include <atomic>

std::atomic<int> keysGenerated(0);

std::string bytesToHex(const std::vector<unsigned char>& bytes)
{
    std::stringstream ss;
    for (unsigned char byte : bytes) {
        ss << std::hex << std::setw(2) << std::setfill('0') << static_cast<int>(byte);
    }
    return ss.str();
}

std::vector<unsigned char> calculateSHA256(const std::vector<unsigned char>& data)
{
    std::vector<unsigned char> hash(SHA256_DIGEST_LENGTH);
    SHA256(data.data(), data.size(), hash.data());
    return hash;
}

std::vector<unsigned char> calculateRIPEMD160(const std::vector<unsigned char>& data)
{
    std::vector<unsigned char> hash(RIPEMD160_DIGEST_LENGTH);
    RIPEMD160(data.data(), data.size(), hash.data());
    return hash;
}

void generateKeys(BIGNUM* minKeyBN, BIGNUM* maxKeyBN, const std::vector<unsigned char>& target_hash160_bytes, std::mutex& outputMutex, std::atomic<int>& keysGenerated, int totalKeys)
{
    BIGNUM* range = BN_new();
    BIGNUM* randomPrivateKey = BN_new();
    BIGNUM* bn_private_key = NULL;

    BN_sub(range, maxKeyBN, minKeyBN);

    EC_KEY* ec_key = EC_KEY_new_by_curve_name(NID_secp256k1);
    const EC_GROUP* curve = EC_KEY_get0_group(ec_key);
    EC_GROUP* ec_group = EC_GROUP_dup(curve);
    EC_KEY_set_group(ec_key, ec_group);

    unsigned char sha256_result[SHA256_DIGEST_LENGTH];
    std::vector<unsigned char> ripemd160_result(RIPEMD160_DIGEST_LENGTH);

    while (keysGenerated < totalKeys) {
        BN_rand_range(randomPrivateKey, range);
        BN_add(randomPrivateKey, randomPrivateKey, minKeyBN);

        int numBits = BN_num_bits(randomPrivateKey);
        int numBytes = (numBits + 7) / 8;

        std::vector<unsigned char> private_key_bytes(numBytes, 0);
        int key_length = BN_bn2bin(randomPrivateKey, private_key_bytes.data());

        bn_private_key = BN_bin2bn(private_key_bytes.data(), key_length, NULL);
        EC_KEY_set_private_key(ec_key, bn_private_key);

        EC_POINT* public_key_point = EC_POINT_new(ec_group);
        EC_POINT_mul(ec_group, public_key_point, bn_private_key, NULL, NULL, NULL);

        size_t public_key_length = EC_POINT_point2oct(ec_group, public_key_point, POINT_CONVERSION_COMPRESSED, NULL, 0, NULL);
        std::vector<unsigned char> public_key_bytes(public_key_length);
        EC_POINT_point2oct(ec_group, public_key_point, POINT_CONVERSION_COMPRESSED, public_key_bytes.data(), public_key_length, NULL);

        if (public_key_bytes[0] != 0x03) {
            // Skip this iteration if the prefix is not 0x03
            EC_POINT_free(public_key_point);
            continue;
        }

        SHA256(public_key_bytes.data(), public_key_bytes.size(), sha256_result);
        ripemd160_result = calculateRIPEMD160(std::vector<unsigned char>(sha256_result, sha256_result + SHA256_DIGEST_LENGTH));

        std::string calculated_hash160_hex = bytesToHex(ripemd160_result);

        std::string message = "\r\033[01;33m[+] Public Key Hash (Hash 160): " + calculated_hash160_hex;
        {
            std::lock_guard<std::mutex> lock(outputMutex);
            std::cout << message << "\e[?25l";
            std::cout.flush();
        }

        if (ripemd160_result == target_hash160_bytes) {
            std::time_t currentTime;
            std::time(&currentTime);
            std::tm tmStruct = *std::localtime(&currentTime);
            std::stringstream timeStringStream;
            timeStringStream << std::put_time(&tmStruct, "%Y-%m-%d %H:%M:%S");
            std::string formattedTime = timeStringStream.str();

            {
                std::lock_guard<std::mutex> lock(outputMutex);
                std::cout << "\n\033[32m[+] PUZZLE SOLVED: " << formattedTime << "\033[0m" << std::endl;
                std::cout << "\r\033[32m[+] Target Public Key Hash (Hash160) found! Private Key: " << bytesToHex(private_key_bytes) << "\033[0m" << std::endl;
                std::cout << "\e[?25h";
                std::cout.flush();
            }

            std::ofstream file("KEYFOUNDKEYFOUND.txt", std::ios::app);
            if (file.is_open()) {
                file << "\nPUZZLE SOLVED " << formattedTime;
                file << "\nPrivate Key (hex): " << bytesToHex(private_key_bytes);
                file << "\n-------------------------------------------------------------------------------------";
                file.close();
            }

           keysGenerated++;

            break;
        }

        EC_POINT_free(public_key_point);
    }

    BN_free(range);
    BN_free(randomPrivateKey);
    EC_KEY_free(ec_key);
    EC_GROUP_free(ec_group);
}

int main()
{
    if (OpenSSL_add_all_algorithms() != 1) {
        std::cerr << "OpenSSL initialization failed." << std::endl;
        return 1;
    }
    BIGNUM* minKeyBN = BN_new();
    BIGNUM* maxKeyBN = BN_new();
    BN_dec2bn(&minKeyBN, "524287");   // min range
    BN_dec2bn(&maxKeyBN, "1048575");  // max range
    std::string target_hash160_hex = "b907c3a2a3b27789dfb509b730dd47703c272868";

    std::vector<unsigned char> target_hash160_bytes;
    for (size_t i = 0; i < target_hash160_hex.length(); i += 2) {
        std::string byteString = target_hash160_hex.substr(i, 2);
        unsigned char byte = static_cast<unsigned char>(std::stoul(byteString, nullptr, 16));
        target_hash160_bytes.push_back(byte);
    }

    unsigned int num_cores = std::thread::hardware_concurrency();
    const int numThreads = num_cores; // Adjust the number of threads as needed
    std::system("clear");
    time_t currentTime = std::time(nullptr);
    char* minKeyStr = BN_bn2dec(minKeyBN);
    char* maxKeyStr = BN_bn2dec(maxKeyBN);
    int minKeyBits = BN_num_bits(minKeyBN);
    int maxKeyBits = BN_num_bits(maxKeyBN);
    int numBits = std::max(minKeyBits, maxKeyBits);
    std::cout << "\r\033[01;33m[+] HASH160 Search by NoMachine" << "\n";
    std::cout << "\r\033[01;33m[+] " << SSLeay_version(SSLEAY_VERSION) << std::endl;
    std::cout << "\r\033[01;33m[+] " << std::ctime(&currentTime);
    std::cout << "\r\033[01;33m[+] Puzzle: " << numBits << "\n";
    std::cout << "\r\033[01;33m[+] Lower range limit: " << minKeyStr << "\n";
    std::cout << "\r\033[01;33m[+] Upper range limit: " << maxKeyStr << "\n";
    std::cout << "\r\033[01;33m[+] Using " << num_cores << " CPU cores for parallel search\033[0m" << std::endl;
    OPENSSL_free(minKeyStr);
    OPENSSL_free(maxKeyStr);
    std::cout.flush();

    std::mutex outputMutex;
    std::vector<std::thread> threads;

    for (int i = 0; i < numThreads; ++i) {
        threads.emplace_back(generateKeys, minKeyBN, maxKeyBN, target_hash160_bytes, std::ref(outputMutex), std::ref(keysGenerated), 1);
    }

    for (auto& thread : threads) {
        thread.join();
    }

    BN_free(minKeyBN);
    BN_free(maxKeyBN);

    return 0;
}

Code:
g++ -o puzzle puzzle.cpp -lssl -lcrypto -lpthread
99  Bitcoin / Bitcoin Discussion / Re: Bitcoin puzzle transaction ~32 BTC prize to who solves it on: December 30, 2023, 08:10:36 AM
How do you know if PubKey prefix = 02?

I think it's a waste of time to guess whether it's 02 or 03 prefix. Whatever the script is, it must pass all the private keys. It is impossible to accelerate this way. It can be filtered, but filtering is not acceleration. Grin
100  Bitcoin / Bitcoin Discussion / Re: Bitcoin puzzle transaction ~32 BTC prize to who solves it on: December 27, 2023, 09:35:55 AM
I'm wondering if there is there any knowledge (or speculation!) of the methodology which was used in the creation of the transaction?

A few words about the puzzle.  There is no pattern.  It is just consecutive keys from a deterministic wallet (masked with leading 000...0001 to set difficulty).
Pages: « 1 2 3 4 [5] 6 7 8 9 10 11 12 13 14 »
Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!