Author

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

newbie
Activity: 48
Merit: 0
Total noob question...sorry...

Is there a reason why a pattern can not use a lower case "L"?

I want to generate pattern 1Akula but get a message about it being an invalid character. 
hero member
Activity: 576
Merit: 500
example usage:

oclvanitygen -d 0 1JohnGalt

The number after the -d switch is the GPU device #
oops, yeah that's what I mean, updated my original post. all it outputs is CPU hash, GPU hash, and delta. Shouldn't it output address and privkey just like vanitygen64.exe does?
Let me guess, you're using an ATI 7xxx card? Oclvanitygen seems to be broken with 7xxx cards, and it produces incorrect results. Workaround is to use the -S command, but your speeds will be much slower (1/4 to 1/3 of the speed).

Yeah, 7950 Sad

Finally got around to giving it a try, you are correct the -S command fixed the issue while using my 7950 and just like you said, it was about 1/3 slower. Better then nothing I guess. Thanks!
hero member
Activity: 566
Merit: 500
Even then, I have not been able to get it to work. I get the same issue with my 5830. I'm not too worried now that I know its a "known" issue.

its fun to dump hundreds of thousands of addresses to a text file and search for cool things.
IIRC, older cards can have this issue fixed by using an older driver/SDK. 7xxx cards require newer drivers/SDK, so we don't have this option.

Yup, running 12.6 here. Explains a bit. It's my work rig, so I'm not worried about downgrading right now.
legendary
Activity: 952
Merit: 1000
Even then, I have not been able to get it to work. I get the same issue with my 5830. I'm not too worried now that I know its a "known" issue.

its fun to dump hundreds of thousands of addresses to a text file and search for cool things.
IIRC, older cards can have this issue fixed by using an older driver/SDK. 7xxx cards require newer drivers/SDK, so we don't have this option.
hero member
Activity: 576
Merit: 500
example usage:

oclvanitygen -d 0 1JohnGalt

The number after the -d switch is the GPU device #
oops, yeah that's what I mean, updated my original post. all it outputs is CPU hash, GPU hash, and delta. Shouldn't it output address and privkey just like vanitygen64.exe does?
Let me guess, you're using an ATI 7xxx card? Oclvanitygen seems to be broken with 7xxx cards, and it produces incorrect results. Workaround is to use the -S command, but your speeds will be much slower (1/4 to 1/3 of the speed).

Yeah, 7950 Sad
hero member
Activity: 566
Merit: 500
Even then, I have not been able to get it to work. I get the same issue with my 5830. I'm not too worried now that I know its a "known" issue.

its fun to dump hundreds of thousands of addresses to a text file and search for cool things.
legendary
Activity: 952
Merit: 1000
example usage:

oclvanitygen -d 0 1JohnGalt

The number after the -d switch is the GPU device #
oops, yeah that's what I mean, updated my original post. all it outputs is CPU hash, GPU hash, and delta. Shouldn't it output address and privkey just like vanitygen64.exe does?
Let me guess, you're using an ATI 7xxx card? Oclvanitygen seems to be broken with 7xxx cards, and it produces incorrect results. Workaround is to use the -S command, but your speeds will be much slower (1/4 to 1/3 of the speed).
hero member
Activity: 576
Merit: 500
example usage:

oclvanitygen -d 0 1JohnGalt

The number after the -d switch is the GPU device #

oops, yeah that's what I mean, updated my original post. all it outputs is CPU hash, GPU hash, and delta. Shouldn't it output address and privkey just like vanitygen64.exe does?
legendary
Activity: 916
Merit: 1003
example usage:

oclvanitygen -d 0 1JohnGalt

The number after the -d switch is the GPU device #
hero member
Activity: 576
Merit: 500
I got vanitygen64.exe working perfect, but I am confused as to how to use oclvanitygen. I type in oclvanitygen -d 0 address and it just shows this over and over:
CPU hash:
GPU hash:
Found delta: start delta:

It never outputs address or privkey. Am I doing something wrong?
full member
Activity: 125
Merit: 100
Apparently these are valid namecoin addresses, but with a leading byte of 53 (see here). Furthermore, there are a bunch of second characters that require the leading byte to be 54. The wiki page shows that namecoin addresses that start with N can have a leading byte of 52, 53, or 54. Does anyone know the math to figure out which one to use? Is it actually valid to have a namecoin address with a leading byte other than 52?

My vanitypool code uses something like this to check the required network byte for a given prefix and will return an error to the submitter if the network byte specified doesn't match.  Not sure it's the most elegant way to do it and there may be some strange edge cases for very short prefixes but in general it does what it is supposed to.

Code:
sub prefix_version{my $x=shift(@_);
  @bb=(1..9,'A'..'H','J'..'N','P'..'Z','a'..'k','m'..'z');
  while(length($x)<34){$x.="2";}
  my $ox=$x;my $n=Math::BigInt->new(0);
  my $i=Math::BigInt->new(0);while($x){my $c=chop($x);
    my $cp=0;while($bb[$cp] ne $c && $cp<=$#bb){$cp++;}
    $n+=$cp*(58**$i);$i++;
  }$i=$n->as_hex();$i=substr($i,2);
  $x=reverse($ox);my $c=chop($x);while($c eq '1'){$c=chop($x);$i="00".$i;}
  if(length($i)%2==1){$i="0".$i;}
  my $ver=substr($i,0,2);return hex($ver);
}

Code:
mskwik@mskwik ~/script/bitcoin $ perl
print prefix_version('NPhaux')."\n";
53
legendary
Activity: 1512
Merit: 1036
Device: Intel(R) HD Graphics 4000
..
clBuildProgram: CL_BUILD_PROGRAM_FAILURE
Build log:
:173:19: error: __constant variables are required to be initialized
__constant bignum bn_zero;
                  ^
1 diagnostic generated.

error: front end compiler failed build.
Available OpenCL platforms:
0: [Intel(R) Corporation] Intel(R) OpenCL
  0: [Intel(R) Corporation] Intel(R) HD Graphics 4000

Intel compiler, for a GPU slower than a CPU will be. It doesn't seem to recognize that bignum is being initialized to the value of bn_zero. I would try installing a newer Intel OpenCL SDK and see if it understands code that works fine on AMD. Otherwise vanitygen would need to be altered (de-optimized) to support a GPU platform no Bitcoin miner would be using.
legendary
Activity: 1512
Merit: 1036
[The wiki page shows that namecoin addresses that start with N can have a leading byte of 52, 53, or 54. Does anyone know the math to figure out which one to use? Is it actually valid to have a namecoin address with a leading byte other than 52?

You are reading the table wrong. The network ID byte value of Namecoin is 52, and only 52. Another ID would indicate another alt-coin. The "NPhaux" address example would only be a valid address on some yet-uncreated bitcoin-like currency.

Does that apply to any address with a leading byte not equal to 52?
The main Bitcoin network ID byte is 00h, which is special, because leading 00 bytes in addresses are directly encoded as a "1" and not put through Base58 encoding. This is why all Bitcoin addresses start with "1", but other alternate coins may have more than one possible first character and have stranger "impossible" ranges of Base58 leading characters.

Full 34-character Bitcoin addresses can start with 12.. to 1QLB... due to a similar "possible outputs" situation. A hash starting with several 0000 bits can create a smaller valued 33-character Bitcoin address, which may start with "1"+"any Base58" characters (but is 59x harder to find). If the first complete byte of the hash component is also 00000000b, then the special direct-encoding technique makes the address start with 11.
hero member
Activity: 720
Merit: 525
Something might be wrong in vanitygen, the following (namecoin) combinations don't work:
Na, Nb, Nc, Nd, Ne, Nf, Ng, Nh, Ni, Nj, Nk, Nm, Nn, No, Np, Nq, Nr, Ns, Nt, Nu, Nv, Nw, Nx, Ny, Nz, NL, NM, NN, NP, NQ, NR, NS, NT, NU, NV, NW, NX, NY, NZ

but the rest do - this is probably a bug in vanitygen, i'll report it


Is there any update on this bug? Vanitygen won't generate addresses that start with the combinations listed above.

I don't know that it's a bug, more likely that there are no possible values of raw binary Namecoin addresses that will convert into a Base58 address that starts with these characters. The underlying data of a Namecoin address must start with a network ID of 00110100 (binary) + hash. This means that the range of inputs to the Base58 converter can only go from 0011010000000000... to 0011010011111111...

You can search or explore the namecoin block explorer and likely see that there are no examples of these "nonworking" addresses, a less lazy person than me could actually do the math and describe the possible Base58 address ranges.

Apparently these are valid namecoin addresses, but with a leading byte of 53 (see here). Furthermore, there are a bunch of second characters that require the leading byte to be 54. The wiki page shows that namecoin addresses that start with N can have a leading byte of 52, 53, or 54. Does anyone know the math to figure out which one to use? Is it actually valid to have a namecoin address with a leading byte other than 52?

EDIT: No, it's not valid:
Code:
$ namecoind validateaddress NPhauxDmxGJfKSAJmAnZBLH9mhrKY5BALv
{
    "isvalid" : false
}
Does that apply to any address with a leading byte not equal to 52?
legendary
Activity: 2912
Merit: 1060
I have a bug


Device: Intel(R) HD Graphics 4000
Vendor: Intel(R) Corporation (8086)
Driver: 9.17.10.2875
Profile: FULL_PROFILE
Version: OpenCL 1.1
Max compute units: 16
Max workgroup size: 512
Global memory: 1568669696
Max allocation: 392167424
OpenCL compiler flags: -DDEEP_PREPROC_UNROLL
Compiling kernel, can take minutes...vg_ocl_context_callback error: Build progra
m failure.
failure.
clBuildProgram: CL_BUILD_PROGRAM_FAILURE
Build log:
:173:19: error: __constant variables are required to be initialized
__constant bignum bn_zero;
                  ^
1 diagnostic generated.

error: front end compiler failed build.
Available OpenCL platforms:
0: [Intel(R) Corporation] Intel(R) OpenCL
  0: [Intel(R) Corporation] Intel(R) HD Graphics 4000
sr. member
Activity: 342
Merit: 250
Something might be wrong in vanitygen, the following (namecoin) combinations don't work:
Na, Nb, Nc, Nd, Ne, Nf, Ng, Nh, Ni, Nj, Nk, Nm, Nn, No, Np, Nq, Nr, Ns, Nt, Nu, Nv, Nw, Nx, Ny, Nz, NL, NM, NN, NP, NQ, NR, NS, NT, NU, NV, NW, NX, NY, NZ

but the rest do - this is probably a bug in vanitygen, i'll report it


Is there any update on this bug? Vanitygen won't generate addresses that start with the combinations listed above.

I don't know that it's a bug, more likely that there are no possible values of raw binary Namecoin addresses that will convert into a Base58 address that starts with these characters. The underlying data of a Namecoin address must start with a network ID of 00110100 (binary) + hash. This means that the range of inputs to the Base58 converter can only go from 0011010000000000... to 0011010011111111...

You can search or explore the namecoin block explorer and likely see that there are no examples of these "nonworking" addresses, a less lazy person than me could actually do the math and describe the possible Base58 address ranges.

You're right, I looked around and I couldn't find any addresses that started with these combinations. Seems N followed by a lower case letter or an upper case letter after K is a no-go. There's currently a request on a vanity pool for NPhaux which apparently is impossible to fulfill.
legendary
Activity: 1512
Merit: 1036
Something might be wrong in vanitygen, the following (namecoin) combinations don't work:
Na, Nb, Nc, Nd, Ne, Nf, Ng, Nh, Ni, Nj, Nk, Nm, Nn, No, Np, Nq, Nr, Ns, Nt, Nu, Nv, Nw, Nx, Ny, Nz, NL, NM, NN, NP, NQ, NR, NS, NT, NU, NV, NW, NX, NY, NZ

but the rest do - this is probably a bug in vanitygen, i'll report it


Is there any update on this bug? Vanitygen won't generate addresses that start with the combinations listed above.

I don't know that it's a bug, more likely that there are no possible values of raw binary Namecoin addresses that will convert into a Base58 address that starts with these characters. The underlying data of a Namecoin address must start with a network ID of 00110100 (binary) + hash. This means that the range of inputs to the Base58 converter can only go from 0011010000000000... to 0011010011111111...

You can search or explore the namecoin block explorer and likely see that there are no examples of these "nonworking" addresses, a less lazy person than me could actually do the math and describe the possible Base58 address ranges.
sr. member
Activity: 342
Merit: 250
Using vanitygen, vanitygen64, or oclvanitygen, I get an error saying something like "valid namecoin addresses start with M or N" when I try NP followed by anything. However if I just try N, M, or N followed by a few random keys I tried (like 1 and x I think along with a few others) I can generate a Namecoin address. Using oclvanityminer doesn't even attempt to mine the namecoin address at all it seems.

Mining something that's 7812 times as profitable as regular bitcoin mining is turning out to be too good to be true.

Something might be wrong in vanitygen, the following combinations don't work:
Na, Nb, Nc, Nd, Ne, Nf, Ng, Nh, Ni, Nj, Nk, Nm, Nn, No, Np, Nq, Nr, Ns, Nt, Nu, Nv, Nw, Nx, Ny, Nz, NL, NM, NN, NP, NQ, NR, NS, NT, NU, NV, NW, NX, NY, NZ

but the rest do - this is probably a bug in vanitygen, i'll report it

Code:
for charact in 1 2 3 4 5 6 7 8 9 0 a b c d e f g h i j k l m n o p q r s t u v w x y z A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
do
./vanitygen -N N$charact 2>> test.txt
done

Is there any update on this bug? Vanitygen won't generate addresses that start with the combinations listed above.
hero member
Activity: 784
Merit: 1000
0xFB0D8D1534241423
when using the -P option, vanitygen wants to know the public key in hex format after the -P, and specifying only the bitcoin address is not sufficient.

Is there any way to generate the public key in hex format from the bitcoin address alone?

If not, are other methods (no vanitygen, but similar methods) known that work the same way when only the bitcoin address, but not the hex format public key is known?
I seem to recall on the blockchain.info thread there was discussion of an algorithm he used to find the public key from the address. Has a fancy name but I can't recall that now or else it would be easy to use search. This was some months back I believe.
I don't think it's possible unless the address has signed and broadcast a transaction, but I could be wrong.
You are correct. The address is a hash and a checksum, and you can't undo a hash.

This very property of addresses (being unable to recover the private key without a tx having been spent) will be useful as protection against quantum computing, provided addresses are never re-used.

More specifically, the address is:
A version byte 0 plus a RIPEMD-160 hash of the SHA256 hash of the public key, plus the first 4 bytes of a SHA-256 hash of a SHA-256 hash of a version byte plus a RIPEMD-160 hash of the SHA256 hash of the public key, all encoded in Base58.

Wink
hero member
Activity: 742
Merit: 500
when using the -P option, vanitygen wants to know the public key in hex format after the -P, and specifying only the bitcoin address is not sufficient.

Is there any way to generate the public key in hex format from the bitcoin address alone?

If not, are other methods (no vanitygen, but similar methods) known that work the same way when only the bitcoin address, but not the hex format public key is known?
I seem to recall on the blockchain.info thread there was discussion of an algorithm he used to find the public key from the address. Has a fancy name but I can't recall that now or else it would be easy to use search. This was some months back I believe.
I don't think it's possible unless the address has signed and broadcast a transaction, but I could be wrong.
Jump to: