Bitcoin Forum
September 06, 2025, 05:02:03 PM *
News: Latest Bitcoin Core release: 29.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: « 1 ... 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 [577] 578 579 580 581 582 »
  Print  
Author Topic: Bitcoin puzzle transaction ~32 BTC prize to who solves it  (Read 335408 times)
Denevron
Newbie
*
Offline Offline

Activity: 115
Merit: 0


View Profile
August 20, 2025, 04:15:55 PM
 #11521

Hello, guys!
Ultra lightweight CUDACyclone is ready, speed is 1.3Gkeys/s on RTX4060.
Key feature - extremely low VRAM usage for rented gpu. Less than 500Mb VRAM on RTX4090.
It will work even if Vanity or Keyhunt doesn’t start.
And also this is a good studying sample for your education (why not)? Total 7 small files.
Link: https://github.com/Dookoo2/CUDACyclone

Cool, it's a pity I won't be able to try it, I have an AMD card Sad
stwenhao
Sr. Member
****
Offline Offline

Activity: 460
Merit: 897


View Profile
August 20, 2025, 04:55:50 PM
 #11522

Quote
the only predictable inputs would be having the first byte (0x2 or 0x3)
No, there is much more into that. In secp256k1, we have p-value and n-value. Each of them is a prime number, and we work on numbers in range from 0 to p-1 for public keys, and from 0 to n-1 for private keys. If we factor p-1 and n-1, we can see this: https://sagecell.sagemath.org/
Code:
p=0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f
n=0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141
print(factor(p-1))
print(factor(n-1))
2 * 3 * 7 * 13441 * 205115282021455665897114700593932402728804164701536103180137503955397371
2^6 * 3 * 149 * 631 * 107361793816595537 * 174723607534414371449 * 341948486974166000522343609283189
Which means, that not only we can use 02 and 03 as a prefix, but the number "three" can be used, to get three different x-values, leading to the same y-value. However, things doesn't stop there: by factoring n-1, we can use these numbers to explore smaller circles, where the biggest one has only 341948486974166000522343609283189 elements. For secp256k1, it is hard to break, however for secp160k1, we have yet another interesting property:
Code:
p=0xfffffffffffffffffffffffffffffffeffffac73
n=0x0100000000000000000001b8fa16dfab9aca16b6b3
print(factor(p-1))
print(factor(n-1))
2 * 3 * 5 * 7 * 113 * 61588775277324185343602394973294691093621473
2 * 3 * 5 * 8837 * 42918291593381467397 * 128449012680369359431471
In this case, not only we can use two and three, but also five as well, because it is a factor of p-1 and n-1 at the same time, and for that reason secp160k1 is a bit weaker, than it was supposed to be, if that wouldn't be the case.

However, in general, what I am trying to say, is that private to public key mapping is not "random". There are some algorithms behind it, just like there are different algorithms behind hash functions. Which means, that if some public key is altered in a specific way, then bits are not shifted randomly from some values to some completely different values. Everything is deterministic, and if only some bits of the private key are altered, then it is very similar case, as if some hashed message is only slightly changed here and there: we have many constants. There are many computations, which can be done once, and reused. It is true in both cases: for hash functions, and for elliptic curve cryptography.

And I am still surprised, that we don't have "modulo bias crowd" yet. Because if p-1 is divisible by 7, and n-1 is divisible by 8, then some "magic" can be done, based on that fact. And instead of computing private and public keys modulo p-value or n-value, different values can be used, to approximate things in a similar way, as the "prefix crowd" tries to do with hash functions.

Quote
If some useless dependency between these steps exists, the compiler would remove it already.
Existing compiler optimizations are often great, but they are not perfect. In SHA-256, you have ARX model, where three main operations are combined: Addition, Rotation, and Xor. If you use any of these two alone, then many compilers won't optimize it. By having addition and rotation alone, things can be trivially broken, but compilers will execute all steps anyway, and won't optimize them automatically. The same is true for having only rotation and xor, where you have to only trace, which bit is xored with which other bit, to trivially break that combination alone.

When it comes to addition and xor, it is a little more tricky, but it can be also broken, if you notice, that addition can be splitted into f-functions from SHA-1, or special functions from SHA-256, called "ch" and "maj", where you have a choose function, and a majority function. Basically, addition can be written as a sequence of xor operations, which can give single bits of the result, a majority operation, which can set carry to proper values, and optionally it can be made faster by carefully injecting choose function, where some things are executed, while others are skipped, so you can focus only on parts with non-zero bits.

So, of course, many compilers are great, and their optimizations can help a lot, but human factor is also important, when it comes to inventing new optimizations, and making things faster. And there are many things to discover, when it comes to hash functions and elliptic curves. Because even currently, only some operations are weakened and optimized, but there is still many things to improve. And also, hardened SHA-1 can give us some hints, because before trying to fight with SHA-256, it is often a good idea to try to break "weakened SHA-256", where some vectors are specially crafted, to make some operations easier, but to also preserve some features of the original SHA-256.

Another thing is number of bits in RIPEMD-160, which is "only" 160. Which means, that when people are trying to break 71-bit keys now, then when they will get closer to 80-bit ones, then they will also get much closer to address collisions. Because even now, if someone has enough computing power, to potentially break 70-bit key, then that person also probably has enough computing power, to create two different addresses, sharing around 140 identical bits (maybe a little less than that, because not storing computed keys also has some cost, when you keep partial results, instead of keeping everything).

Quote
But the truth is disheartning to prefix theorists since the resulting H160s that match in the middle have no pretty base58 similarities whatsoever.
Yes, they would be really surprised, if they would actually learn, how RIPEMD-160 internally works, which parts are hashed, and when, and so on.

Quote
Besides, who would start scanning from scratch and change their blessed rules just because things would run a bit faster?
Well, there is always a choice between keeping some brute-force solution, and improving the algorithm. Wise people know, that improving the software is what can lead to better results, but humans are lazy, and if they can use their old methods, which works fine, but are slow, then they keep doing that, and just hope, that they will be somehow lucky.

Proof of Work puzzle in mainnet and testnet4.
kTimesG
Full Member
***
Offline Offline

Activity: 574
Merit: 198


View Profile
August 20, 2025, 05:39:29 PM
Merited by stwenhao (1)
 #11523

Which means, that not only we can use 02 and 03 as a prefix, but the number "three" can be used, to get three different x-values, leading to the same y-value. However, things doesn't stop there: by factoring n-1, we can use these numbers to explore smaller circles, where the biggest one has only 341948486974166000522343609283189 elements.

Yeah, that endo property is the reason why a vanity search can be sped up when the actual key range does not matter. But think about it: the SHA will get 32 new bytes for pubKey (X * lambda), so not much to reuse unfortunately. For 02 vs 03 - maybe. But the avalanche effect will inevitably do its job.

I think crypto guys are at a current state where they agree that using the endo as an attack vector doesn't really work. They tried and failed. No one found a way yet. It only helps with speeding up ECDSA verification today, to multiply random points with random scalars.

When I meant compiler, I was referring to the CUDA compiler, not a CPU one. For nvcc, any register in the code that isn't eventually useful (e.g. printed or written to memory) gets its entire traceback code completely removed. No useless instructions ever execute, because, well, all the instructions and all the branches always execute. Also, usually recomputing data ends up being much faster than reusing data. It's crazy.

Off the grid, training pigeons to broadcast signed messages.
analyticnomad
Newbie
*
Offline Offline

Activity: 63
Merit: 0


View Profile
August 20, 2025, 07:58:43 PM
 #11524

Hello, guys!
Ultra lightweight CUDACyclone is ready, speed is 1.3Gkeys/s on RTX4060.
Key feature - extremely low VRAM usage for rented gpu. Less than 500Mb VRAM on RTX4090.
It will work even if Vanity or Keyhunt doesn’t start.
And also this is a good studying sample for your education (why not)? Total 7 small files.
Link: https://github.com/Dookoo2/CUDACyclone

Cool, it's a pity I won't be able to try it, I have an AMD card Sad

Why wouldn't this work with an AMD card?
Denevron
Newbie
*
Offline Offline

Activity: 115
Merit: 0


View Profile
August 20, 2025, 08:25:01 PM
 #11525

Hello, guys!
Ultra lightweight CUDACyclone is ready, speed is 1.3Gkeys/s on RTX4060.
Key feature - extremely low VRAM usage for rented gpu. Less than 500Mb VRAM on RTX4090.
It will work even if Vanity or Keyhunt doesn’t start.
And also this is a good studying sample for your education (why not)? Total 7 small files.
Link: https://github.com/Dookoo2/CUDACyclone

Cool, it's a pity I won't be able to try it, I have an AMD card Sad

Why wouldn't this work with an AMD card?

because it is made for nvidia, and amd cards do not give such speed  Smiley
analyticnomad
Newbie
*
Offline Offline

Activity: 63
Merit: 0


View Profile
August 20, 2025, 09:38:28 PM
 #11526

Hello, guys!
Ultra lightweight CUDACyclone is ready, speed is 1.3Gkeys/s on RTX4060.
Key feature - extremely low VRAM usage for rented gpu. Less than 500Mb VRAM on RTX4090.
It will work even if Vanity or Keyhunt doesn’t start.
And also this is a good studying sample for your education (why not)? Total 7 small files.
Link: https://github.com/Dookoo2/CUDACyclone

Cool, it's a pity I won't be able to try it, I have an AMD card Sad

Why wouldn't this work with an AMD card?

because it is made for nvidia, and amd cards do not give such speed  Smiley


Ah yes, I see. I was thinking AMD processor not card.
Denevron
Newbie
*
Offline Offline

Activity: 115
Merit: 0


View Profile
August 20, 2025, 10:25:18 PM
 #11527

Hello, guys!
Ultra lightweight CUDACyclone is ready, speed is 1.3Gkeys/s on RTX4060.
Key feature - extremely low VRAM usage for rented gpu. Less than 500Mb VRAM on RTX4090.
It will work even if Vanity or Keyhunt doesn’t start.
And also this is a good studying sample for your education (why not)? Total 7 small files.
Link: https://github.com/Dookoo2/CUDACyclone

Cool, it's a pity I won't be able to try it, I have an AMD card Sad

Why wouldn't this work with an AMD card?

because it is made for nvidia, and amd cards do not give such speed  Smiley


Ah yes, I see. I was thinking AMD processor not card.

There are many different programs for the processor, the same Cyclone is for processors and works well on AMD  Smiley
Bram24732
Member
**
Offline Offline

Activity: 182
Merit: 18


View Profile
August 21, 2025, 07:44:58 AM
Merited by kTimesG (3)
 #11528

Which means, that not only we can use 02 and 03 as a prefix, but the number "three" can be used, to get three different x-values, leading to the same y-value. However, things doesn't stop there: by factoring n-1, we can use these numbers to explore smaller circles, where the biggest one has only 341948486974166000522343609283189 elements.

Yeah, that endo property is the reason why a vanity search can be sped up when the actual key range does not matter. But think about it: the SHA will get 32 new bytes for pubKey (X * lambda), so not much to reuse unfortunately. For 02 vs 03 - maybe. But the avalanche effect will inevitably do its job.

I think crypto guys are at a current state where they agree that using the endo as an attack vector doesn't really work. They tried and failed. No one found a way yet. It only helps with speeding up ECDSA verification today, to multiply random points with random scalars.

When I meant compiler, I was referring to the CUDA compiler, not a CPU one. For nvcc, any register in the code that isn't eventually useful (e.g. printed or written to memory) gets its entire traceback code completely removed. No useless instructions ever execute, because, well, all the instructions and all the branches always execute. Also, usually recomputing data ends up being much faster than reusing data. It's crazy.

I agree with this but in practice there are still some improvements possible.
Example : You can save a register on the triple XORs of sha256 by writing asm directly. This still works on the latest nvcc/nvrtc versions. So the compiler is not THAT smart. Doing stuff like this in quite a few places allows to reach 96 registers and yield occupancy related gains. It also shuffles the integer instruction mix a bit (less LOP3), which looks nice in profiler but probably has little effect overall on the current architectures.
teguh54321
Newbie
*
Online Online

Activity: 122
Merit: 0


View Profile
August 21, 2025, 06:22:22 PM
 #11529

Anyone can calculate...

How many 1PWo3JeB9j prefix
Possible in puzzle 71 mathematically ? 😅🙏

Mybe in range like 1000 -2000
teguh54321
Newbie
*
Online Online

Activity: 122
Merit: 0


View Profile
August 22, 2025, 02:46:34 AM
 #11530

Hello, guys!
Ultra lightweight CUDACyclone is ready, speed is 1.3Gkeys/s on RTX4060.
Key feature - extremely low VRAM usage for rented gpu. Less than 500Mb VRAM on RTX4090.
It will work even if Vanity or Keyhunt doesn’t start.
And also this is a good studying sample for your education (why not)? Total 7 small files.
Link: https://github.com/Dookoo2/CUDACyclone

Nice thanks 😁
fecell
Jr. Member
*
Offline Offline

Activity: 165
Merit: 2


View Profile
August 22, 2025, 06:29:04 AM
 #11531

Hello, guys!
Ultra lightweight CUDACyclone is ready, speed is 1.3Gkeys/s on RTX4060.
Key feature - extremely low VRAM usage for rented gpu. Less than 500Mb VRAM on RTX4090.
It will work even if Vanity or Keyhunt doesn’t start.
And also this is a good studying sample for your education (why not)? Total 7 small files.
Link: https://github.com/Dookoo2/CUDACyclone
change math with lelicopter's repo for win compatible.
Igor_cherkassy
Newbie
*
Offline Offline

Activity: 3
Merit: 0


View Profile
August 22, 2025, 07:51:48 AM
 #11532

Anyone can calculate...

How many 1PWo3JeB9j prefix
Possible in puzzle 71 mathematically ? 😅🙏

Mybe in range like 1000 -2000

approximately 400,000
brainless
Member
**
Offline Offline

Activity: 421
Merit: 35


View Profile
August 22, 2025, 03:44:16 PM
 #11533

Guess who win first
135 or 71
And  your comments, reason ?

13sXkWqtivcMtNGQpskD78iqsgVy9hcHLF
teguh54321
Newbie
*
Online Online

Activity: 122
Merit: 0


View Profile
August 22, 2025, 04:25:53 PM
 #11534

Guess who win first
135 or 71
And  your comments, reason ?

Seems 71,  cause more people hashing 71 😅
analyticnomad
Newbie
*
Offline Offline

Activity: 63
Merit: 0


View Profile
August 22, 2025, 05:37:18 PM
 #11535

Guess who win first
135 or 71
And  your comments, reason ?

Seems 71,  cause more people hashing 71 😅

135
whistle307194
Copper Member
Newbie
*
Offline Offline

Activity: 13
Merit: 0


View Profile
August 22, 2025, 10:24:11 PM
 #11536

During my test with a modified KeyQuest (cpu), I found instant the private key of puzzle 65. I guess I got lucky but it's really surprising! So I think random can also bring luck sometimes.

I am doing several tests at the moment but have no luck yet..

also not sure if I understand correctly.. does this program allow me to run "virtual cpu" as shown on the preview github image and those ones will do exactly same job as main threads?

I'm curious how the "random" approach makes whole script "trace" keys showing % progress cuz random itself its clue and memory less shuffle
I mean each "picked" value is not remembered each move is it?

Currently running 30k threads Wink 48 main - threadripper 7960X and the rest is "virtual", this takes 14gig mem btw, ~218,5Mkeys/s, cpu/mem stock.
Tried run more virtual ones but program won't start while I set it to 31386 and I believe I could push it higher while having 64gig mem available anyway.
teguh54321
Newbie
*
Online Online

Activity: 122
Merit: 0


View Profile
August 23, 2025, 04:29:55 AM
 #11537

Anyone can calculate...

How many 1PWo3JeB9j prefix
Possible in puzzle 71 mathematically ? 😅🙏

Mybe in range like 1000 -2000

approximately 400,000

How you come up with that number ?
I found 108 of that prefix mostly around 5 high -7 low , seems still far away then 🤪
Igor_cherkassy
Newbie
*
Offline Offline

Activity: 3
Merit: 0


View Profile
August 23, 2025, 07:04:54 AM
Last edit: August 23, 2025, 10:42:13 AM by Igor_cherkassy
 #11538

Anyone can calculate...

How many 1PWo3JeB9j prefix
Possible in puzzle 71 mathematically ? 😅🙏

Mybe in range like 1000 -2000

approximately 400,000

How you come up with that number ?
I found 108 of that prefix mostly around 5 high -7 low , seems still far away then 🤪
This is a simple mathematical calculation. Can you send a list of keys in private messages for analysis? Thank you. I don't search for keys.
1PWo3JeB9j -395013; 1PWo3JeB9jr -6810; 1PWo3JeB9jrG -117.4; 1PWo3JeB9jrGw- 2.02;
POD5
Member
**
Offline Offline

Activity: 331
Merit: 10

Keep smiling if you're loosing!


View Profile
August 23, 2025, 08:57:25 AM
 #11539

It can be calculated using this code:

Code:
import base58

min_val = base58.b58decode('1PWo3Je111111111111111111111111111').hex()
max_val = base58.b58decode('1PWo3Jezzzzzzzzzzzzzzzzzzzzzzzzzzz').hex()

# Total possible addresses in range (excluding checksum)
n = (int(max_val, 16) - int(min_val, 16) + 1) >> 32

# Adjust for 40-bit partial match (assuming 70 bits fixed)
n = n / (2 ** (160 - 70))

# Define the target range (0x400000000000000000 to 0x800000000000000000)
range_size = 0x800000000000000000 - 0x400000000000000000

print("Average matching addresses per 40-bit pattern:", n)
print("Range divided by n (range // n):", range_size // n)

bc1qygk0yjdqx4j2sspswmu4dvc76s6hxwn9z0whlu
mahmood1356
Newbie
*
Offline Offline

Activity: 73
Merit: 0


View Profile
August 23, 2025, 09:19:48 AM
 #11540

Anyone can calculate...

How many 1PWo3JeB9j prefix
Possible in puzzle 71 mathematically ? 😅🙏

Mybe in range like 1000 -2000

Average matching addresses: 8.721844298917494e+17
Range divided by n (range // n): 1353.0
Pages: « 1 ... 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 [577] 578 579 580 581 582 »
  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!