Bitcoin Forum
May 07, 2024, 05:20:08 PM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: Vanity Address for Altcoins, How are vanity addresses secure?  (Read 1992 times)
smeagol (OP)
Legendary
*
Offline Offline

Activity: 1008
Merit: 1005



View Profile
December 18, 2013, 10:03:30 PM
 #1

Is it possible to make vanity addresses for altcoins?  If so, how?

Also, when people sell addresses, how is it secure?  Wouldn't they know the private key?
1715102408
Hero Member
*
Offline Offline

Posts: 1715102408

View Profile Personal Message (Offline)

Ignore
1715102408
Reply with quote  #2

1715102408
Report to moderator
1715102408
Hero Member
*
Offline Offline

Posts: 1715102408

View Profile Personal Message (Offline)

Ignore
1715102408
Reply with quote  #2

1715102408
Report to moderator
The Bitcoin software, network, and concept is called "Bitcoin" with a capitalized "B". Bitcoin currency units are called "bitcoins" with a lowercase "b" -- this is often abbreviated BTC.
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
1715102408
Hero Member
*
Offline Offline

Posts: 1715102408

View Profile Personal Message (Offline)

Ignore
1715102408
Reply with quote  #2

1715102408
Report to moderator
TBCM
Full Member
***
Offline Offline

Activity: 182
Merit: 100



View Profile WWW
December 18, 2013, 10:37:21 PM
 #2

Use Google to find modified vanity generators for altcoins. You'll find them. And if you don't, you'll find out you only have to change the value of two variables on the source code to adapt the address generated to any coin - https://bitcointalk.org/index.php?topic=293700.0

You are perfectly secure selling addresses. But it wouldn't be secure to buy them. Do people actually sell addresses? I didn't know.

smeagol (OP)
Legendary
*
Offline Offline

Activity: 1008
Merit: 1005



View Profile
December 18, 2013, 10:42:08 PM
 #3

Use Google to find modified vanity generators for altcoins. You'll find them. And if you don't, you'll find out you only have to change the value of two variables on the source code to adapt the address generated to any coin - https://bitcointalk.org/index.php?topic=293700.0

You are perfectly secure selling addresses. But it wouldn't be secure to buy them. Do people actually sell addresses? I didn't know.

I see people selling vanity addresses.  Also, there are vanity pools
smeagol (OP)
Legendary
*
Offline Offline

Activity: 1008
Merit: 1005



View Profile
December 18, 2013, 10:44:31 PM
 #4

Use Google to find modified vanity generators for altcoins. You'll find them. And if you don't, you'll find out you only have to change the value of two variables on the source code to adapt the address generated to any coin - https://bitcointalk.org/index.php?topic=293700.0

You are perfectly secure selling addresses. But it wouldn't be secure to buy them. Do people actually sell addresses? I didn't know.

Also - what are the variables I need to change?
https://github.com/samr7/vanitygen
Wilhelm
Legendary
*
Offline Offline

Activity: 1652
Merit: 1265



View Profile
December 18, 2013, 10:48:24 PM
 #5

Use Google to find modified vanity generators for altcoins. You'll find them. And if you don't, you'll find out you only have to change the value of two variables on the source code to adapt the address generated to any coin - https://bitcointalk.org/index.php?topic=293700.0

You are perfectly secure selling addresses. But it wouldn't be secure to buy them. Do people actually sell addresses? I didn't know.

I see people selling vanity addresses.  Also, there are vanity pools

If someone sells you a vanity address they have your private key... you would be a fool to use it!!!

Bitcoin is like a box of chocolates. You never know what you're gonna get !!
kuverty
Sr. Member
****
Offline Offline

Activity: 770
Merit: 250


View Profile
December 18, 2013, 10:57:49 PM
 #6

Use Google to find modified vanity generators for altcoins. You'll find them. And if you don't, you'll find out you only have to change the value of two variables on the source code to adapt the address generated to any coin - https://bitcointalk.org/index.php?topic=293700.0

You are perfectly secure selling addresses. But it wouldn't be secure to buy them. Do people actually sell addresses? I didn't know.

I see people selling vanity addresses.  Also, there are vanity pools

If someone sells you a vanity address they have your private key... you would be a fool to use it!!!

There is a safe way to let someone generate you a vanity address so that only you get the private key. The wonders of cryptography! Too bad there isn't a working firstbits lookup any more.
nocoin
Full Member
***
Offline Offline

Activity: 168
Merit: 100


View Profile
December 18, 2013, 11:01:27 PM
 #7

Also - what are the variables I need to change?
https://github.com/samr7/vanitygen
Check this https://github.com/llamasoft/securecoin-vanitygen/commit/9bba3e60c21960acc9ca8a280d1d193fe202a0dc
Also, information about secure generation can be found here: https://bitcointalk.org/index.php?topic=81865.msg901491#msg901491
Nano Fiber
Newbie
*
Offline Offline

Activity: 49
Merit: 0


View Profile
December 18, 2013, 11:04:29 PM
Last edit: December 19, 2013, 12:03:22 AM by Nano Fiber
 #8

Also - what are the variables I need to change?
https://github.com/samr7/vanitygen

EDIT: You actually don't need to modify the source code for most altcoins; you can use vanitygen's -X flag to generate addresses for altcoins (modifying the source code for Securecoin was necessary because the privtype variable is hardcoded to 128). Look at the Bitcoin Wiki page on Vanitygen (scroll down to the section titled "Vanity addresses for other crypto-coins") for instructions.

But if you want to modify the source code anyway, see the commit here:

https://github.com/llamasoft/securecoin-vanitygen/commit/9bba3e60c21960acc9ca8a280d1d193fe202a0dc

addrtype must be the value of PUBKEY_ADDRESS in the original source code (for example, in LottoCoin it's 49) and privtype is usually 128 + addrtype, except in the case of Securecoin where it was hardcoded to 128 (in LottoCoin it's the former).
smeagol (OP)
Legendary
*
Offline Offline

Activity: 1008
Merit: 1005



View Profile
December 19, 2013, 02:29:05 AM
 #9

So all I would need to do is look in a coin's source, and replace it with the coin's values?

e.g. https://github.com/Smeagol-Gollum/securecoin-vanitygen/blob/master/vanitygen.c#L388

I could change

Code:
                 case 'N':
                        addrtype = 52;
                        privtype = 180;
                        scriptaddrtype = -1;
                        break;

to
Code:
                case 'L': //LottoCoin
                        addrtype = 49;
                        privtype = 180;
                        scriptaddrtype = -1;
                        break;

Where would I find privtype and scriptaddrtype?
Nano Fiber
Newbie
*
Offline Offline

Activity: 49
Merit: 0


View Profile
December 19, 2013, 04:09:22 AM
 #10

All you would need to do is read the Bitcoin wiki's entry on vanitygen Tongue But yes, that's all you'd need to do. As I said, privtype is addrtype + 128 (so in the case of LottoCoin, privtype would be 177, because 49 + 128 = 177), with the exception of Securecoin where it's hardcoded to 128. scriptaddrtype, as far as I know, is -1 for everything other than Bitcoin.
smeagol (OP)
Legendary
*
Offline Offline

Activity: 1008
Merit: 1005



View Profile
December 19, 2013, 09:53:10 PM
Last edit: December 19, 2013, 10:09:15 PM by smeagol
 #11

All you would need to do is read the Bitcoin wiki's entry on vanitygen Tongue But yes, that's all you'd need to do. As I said, privtype is addrtype + 128 (so in the case of LottoCoin, privtype would be 177, because 49 + 128 = 177), with the exception of Securecoin where it's hardcoded to 128. scriptaddrtype, as far as I know, is -1 for everything other than Bitcoin.

 Cheesy  Thanks!


Quote
1) You generate a random 256-bit integer less than the SECP256k1 generator. You keep this secret. (Effectively, an ECDSA private key.)

2) You compute the corresponding EC point on the SECP256k1 curve. You share this with whoever is finding the vanity address for you. (This is the ECDSA public key that corresponds to the private key you generated in step one.)

3) The person working out the vanity address for you tries various 256-bit integers also less than the SECP256k1 generator. They compute the corresponding EC point and add it to the EC point you sent them (from step two). They then hash this and see if it produces the desired vanity address. They repeat this over and over until they find a 256-bit integer that works. They give this integer to you. (And the world, it need not be kept secret.)

4) You add the 256-bit integer they found to the 256-bit integer you generated in step 1 and reduce it modulo the SECP256k1 generator.

5) You now have the private key, and they don't. (And you can prove that they cannot generate the private key from just the information you gave them unless ECDSA is fundamentally broken.)

In ECDSA, you convert a private key to a public key by multiplying by the generator. Division is impossible.

The vanity address generation scheme above works because: (A+B)*G = AG + BG

You generate A and AG, but give them only AG.

They try various different B's, calculating the AG+BG for each one to find the right one for the vanity address.

They give you B. You can now compute A+B (the secret key corresponding to the public key AG+BG) but nobody else can since they do not know A.

Computing A from AG would mean breaking ECDSA fundamentally. All you gave them is AG, an ECDSA public key. If they could figure out the private key to your new account (A+B), they could also figure out A. So if they could figure out the private key to your vanity account, they could also figure out the private key you created in step 1. But all you gave them was the corresponding public key. So any compromise of the vanity account would mean they could compromise a private key given only its corresponding public key.

Could anyone explain this to me in simpler terms?

Pages: [1]
  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!