Bitcoin Forum
June 17, 2024, 10:38:02 AM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1] 2 »  All
  Print  
Author Topic: WifSolverCuda - new project for solving WIFs on GPU  (Read 1219 times)
PawGo (OP)
Legendary
*
Offline Offline

Activity: 952
Merit: 1367


View Profile
January 19, 2022, 07:48:26 PM
Last edit: January 24, 2022, 03:54:23 PM by PawGo
Merited by ABCbits (73), OmegaStarScream (12), malevolent (10), Welsh (10), hugeblack (10), Quickseller (5), LeGaulois (5), Halab (2), albert0bsd (2), BitMaxz (1), SFR10 (1), khaled0111 (1), dkbit98 (1), digaran (1)
 #1

Hello

It took me a long time to start, but I hope that now, after the first step it will be much easier. Motivated by topic https://bitcointalk.org/index.php?topic=5380095.msg58913560#msg58913560 I decided to start migrating my CPU WifSolver into GPU.
And here it is: https://github.com/PawelGorny/WifSolverCuda

I will not repeat description from ReadMe file because all the important information are there - and it is easier to update one place.

Currently it covers only needs of the aforementioned topic (and similar).
Yes, yes I know... It is a long way to Tipperary. Code maybe does not look beautiful, lot of libraries (anyway JLP rulez), but it WORKS! Probably some CUDA masters will know how to improve it - please let me know any of your ideas. I may also say that it was a painful journey in time for me, as I did not use c++ for years. But finally I am happy the first step is done.
And - what is the most important - it is the solution for the cases which cannot be solved with BitCrack (stride collides with checksum). And it is slightly faster than BitCrack - at least for the cases I tested. As it is CUDA - sky is the limit if you know how to configure a given program for your card.

TODO list is long, if you have any ideas, requests - let me know, here or on github.


edit
v 0.3.1

I have added worker for compressed address and improved general performance.
Now it is possible to work on WIFs with missing characters at the beginning (static checksum, param: -checksum) and in the middle (checksum changed by stride).
It looks like my algorithm is almost twice as fast as BitCrack, at least for the cases where BitCrack could be used.
(On my card I had 690MKeys on regular Bitcrack and 790MKeys on patched versions, my WifSolver produces 1300MKeys. For compressed WIFs where missing characters are in the middle and compression flag is impacted, speed is around 3600MKeys).


edit
v 0.4.3

I have added a small helper - WIF decoder.
Some minor changes in algorithm and program itself, performance improved, especially for compressed keys with missing characters in the middle (x3 faster now, 10.000 MKeys on my test machine, solving 19*6 missing characters in 1:10 min).
Added Makefile for linux builds.

PawGo (OP)
Legendary
*
Offline Offline

Activity: 952
Merit: 1367


View Profile
April 04, 2022, 03:20:02 PM
Last edit: April 07, 2022, 12:47:17 PM by PawGo
Merited by hugeblack (10)
 #2

update:

v 0.4.7
I have improved memory management, now default configuration for single rtx3090 uses less than 100MB of RAM. previous it was more than 900MB  

In the meantime I have added progress indicator, resume from status file and some other minor changes.

v 0.4.8
Support for segwit/p2sh addresses

v 0.5.0
I have changed the way how memory/data transfer is managed and if it is possible I use memory from host. It should not be a problem, even for sets with 4-8 cards on one host. Speed is improved up to 10%, but still it is good to play with number of blocks/threads/steps processed per thread.
On 3080Ti I process around 4000 MKey/s for WIF with missing beginning, I think it is a good result.

v0.5.2
I have prepared a new release, 0.5.2, it could be mini-mini-minimally better, as I decreased some unnecessary latency. But displayed speed probably will be lower - what was until now was a bit too optimistic (I was dividing work done by full seconds, when I divide by miliseconds result is closer to reality). On 3080ti I see speed +-3.830, but now we see it fluctuates every time is displayed - in old version it was 4.096 all the time.
There is also a new parameter "-v" - verbose output - to display WIF processed in status line - but as it is extra work, it slows down the process (not much but still).
And 2 new parameters "-wifStart -wifEnd" for automatic conversion of provided WIF to range start/end

v0.5.3
https://github.com/PawelGorny/WifSolverCuda/releases/tag/v0.5.3

Added support for P2WPKH addresses (bc1...)
PawGo (OP)
Legendary
*
Offline Offline

Activity: 952
Merit: 1367


View Profile
September 29, 2022, 02:17:33 PM
Last edit: November 10, 2022, 01:18:12 PM by PawGo
Merited by hugeblack (10)
 #3

update:

Except one minor change whish I did not announce before (support for Segwit 3...) addresses, today I have release a new version:

v0.6.0
Added multi-gpu support, using parameter "-d all" program runs on all the available CUDA devices, so it is not necessary to split work manually anymore.

v0.6.1

v0.6.2
support for search for multiple addresses (list of addresses loaded from the file)
https://github.com/PawelGorny/WifSolverCuda/releases/tag/v0.6.2
PawGo (OP)
Legendary
*
Offline Offline

Activity: 952
Merit: 1367


View Profile
January 25, 2023, 01:18:54 PM
 #4


I have a device with a 3.2 CCAP, it's nvidia geforce 920mx (GPU) with an intel integrated GPU. How can I change cuda settings in VS? Or do I need to install an older version of cuda? I currently have version 12.

Isn't there a way to automate these configs? Why do open source programs have these manual configurations?

Lol too many questions, appreciate the respond.

I am afraid in cuda 12 ccap 3.2 has been already removed, you probably need older cuda toolkit. In their release notes they wrote 3.5 and 3.7 (kepler) are abandoned, so I assume 3.2 is abandoned too (but you need to double check).

You may change that parameter in Makefile (if you build for Linux) or in Visual Studio project settings.
digaran
Copper Member
Hero Member
*****
Offline Offline

Activity: 1330
Merit: 899

🖤😏


View Profile
January 26, 2023, 12:00:29 AM
 #5

Thank you for your time, I ran a device query and apparently my cuda cap is 5.0, however after running the program returned a kernel launch failed : no kernel image on device, any advice? I'm new to this stuff.

Ps, I'll send a tip when I find my 1+ bitcoin address.😉

🖤😏
PawGo (OP)
Legendary
*
Offline Offline

Activity: 952
Merit: 1367


View Profile
January 26, 2023, 09:19:24 AM
 #6

Thank you for your time, I ran a device query and apparently my cuda cap is 5.0, however after running the program returned a kernel launch failed : no kernel image on device, any advice? I'm new to this stuff.

I have prepared a Windows build for compute cap 5.0 (cuda 11.Cool, try now:
https://github.com/PawelGorny/WifSolverCuda/releases/tag/v0.6.2
digaran
Copper Member
Hero Member
*****
Offline Offline

Activity: 1330
Merit: 899

🖤😏


View Profile
January 26, 2023, 11:09:53 AM
 #7

Thank you for your time, I ran a device query and apparently my cuda cap is 5.0, however after running the program returned a kernel launch failed : no kernel image on device, any advice? I'm new to this stuff.

I have prepared a Windows build for compute cap 5.0 (cuda 11.Cool, try now:
https://github.com/PawelGorny/WifSolverCuda/releases/tag/v0.6.2

WOW, I'm really amazed by the performance, I used another tool and got 28MK/s with GPU use: 0, and now I'm using your tool with 450MK/s Also GPU use: 0%. either the speed shown is incorrect or I have a special system.
Why is it when I set -restore it shuts down? I tried it at the end of the command line and at the start, didn't work. Are you aware of finderouter that has an UI? Would that be possible to use his UI on your tool or not?

One thing though I couldn't quite figure out how to set my WIF with missing chars, calculating stride etc, which is something I should work on by myself.

Thank you man, your job is superb.

🖤😏
PawGo (OP)
Legendary
*
Offline Offline

Activity: 952
Merit: 1367


View Profile
January 26, 2023, 03:22:25 PM
 #8

One thing though I couldn't quite figure out how to set my WIF with missing chars, calculating stride etc, which is something I should work on by myself.

It depends where your missing characters are, program will not work if you have missing end. See /docs folder, examples and how to find stride.
WanderingPhilospher
Full Member
***
Offline Offline

Activity: 1078
Merit: 219

Shooters Shoot...


View Profile
January 26, 2023, 04:53:57 PM
 #9

Thank you for your time, I ran a device query and apparently my cuda cap is 5.0, however after running the program returned a kernel launch failed : no kernel image on device, any advice? I'm new to this stuff.

I have prepared a Windows build for compute cap 5.0 (cuda 11.Cool, try now:
https://github.com/PawelGorny/WifSolverCuda/releases/tag/v0.6.2

WOW, I'm really amazed by the performance, I used another tool and got 28MK/s with GPU use: 0, and now I'm using your tool with 450MK/s Also GPU use: 0%. either the speed shown is incorrect or I have a special system.
Why is it when I set -restore it shuts down? I tried it at the end of the command line and at the start, didn't work. Are you aware of finderouter that has an UI? Would that be possible to use his UI on your tool or not?

One thing though I couldn't quite figure out how to set my WIF with missing chars, calculating stride etc, which is something I should work on by myself.

Thank you man, your job is superb.

Quote
I used another tool and got 28MK/s with GPU use: 0, and now I'm using your tool with 450MK/s Also GPU use: 0%. either the speed shown is incorrect or I have a special system.
Lol...you can't compare apples and oranges. And when you never show your settings/command line, it makes it harder to help you without having to ask you 10 questions to understand what you are doing wrong.
Everyone on here usually is willing to help, up to a point...
Also, I do not know what you are looking at when talking about GPU usage...apparently you are not looking at a program that tells you what your GPU is actually doing.
digaran
Copper Member
Hero Member
*****
Offline Offline

Activity: 1330
Merit: 899

🖤😏


View Profile
January 26, 2023, 07:45:56 PM
 #10

when you never show your settings/command line, it makes it harder to help you without having to ask you 10 questions to understand what you are doing wrong.
Since you insist 😀 here, I'm testing puzzle 153. What am I doing wrong?

Code:
Desktop\WIF>wifsolver.exe -restore filestatus.txt -c -stride 1520000000 -rangestart 100000000000000000000000000000000000000 -rangeend 1ffffffffffffffffffffffffffffffffffffff -a 18192XpzzdDi2K11QVHR7td2HcPS6Qs5vg
WifSolver 0.6.2


KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9Mr4DWxM4mCemQa
-rangeStartInit=800000000000000000000000000000000000000000000000000000000000000001014671FC3F
-rangeStart=800000000000000000000000000000000000000000000000000000000CF3D73599014671FC3F
-rangeEnd=80FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD036414101271AA03F
-stride=1520000000
-a=18192XpzzdDi2K11QVHR7td2HcPS6Qs5vg
-checksum=
-c
-b=16
-t=640
-s=5000

Lol, I know I'm looking in a wrong place though.

🖤😏
WanderingPhilospher
Full Member
***
Offline Offline

Activity: 1078
Merit: 219

Shooters Shoot...


View Profile
January 27, 2023, 01:15:24 AM
 #11

when you never show your settings/command line, it makes it harder to help you without having to ask you 10 questions to understand what you are doing wrong.
Since you insist 😀 here, I'm testing puzzle 153. What am I doing wrong?

Code:
Desktop\WIF>wifsolver.exe -restore filestatus.txt -c -stride 1520000000 -rangestart 100000000000000000000000000000000000000 -rangeend 1ffffffffffffffffffffffffffffffffffffff -a 18192XpzzdDi2K11QVHR7td2HcPS6Qs5vg
WifSolver 0.6.2


KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9Mr4DWxM4mCemQa
-rangeStartInit=800000000000000000000000000000000000000000000000000000000000000001014671FC3F
-rangeStart=800000000000000000000000000000000000000000000000000000000CF3D73599014671FC3F
-rangeEnd=80FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD036414101271AA03F
-stride=1520000000
-a=18192XpzzdDi2K11QVHR7td2HcPS6Qs5vg
-checksum=
-c
-b=16
-t=640
-s=5000

Lol, I know I'm looking in a wrong place though.

You would have to actually know a partial of the actual WIF to use this program.
Or at least that's what it seems.
Also, the speed...I am not sure what it is measuring but it is not accurate to me, unless I misunderstand it.
If it is checking 87,000,000,000 keys per second, then this should have solved before it started.
Unless it is checking WIFs and checksums, which could be accurate then.
What I am saying is, it is not checking a private key, like Bitcrack or VBCr does. And in cases where the characters are missing from the end, this is not the fastest program to use.
I ran a test with a known 40 bit key...I removed 7 characters from the end (for quickness), and used a stride of 1.
It found the key in 31 seconds...which is good, but other programs could find this in under a second.
The money for this program is when you are missing characters in the middle and you know the checksum, or have the last x many characters of the wif.
But I know you need a partial of the WIF, and it seems like in the middle is the best...

I do not know if you can use rangestart and end as you have it, let me check real quick...no, you can not, you must use the range like:

Code:
-rangeStart 80000000000000000000000000000000000000000000000000000000e9ae4933d4693f8c6500 -rangeEnd 80000000000000000000000000000000000000000000000000000000e9ae4933d66b55a90f7f

Lastly, your stride is based on the last character (from the right) of the WIF you are looking for. If you have no WIF then you can't know what it needs to be.


Test with missing characters at the end:
Code:
wifcuda>WifSolverCuda -c -wifStart KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9aFJuCJD1111111 -stride 1 -wifEnd KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9aFJuCJDzzzzzzz -a 1EeAxcprB2PpCnr34VfZdFrkUWuxyiNEFv
WifSolver 0.6.2

Use parameter '-h' for help and list of available parameters

Using GPU nr 0:
NVIDIA GeForce GTX 1660 Ti (24 procs)
maxThreadsPerBlock: 1024

Range start: 80000000000000000000000000000000000000000000000000000000E9AE4933D4693F8C6500
Range end  : 80000000000000000000000000000000000000000000000000000000E9AE4933D66B55A90F7F
Stride     : 1
Target     : 1EeAxcprB2PpCnr34VfZdFrkUWuxyiNEFv
Target COMPRESSED

number of blocks: 192
number of threads: 640
number of checks per thread: 5000

Work started at Thu Jan 26 16:59:10 2023
 87.649 GKey/s,  progress: 70.790%
found: 1EeAxcprB2PpCnr34VfZdFrkUWuxyiNEFv
key  : E9AE4933D6
WIF  : KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9aFJuCJDo5F6Jm7

Work finished at Thu Jan 26 16:59:41 2023

I am sure OP can explain better/more than me...but you need to have partial WIF to really use this program.
PawGo (OP)
Legendary
*
Offline Offline

Activity: 952
Merit: 1367


View Profile
January 27, 2023, 07:57:44 AM
 #12

It depends where your missing characters are, program will not work if you have missing end. See /docs folder, examples and how to find stride.

I do not know how to tell it simpler. People just do not read or do not understand (or understand only the part they want).

That program if NOT FOR PUZZLE SOLVING. It will not work.

digaran
Copper Member
Hero Member
*****
Offline Offline

Activity: 1330
Merit: 899

🖤😏


View Profile
January 27, 2023, 09:48:07 AM
 #13

It depends where your missing characters are, program will not work if you have missing end. See /docs folder, examples and how to find stride.


I do not know how to tell it simpler. People just do not read or do not understand (or understand only the part they want).

That program if NOT FOR PUZZLE SOLVING. It will not work.


But I managed to get it to work, I'm searching my desired start/end ranges, unless your tool doesn't search all the private keys to find the target address.
Also I got a problem, my speed/ performance has a drastic chane, it goes up to 6 Gkey/s and suddenly drops down to 60 Mkeys/s minutes by minutes.

I was also wondering if I change my wifstart and remove 10 chars to replace them with 1, then if I set wifend with 15 chars removed and replaced with z, then I can tweak the end key range to a value of my desire, if all the 10 chars in wifstart process and result in no match then those 5 extra z's on wifend start changing to find my key if it's there. And consequently my wifstart not missing characters will also start to change, even though I didn't change them at all. Did you know about this or is it a bug?

🖤😏
PawGo (OP)
Legendary
*
Offline Offline

Activity: 952
Merit: 1367


View Profile
January 27, 2023, 09:50:53 AM
 #14

It depends where your missing characters are, program will not work if you have missing end. See /docs folder, examples and how to find stride.
I do not know how to tell it simpler. People just do not read or do not understand (or understand only the part they want).

That program if NOT FOR PUZZLE SOLVING. It will not work.

But I managed to get it to work.

It's like using butter as a hammer.

digaran
Copper Member
Hero Member
*****
Offline Offline

Activity: 1330
Merit: 899

🖤😏


View Profile
January 27, 2023, 10:30:51 AM
 #15

It depends where your missing characters are, program will not work if you have missing end. See /docs folder, examples and how to find stride.
I do not know how to tell it simpler. People just do not read or do not understand (or understand only the part they want).

That program if NOT FOR PUZZLE SOLVING. It will not work.

But I managed to get it to work.

It's like using butter as a hammer.


I'm a puzzle hunter, when I see brute force/ key finder/ cracker, I lose my control.😆 I do love what you done, my only problem is the rapid change in speed as I mentioned above. Seems too unstable jumping from 6 billion keys down to 60 million keys is some kind of design flaw maybe? I don't know really. Your work is appreciated.

🖤😏
WanderingPhilospher
Full Member
***
Offline Offline

Activity: 1078
Merit: 219

Shooters Shoot...


View Profile
January 27, 2023, 12:09:05 PM
 #16

It depends where your missing characters are, program will not work if you have missing end. See /docs folder, examples and how to find stride.

I do not know how to tell it simpler. People just do not read or do not understand (or understand only the part they want).

That program if NOT FOR PUZZLE SOLVING. It will not work.


Technically, it does work when missing characters are at the end Smiley

I understand what you are saying though. Sometimes it's like getting a new shiny toy and you want to play with it before reading care, maintenance, instructions lol.

I understand how to use the program, I was answering their questions.

However, could you elaborate on the speed? What is the speed calculating?

Quote
But I managed to get it to work, I'm searching my desired start/end ranges, unless your tool doesn't search all the private keys to find the target address.

How did you get it to work? The settings/flags you posted, will not work with this program, period. Please explain.

GR Sasa
Member
**
Offline Offline

Activity: 179
Merit: 14


View Profile
February 28, 2023, 07:27:53 AM
 #17

Hello @PawGo,

There's a diary that has a missing 12 WIF private key character and holds 500 BTC, $11Million. Do you think that this challenge a legit one? 1PfNh5fRcE9JKDmicD2Rh3pexGwce1LqyU

I'm just wondering because this challenge has been going around for months now. I doubt it.

A Russian user named @phrutis is currently the only one who's running the challenge with a bruteforce pool.
digaran
Copper Member
Hero Member
*****
Offline Offline

Activity: 1330
Merit: 899

🖤😏


View Profile
February 28, 2023, 02:32:04 PM
 #18

Hello @PawGo,

There's a diary that has a missing 12 WIF private key character and holds 500 BTC, $11Million. Do you think that this challenge a legit one? 1PfNh5fRcE9JKDmicD2Rh3pexGwce1LqyU

I'm just wondering because this challenge has been going around for months now. I doubt it.
Last 12 characters or in the middle? Post the key for everyone to see. You won't get any where alone.😉

🖤😏
GR Sasa
Member
**
Offline Offline

Activity: 179
Merit: 14


View Profile
March 01, 2023, 10:01:02 AM
Last edit: March 01, 2023, 10:15:45 AM by GR Sasa
 #19

Last 12 characters or in the middle? Post the key for everyone to see. You won't get any where alone.😉

Hello digaran, i am not running from anyone. This is a challenge has been running for almost a year by a russian person named phrutis.

Look his github, he has already a pool Splitting ranges running to try to solve, but the real question is, no body knows if thats even a legit challenge and most likely it will be fake.

For more info look here: https://github.com/phrutis/wif500


The known private key of the 500 BTC is 5bCRZhiS5sEGMpmcRZdpAhmWLRfMmutGmPHtjVob. 12 characters missing in the beginning of the private key which makes it even harder because of checksums.


Keep in ming again, this is not sure thats this is a legit challenge. Most probably a lie to waste time. Goodluck!
WanderingPhilospher
Full Member
***
Offline Offline

Activity: 1078
Merit: 219

Shooters Shoot...


View Profile
March 01, 2023, 04:26:29 PM
 #20

Last 12 characters or in the middle? Post the key for everyone to see. You won't get any where alone.😉

Hello digaran, i am not running from anyone. This is a challenge has been running for almost a year by a russian person named phrutis.

Look his github, he has already a pool Splitting ranges running to try to solve, but the real question is, no body knows if thats even a legit challenge and most likely it will be fake.

For more info look here: https://github.com/phrutis/wif500


The known private key of the 500 BTC is 5bCRZhiS5sEGMpmcRZdpAhmWLRfMmutGmPHtjVob. 12 characters missing in the beginning of the private key which makes it even harder because of checksums.


Keep in ming again, this is not sure thats this is a legit challenge. Most probably a lie to waste time. Goodluck!
I don't know about the WIF 500; you have to trust they have the correct remaining characters AND if phrutis would share the reward, if found.

However, his other repo, is a little scammy to me and that is why I would not trust him.

He is basically trying to sell public keys from older addresses, which anyone can find via the blockchain. But the part that is scammy is him claiming,
Quote
With the public key, you can quickly find the private key using the Kangaroo BSGS program.
This does not require 1000 cards, just one (several) cards and a little time. The search time depends on the task.

So basically he is saying, hey, spend 500 dollars and buy these public keys and you can find them easy with just one or two GPUs.

I am ok with him selling public keys so others don't have to do the work (but it's not much work, just automated process using python), but his selling point (quickly find the private key...) is a red flag. Just my opinion.
Pages: [1] 2 »  All
  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!