Author

Topic: Vanitygen: Vanity bitcoin address generator/miner [v0.22] - page 141. (Read 1153383 times)

newbie
Activity: 24
Merit: 0
Hello,

I've created workaround for buggy 13.x catalyst driver, needs some testing though (especially the miner and win32).

For the impatient:
linux:
Code:
$ git clone https://github.com/wyuzhe/vanitygen.git
$ cd vanitygen
$ make oclvanitygen
$ ./oclvanitygen -vv -D x:y 1Blah

In case you get odd output like:
Code:
Match idx: 0
CPU hash: 0ecfec41290a506e784a4521597213398abf9a98
GPU hash: 08e030855f47c3141a5808d8767a89562ec5c655
Found delta: 497669 Start delta: 1

It means the compiler backend is still outputting broken code (although it compiles). To fix that try:

Code:
./catalystwrap ./oclvanitygen -vv -D 0:0 1ov

Windows users can try applying the dll override script in the directory of official vanitygen binaries [edit: link with resulting archive removed due security concerns].

The gory details:

https://github.com/wyuzhe/vanitygen/commit/6f7fd04adc609b19520cdab4cc12d648e364adbe

In short, ATI LLVM-IR backend miscompiles stuff like:

Code:
uint x, b, c;
x += (a < b)

The boolean result of (a < b) is expressed as byte (u8 in crash report), but VLIW architectures know no such thing. Workaround is using artificially complex expressions which cannot be readily expressed as setcc in llvm ir (but will be optimized away during R600 lowering anyway).
newbie
Activity: 49
Merit: 0
How'd you figure out the functions that were causing it to crash?
I was more than clear in my post.

Anyway, I was still wrong. After talking on the #opencl channel on freenode, an OpenCL C compiler developer said that the issue is caused by incorrect instructions produced by the OpenCL compiler.

Need to borrow a shovel?
sr. member
Activity: 252
Merit: 250
Forgive me if this is a stupid post, but is vanitygen safe?

That is to say, are the keys that it generates always 100% working keys that can be imported into a Bitcoin client? Is there a chance of creating a "bad private key" from vanitygen, such that one cannot, for some reason, import said key into a wallet?

Go here, https://www.bitaddress.org , and select the "wallet details" option. Then put there the private key created by vanitygen (you can download the html-js code and create your own page, if you don't trust) and check it


Are the keys that are generated with vanitygen random enough, or at least as random as addresses generated with the standard Bitcoin client?


The second option (AFAIK from my last contact with the program)

Also, I am assuming that smarter folks than I have made sure that this little program doesn't create keys and then send them all back to the vanitygen creator or something else likewise nefarious, right?


The code is open for your revision.
legendary
Activity: 1862
Merit: 1011
Reverse engineer from time to time
Forgive me if this is a stupid post, but is vanitygen safe?

That is to say, are the keys that it generates always 100% working keys that can be imported into a Bitcoin client? Is there a chance of creating a "bad private key" from vanitygen, such that one cannot, for some reason, import said key into a wallet?

Are the keys that are generated with vanitygen random enough, or at least as random as addresses generated with the standard Bitcoin client?

Also, I am assuming that smarter folks than I have made sure that this little program doesn't create keys and then send them all back to the vanitygen creator or something else likewise nefarious, right?


The keys should be safe in terms of importing and should be cryptographically safe.

I've examined OpenSSL's code and saw that it creates a screenshot of the screen and uses that as seed, then it also uses CryptGenRandom for further seeding on Windows. You are free to seed it yourself as well.
hero member
Activity: 546
Merit: 500
Forgive me if this is a stupid post, but is vanitygen safe?

That is to say, are the keys that it generates always 100% working keys that can be imported into a Bitcoin client? Is there a chance of creating a "bad private key" from vanitygen, such that one cannot, for some reason, import said key into a wallet?

Are the keys that are generated with vanitygen random enough, or at least as random as addresses generated with the standard Bitcoin client?

Also, I am assuming that smarter folks than I have made sure that this little program doesn't create keys and then send them all back to the vanitygen creator or something else likewise nefarious, right?

legendary
Activity: 1862
Merit: 1011
Reverse engineer from time to time
How'd you figure out the functions that were causing it to crash?
I was more than clear in my post.

Anyway, I was still wrong. After talking on the #opencl channel on freenode, an OpenCL C compiler developer said that the issue is caused by incorrect instructions produced by the OpenCL compiler.
newbie
Activity: 49
Merit: 0
How'd you figure out the functions that were causing it to crash?
legendary
Activity: 1862
Merit: 1011
Reverse engineer from time to time
Pardon my abilities, but I think the error may come from the bignum implementation. At least, after removing the functions that cause it to crash, I started re-adding them, then I started to remove pieces of code from functions and ended up with an OK compile which led me to this theory.

To further support my theory, change this:
Code:
typedef struct {
bn_word d[BN_NWORDS];
} bignum;

to this

Code:
typedef struct {
bn_word d[0];
} bignum;

The program won't work correctly, but the calc_addr.cl kernel will compile.
legendary
Activity: 1792
Merit: 1008
/dev/null
the CPU is too bad for it Wink
sr. member
Activity: 476
Merit: 250
Keep it Simple. Every Bit Matters.
I'm sure some might find this funny, but has anyone tried this on a Raspberry Pi - vanitygen that is.
I got a little project going (My RPi will arrive soon) and it might be nice to have a few of my preferred bitcoin tools on there.

I don't expect fast results, I just wondered if anyone had done it.
legendary
Activity: 3472
Merit: 1722
I think he may return; last time he came back with a new version of vanitygen after 11 months of inactivity.
hero member
Activity: 504
Merit: 500
WTF???
hes inactive since a long time

Date Registered:   June 08, 2011, 10:59:48 PM
Last Active:   October 24, 2012, 03:59:55 PM
legendary
Activity: 1792
Merit: 1008
/dev/null
hes inactive since a long time
legendary
Activity: 1176
Merit: 1260
May Bitcoin be touched by his Noodly Appendage
Is samr7 still developing Vanitygen?
full member
Activity: 142
Merit: 100
1 BTC bounty for a fix for 13.x catalyst + vanitygen patch working, with source and builds for Linux, Windows, etc.

I will add 0.1 BTC to that.
legendary
Activity: 1862
Merit: 1011
Reverse engineer from time to time
With 13.2 beta drivers, it's impossible to run anything that has to do with OCL, I keep getting this error during the compilation of the .CL kernel(LLVM error and so on), which is the exact same error people are having here.

I would sure hope there is some workaround ASIDE from downgrading drivers, I honestly need these new drivers.
hero member
Activity: 504
Merit: 500
WTF???
But you guys have numbers mixed in too.

Make it ALL lower or upper only, with just the leading one Smiley

https://bitcointalksearch.org/topic/rare-address-hall-of-fame-90982

There is an all uppercase address, and I have these two

1odfsrirfbxtwjoviseqdnuixwvhsnPbJ       (longest lowercase prefix - owner: wtfvanity)
19279281759997344NJ2KMcdRZNVT5rHhq      (longest digit-only prefix  - owner: wtfvanity)

legendary
Activity: 1708
Merit: 1020
also single (lower) case addresses are much easier to tell over the phone:

vanitygen64.exe -r "^[a-z0-9_]*$"

-->  141zuyxnimmphjtow3ckrb4y7pswn56rmo
legendary
Activity: 1792
Merit: 1008
/dev/null
Addresses with 6 fixed characters are pretty common (K1773R owns 1K1773RbXRZVRQSSXe9N6N2MUFERvrdu6y), the odds are ~1/57billions
The odds of having an address with only upper case letters and digits is (36/62)^34 ~ 1/17billions
It's about 4 times quicker to find such an address than an address with 6 fixed characters. Far from impossible.
But the last characters are checksum.  Just because you can get all uppercase in what you go for vane doesn't mean you can get an all uppercase checksum as well.  Since a checksum is a hash, I doubt you can even calculate the odds on that...  Given the random nature of a hash, though, I doubt it can be proven impossible either.
as the last poster proofed it is possible, etotheipi has a only uppercase too Wink
legendary
Activity: 1708
Merit: 1020
 1P3H99S84AVNAV7UX4EY8BFUF6H4MQVFZE

 Grin

edit: nice tool.

In case you are wondering: This allows slightly leaner QR codes.

Jump to: