Vanitygen

Vanitygen was the first command-line vanity Bitcoin address generator. A few other vanity address generators exist including Vanitygen-plus and VanitySearch.

If you're tired of the random addresses generated by regular Bitcoin clients, you can use a vanity address program to create a more personalized address. For example, you could create an address that starts '1Satoshi' and ask people to send Bitcoin to 1SatoshiHHqnDPRSfiZ5GXJ8Gk9dbjO.

Vanity address programs accept as input a pattern (e.g. 1Bitcoin) and create a public address and private key. The amount of time required to find a given pattern depends on how complex the pattern is, the speed of the computer, whether it is using CPU or GPU, and if you get lucky.

The example below (from 2014) illustrates a session of vanitygen. It takes about 10 seconds to create the new public and private keys using a Core 2 Duo E6600 CPU on x86-64 Linux.

Please note that vanitygen is a legacy program and that the information below is provided for historical purposes.

$ ./vanitygen 1Boat
Difficulty: 4476342
Pattern: 1Boat                                                                 
Address: 1BoatSLRHtKNngkdXEeobR76b53LETtpyT
Privkey: 5J4XJRyLVgzbXEgh8VNi4qovLzxRftzMd8a18KkdXv4EqAwX3tS

Vanitygen includes components to perform address searching on a CPU (vanitygen) and OpenCL-compatible GPU (oclvanitygen). Both can be built from source and are included in the Windows binary package. Also included is oclvanityminer, the vanity address mining client. Oclvanityminer can be used to automatically claim bounties on sites such as ThePiachu's Vanity Pool.

Current version: 0.22.

Windows x86+x64 binaries here. PGP signature here.

Get the source from GitHub. Includes Makefiles for Linux and Mac OS X.

Main discussion at BitcoinTalk.

The latest source doesn't work properly for high-end AMD cards (7XXX and greater). The solution is to change line 459 in oclengine.c from: return quirks; to: return quirks & ~VG_OCL_AMD_BFI_INT;

Windows x86+x64 binaries that solve this problem plus provide support for compressed keys here. PGP signature here. If you have any problems with the binaries, join the relevant BitcoinTalk discussion.

Expected keysearch rate

The table below shows the key search rate one can expect from different hardware. The last five examples, which use GPU processors, were taken from DaveF's list of speeds that can be achieved with the VanitySearch address generator.

Keysearch Rates

CPUGPUkeys/sComment
Core i5 750 @2.67 GHznVidia GTS 2501.54 Mkey/s110% CPU
Core2 Duo 6600nVidia GTX 2853.5 Mkey/s100% CPU / 90% GPU
Sempron 140AMD 58305.5 Mkey/s100% CPU / 60% GPU
AMD Radeon r7 2404 Mkey/s
Core i7AMD 6500M4.5 Mkey/s98% GPU
nVidia GeForce GTX 680M14-16 Mkey/s
nVidia GeForce GTX 97038 Mkey/s
Core i7-4702MQ 2.2GHz1.09 Mkey/s
Core i7-4702MQ 2.2GHzGeForce GT750M5.38 Mkey/s
AMD Radeon r9 280x25-35 Mkey/s
Sapphire Radeon HD 797028Mkey/s
AMD Radeon HD 587030 Mkey/s
Asus Strix GTX 97040Mkey/s
nVidia GeForce GTX 780 Ti (3GB 384-bit GDDR5)50-60 Mkey/s
Core i5-2500K @ 3.30GHzAMD RX 48057-64 Mkey/sWith AMD patch
GeForce GTX 1060 3GB (9x128 cores) Grid(72x128)322 Mkey/s
GeForce GTX 1080 Ti (28x128 cores) Grid(224x128)896 Mkey/s
EVGA RTX 2080 XC ULTRA1425 Mkey/s
GPU #0 Tesla V100-SXM2-16GB (80x64 cores) Grid(640x128)1815 Mkey/s
GPU #0 GeForce RTX 2080 SUPER (48x64 cores) Grid(384x256)2002 Mkey/s

Difficulty of finding a vanity address

The difficult of discovering a Bitcoin vanity address depends on its exact structure (what are the leading letters or numbers) and how likely such an output is given the algorithms involved, which can consist of several pivots where the difficulty suddenly changes.

vanitydifficultyComment
1AAAAA259,627,881
1QLbz6259,627,881This vanity is alphabetically located before a major pivot, the RIPEMD160 hash value of 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF (address: 1QLbz7JHiBTspS962RLKV8GndWFwi5j6Qr).
1QLbz7JHiBTspS962RLKV8GndWE2.9597E+45
1QLbz7837,596,142This vanity is partially after a pivot and thus the difficulty increases.
1QLbz7JHiBTspS962RLKV8GndWG1.6489E+47After a major pivot and 59 times as difficult as the 'E' vanity.
1QLbz8837,596,142
1aaaaa15,318,045,009After various pivots and subsequently more difficult.
1zzzzz15,318,045,009
1abcdef888,446,610,539Six characters case sensitive starting with a lower case character.
1111111,099,511,627,776A special case: leading number 1 (one) is especially difficult.
1abcdefg51,529,903,411,245Seven characters case sensitive starting with a lower case character.
1abcdefgh2,988,734,397,852,220Eight characters case sensitive starting with a lower case character.

Using a vanity address generator to try to attack addresses

You might think that you would be able to find the private key for a given address by running a vanity address generator. In practice, this is considered impossible. Given that the difficulty increases exponentially the longer your vanity is, so does the average time required to find that vanity. The table below shows how an increasingly complex vanity affects the difficulty and average time required to find a match only for that vanity, let alone the full address, for a machine capable of looking through one million keys per second.

Note that many GPU implementations currently (March 2020) allow up to 1,000 Mkeys/s (or more). For example Bitcoin-Uni uses VanitySearch to search more than 7,000 Mkeys/s.

vanitydifficultyaverage time
1B22< 1s
1Bi1,330< 1s
1Bit77,178< 1s
1Bitc4,476,342 (4.48E+6)< 10s
1Bitco259,627,881 (2.6E+8)3 minutes
1Bitcoi15,058,417,127 (1.506E+10)3 hours
1Bitcoin8.7339E+111 week
1BitcoinE5.0657E+131 year
1BitcoinEa2.9381E+1560 years
1BitcoinEat1.7041E+173,500 years
1BitcoinEate9.8837E+18200,000 years
1BitcoinEater5.7325E+2011,700,000 years
1BitcoinEaterAddressDontSend1.6209E+473.3E+33 or 3.3 decillion years.

Outsourcing vanity address generation

The standard way to generate a vanity address is to calculate it yourself by downloading the program and then running it on your system. However, for longer prefixes, you are unlikely to have enough computational resources or time to calculate them. In these cases, you can outsource your vanity address generation to a Bitcoin Vanity Generation Website. A good idea is to use split-key address generation.

See also

  • Bitcoin Vanity Generation Website
This article is issued from Bitcoin. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.