Pages:
Author

Topic: VanBitCracken - a program to use for 32 BTC challenge (supports RTX 30xx cards) - page 3. (Read 5673 times)

member
Activity: 185
Merit: 15
Hi, I'm here again with more questions, appreciate the answer. Isn't it faster to search for RIPEMD-160 instead of address? Or the check encoding of hash 160 to address doesn't require any computation

I've tested this today with a modified Bitcrack and my conclusion is it doesn't really matter skipping one more step of converting PKH to address. Speed boost was minimal.

Devices: 01
Targets: 01
Use: RX 5700XT 8GB OC
Key Random points: 47,185,920
Addr Speed: 499 mil/sec
Ripemd160 speed: 511 mil/sec


Edit: i will test it with millions of targets to see if it causes any speed boost then post results

-----

Test done.. here it is:

Devices: 01
Targets: 6,000,000
Use: RX 5700XT 8GB OC
Key Random points: 47,185,920
Addr speed: 272 mil/sec
Ripemd160 speed: 286 mil/sec

full member
Activity: 1232
Merit: 242
Shooters Shoot...
3 days of searching only found 3 addresses starting with 13zb1hQb, while finding more than 200 addresses starting with 13zb1hQ.
My first 13zb1hQb is in 203c0df74e49 next one is in 401f8aa ( lol was testing ). Third one is in 3b650e1d66a7.
I can't really tell how rare those are considering I'm using random mode. Have you found any of those rare addresses yet? Could this mean that 13zb1hQbW when found is the only address in the entire range? Maybe I'm wrong given the small ranges I have searched.
I am only searching full address, not partial string.

I used to know how to try and figure out how many leading characters in address could be in a specific range.

Maybe someone else can answer better/more accurate.

Take number of characters, minus the leading 1, 13zb1hQbW has 8 characters. Multiply that by base 58 to the power of characters; 58^8 = 128,063,081,718,016. Now divide range size by that. 2^65 / 58^8 = 288,088. So there could be up to 288,000 addresses starting with 13zb1hQbW in the #66 range.

Based on your calculations, i found a prefix that only repeats 4967 times in the entire 66 puzzle range: 13zb1hQbWV

Is my math correct?
Yes, if my math above was correct lol
member
Activity: 185
Merit: 15
3 days of searching only found 3 addresses starting with 13zb1hQb, while finding more than 200 addresses starting with 13zb1hQ.
My first 13zb1hQb is in 203c0df74e49 next one is in 401f8aa ( lol was testing ). Third one is in 3b650e1d66a7.
I can't really tell how rare those are considering I'm using random mode. Have you found any of those rare addresses yet? Could this mean that 13zb1hQbW when found is the only address in the entire range? Maybe I'm wrong given the small ranges I have searched.
I am only searching full address, not partial string.

I used to know how to try and figure out how many leading characters in address could be in a specific range.

Maybe someone else can answer better/more accurate.

Take number of characters, minus the leading 1, 13zb1hQbW has 8 characters. Multiply that by base 58 to the power of characters; 58^8 = 128,063,081,718,016. Now divide range size by that. 2^65 / 58^8 = 288,088. So there could be up to 288,000 addresses starting with 13zb1hQbW in the #66 range.

Based on your calculations, i found a prefix that only repeats 4967 times in the entire 66 puzzle range: 13zb1hQbWV

Is my math correct?
full member
Activity: 1232
Merit: 242
Shooters Shoot...
What is required to run the program on Lambda machine?
newbie
Activity: 6
Merit: 0
Hey all,

Great discussion and lots of knowledge here. Thanks for sharing. Here is my question. I had the chance to test a few Lambda machines and they are very powerful machines. Was wondering if it's possible to run an experiment with VanBitCracken on Lambda machines specifically 2x NVIDIA RTX 6000 Ada 48 GB GPUs (not a cloud version - physical machine). I'm willing to share the results of the experiment.

Thanks,
copper member
Activity: 1330
Merit: 899
🖤😏
just keep generate new random keys, no sequential
In VanBitCracken, use -r 400, it will generate thousands of new mini random ranges and searches them until 400 million searches are done and will again generate random keys, the cycle goes on for ever random.😉
newbie
Activity: 3
Merit: 0
Quote
can you add an option to keep generate&checked random keys in the start-to-end range? no sequential search
I’m not understanding what you are asking. Can you elaborate or give an example?

Code:
import random

start_range = int("20000000000000000", 16)
end_range = int("21000000000000000", 16)
target_address = "13zb1hQbWVsc2S7ZTZnP2G4undNNpdh5so"

while True:
 random_hex = hex(random.randint(start_range, end_range))[2:].zfill(16) #generate random key
 #address = random_hex to address
 if(address==target_address):
  print(random_hex)
  break

just keep generate new random keys, no sequential
full member
Activity: 1232
Merit: 242
Shooters Shoot...
Quote
can you add an option to keep generate&checked random keys in the start-to-end range? no sequential search
I’m not understanding what you are asking. Can you elaborate or give an example?
newbie
Activity: 3
Merit: 0
Quote
printf(" NOTE: when using -beginr and -endr, the program generates random keys in between those ranges. It will not\n");
printf("       search sequentially such as start at begr and stop at endr. Random keys in between the 2 ranges ONLY.\n");

VBCr.exe -t 0 -begr 20000000000000000 -endr 21000000000000000 -gpu -g 360,512 -dis 1 -r 0 -stop 13zb1hQbWVsc2S7ZTZnP2G4undNNpdh5so


this command is sequential search or random search?
The program generates random starting points/keys and then searches sequentially from those until specified rekey number has been reached. So yes, if you use -r 0, it will search sequentially from the random generated keys and will not generate any new random keys.

can you add an option to keep generate&checked random keys in the start-to-end range? no sequential search
full member
Activity: 1232
Merit: 242
Shooters Shoot...
Quote
printf(" NOTE: when using -beginr and -endr, the program generates random keys in between those ranges. It will not\n");
printf("       search sequentially such as start at begr and stop at endr. Random keys in between the 2 ranges ONLY.\n");

VBCr.exe -t 0 -begr 20000000000000000 -endr 21000000000000000 -gpu -g 360,512 -dis 1 -r 0 -stop 13zb1hQbWVsc2S7ZTZnP2G4undNNpdh5so


this command is sequential search or random search?
The program generates random starting points/keys and then searches sequentially from those until specified rekey number has been reached. So yes, if you use -r 0, it will search sequentially from the random generated keys and will not generate any new random keys.
copper member
Activity: 1330
Merit: 899
🖤😏
Quote
printf(" NOTE: when using -beginr and -endr, the program generates random keys in between those ranges. It will not\n");
printf("       search sequentially such as start at begr and stop at endr. Random keys in between the 2 ranges ONLY.\n");

VBCr.exe -t 0 -begr 20000000000000000 -endr 21000000000000000 -gpu -g 360,512 -dis 1 -r 0 -stop 13zb1hQbWVsc2S7ZTZnP2G4undNNpdh5so


this command is sequential search or random search?
Random version does not search sequentially, the first version which is not marked as random on github will only search in sequence. -r 0 means generating new random keys after every 0 generated and checked addresses, so you need to increase it, if your speed is 100 M/s, changing -r to 100 means generating random search points every second, if you have a speed of 100 M/s it's better to add -r 1000 in order to generate random points every 10 seconds, additionally you could add whatever you want, but don't make it too short because it can decrease your overall speed.
newbie
Activity: 3
Merit: 0
Quote
printf(" NOTE: when using -beginr and -endr, the program generates random keys in between those ranges. It will not\n");
printf("       search sequentially such as start at begr and stop at endr. Random keys in between the 2 ranges ONLY.\n");

VBCr.exe -t 0 -begr 20000000000000000 -endr 21000000000000000 -gpu -g 360,512 -dis 1 -r 0 -stop 13zb1hQbWVsc2S7ZTZnP2G4undNNpdh5so


this command is sequential search or random search?
copper member
Activity: 1330
Merit: 899
🖤😏
Well I know all the things you said, I just wanted the cost of check encoding in computing units. And the information about the 69 position of your ancestors sperms was uncalled for. Lol.
member
Activity: 194
Merit: 14
Hi, I'm here again with more questions, appreciate the answer. Isn't it faster to search for RIPEMD-160 instead of address?

Correct. Searching directly for RIPEMD-160 is slightly faster because it skips the base58 encoding. But it doesn't really boost the speed a lot. So i would say it doesn't matter that much.

Let's take an example:

The Bitcoin Address 16UwLL9Risc3QfPqBUvKofHmBQ7wMtjvM is the same as 010966776006953D5567439E5E39F86A0D273BEE.

The first one is the base58 encoded, and the second one is the RIPEMD-160. They're actually the same but in different view and shape. They're always both 160 bits too. 40-HEX x 4 = 160 bits. And you can always convert the RIPEMD-160 to base58, and base58 back to RIPEMD-160.

You can create as well a fun valid Bitcoin Burner Address. 1ELonMuskTrashAndHasNobrainyzXpEm =  0285F0F3222B4F2DB6F7B0EA4BD1B1D53A7D4852. They're both valid but obviously no one has its privates keys for this address. You can get its private key after bruteforcing about 2^160 addressess, which is older than the sperms of my 2^69 grand grand fathers. Keep in mind too, an Bitcoin Address is always valid as long as its RIPEMD-160 is 40 Hexadecimal characters.

BUT You only skip the base58 encoding. You still need to perform the steps that are needed for bruteforcing in order to get the wanted RIPEMD-160 if you search by skipping base58.

HexPrivateKey => SHA256 of PubKey => RIPEMD-160 of PubKey's Hash
copper member
Activity: 1330
Merit: 899
🖤😏
Hi, I'm here again with more questions, appreciate the answer. Isn't it faster to search for RIPEMD-160 instead of address? Or the check encoding of hash 160 to address doesn't require any computation
full member
Activity: 1232
Merit: 242
Shooters Shoot...
Quote
@OP, 2^160 uncompressed, 2^160 compressed is equal to 2^161 total addresses.
Ummmm, thanks LOL. When did I say it wasn't?

But that doesn't add up with the number of possible private keys, maybe we are discussing over some precision calculations. Haven't found a provable answer to my questions yet. These ideas keep me up at nights, among other stuff.🤣
I am not sure what doesn't add up. You are just adding numbers of addresses not necessarily different addresses.

2^256 uncompressed, 2^256 compressed is equal to 2^257 total addresses. What is their not to understand or what doesn't add up?

Now if you want to get into theory, then 2^161 addresses would contain, each possible address, twice.
copper member
Activity: 1330
Merit: 899
🖤😏
Quote
@OP, 2^160 uncompressed, 2^160 compressed is equal to 2^161 total addresses.
Ummmm, thanks LOL. When did I say it wasn't?

But that doesn't add up with the number of possible private keys, maybe we are discussing over some precision calculations. Haven't found a provable answer to my questions yet. These ideas keep me up at nights, among other stuff.🤣
full member
Activity: 1232
Merit: 242
Shooters Shoot...
Quote
@OP, 2^160 uncompressed, 2^160 compressed is equal to 2^161 total addresses.
Ummmm, thanks LOL. When did I say it wasn't?
copper member
Activity: 1330
Merit: 899
🖤😏
Wow guys, so knowledgable people around here. But I have discovered there are only 2^160 valid addresses. If the number of un/compressed addresses are equal, meaning half of each, then we should have 2^48 valid private keys for each address. Though there is a possibility of 2^128 uncompressed addresses with 2^64 valid private keys for each and having 2^32 compressed with 2^32 valid private keys for each address. In total 2^160 add, 2^256 Private keys. Then compressed addresses in theory should be safer to use.

I think I just invented a new algorithm Lol.


I don't know if any of the above measures are correct.
Let's move on to other measures, Since I'm a newbie to math. Lol

Does anyone know the probability of finding several private keys for one address? I couldn't quantify the probable outcome, In order to find them, you'd have to divide 2^96 and spread it throughout the whole 2^256 range? And then start scratching the surface. Stay tuned for my future discoveries. 😉

@OP, 2^160 uncompressed, 2^160 compressed is equal to 2^161 total addresses.
full member
Activity: 706
Merit: 111
Hi dev, I didn't get my answer elsewhere.
So I deleted my post on another topic and reposting it here.

Does anyone know how many of 2^160 addresses are uncompressed? How many compressed. Is it correct to assume that there are 2^128(compressed)×2^32(uncompressed) addresses?  Whatever the correct answer is. Could we just search in 160 bit range for both un/compressed addresses with only half the performance while searching in 256 bit range is exponentially harder?

2^80 compressed addresses * 2^80 uncompressed addresses = 2^160 addresses

2^128 compressed addresses * 2^128 uncompressed addresses = 2^256 addresses
Pages:
Jump to: