<p>Vanity Addresses only reduce the apparent randomness of a public key. The underlying private key is still just as random as always, as the private key does not have any special characteristics (it does not have a special pattern in front or anything like that). A given public key is as likely to be generated by a private key from range 0-10, as for 1000000-1000010 and the like.</p>

<p>If knowing some given pattern would make it more likely that one would be able to find the private key, then since every public key is known when coins are spent then vanity address or not, it would be just as easy to steal one's coins.</p>

CC BY-SA 3.0
2013-01-07T11:52:38.920Z
It is possible to generate vanity keys in a way that destroys their security. For example, if you searched through the private key space starting with zero and adding one until you found the first private key that gave the desired vanity address, an attacker could replicate that process to find your private key. However, barring boneheaded idiocy like that, an attacker still has the very same problem to solve and it should be precisely as hard. (There is a formal proof that choosing a private key such that its public key falls a group doesn't affect the security properties.)
David Schwartz
CC BY-SA 3.0
2017-02-21T11:35:50.480Z
So a malicious attacker that write a program for you to run offline that seems secure but deliberately generates 'vanity' addresses in this way.
AndyM
CC BY-SA 4.0
2024-08-26T16:32:53.093Z
@DavidSchwartz Could you link to that formal proof?
Jacob Ford
CC BY-SA 4.0
2024-08-26T23:26:36.700Z
@JacobFord The short version is this: The smaller the group of public keys is, the harder it is to find a private key that is even in the group. The larger the group of public keys is, the harder it is to find the particular private key inside the group. To take advantage of the fact that the public key is in the group, you must do both. For example, if the group is "public keys that begin with 0x00000000", it's 2^32 times harder to find any key in the group than just find  a key.
David Schwartz
CC BY-SA 3.0
2013-01-07T09:16:27.290Z
2013-01-07T09:16:27.290Z
ThePiachu
<p>Since a vanity address discards many "valid" keys in order to find one that matches a pre-determined string, I think that the "randomness" of the data would be reduced, thus weakening the key.</p>

<p>Is there any cryptographic proof that indicates how this is / is not a factor in reducing the security of a given address &amp; private key combination? </p>

<p>... or at the very least calculate the degree of "lost randomness"?</p>

<security><encryption><cryptography><base58check>
Does a Vanity Address reduce the randomness / entropy of the private key? Is there cryptographic proof?
makerofthings7
# Does a Vanity Address reduce the randomness / entropy of the private key? Is there cryptographic proof?

(Asked by: username_0 on 2013-01-06)

Since a vanity address discards many "valid" keys in order to find one that matches a pre-determined string, I think that the "randomness" of the data would be reduced, thus weakening the key.

Is there any cryptographic proof that indicates how this is / is not a factor in reducing the security of a given address & private key combination?

... or at the very least calculate the degree of "lost randomness"?

**Tags:** security, encryption, cryptography, base58check


---

## 1 answers

### Answer by username_1 on 2013-01-07. Score: 2

Vanity Addresses only reduce the apparent randomness of a public key. The underlying private key is still just as random as always, as the private key does not have any special characteristics (it does not have a special pattern in front or anything like that). A given public key is as likely to be generated by a private key from range 0-10, as for 1000000-1000010 and the like.

If knowing some given pattern would make it more likely that one would be able to find the private key, then since every public key is known when coins are spent then vanity address or not, it would be just as easy to steal one's coins.

> **Comments:**
> **username_2**: It is possible to generate vanity keys in a way that destroys their security. For example, if you searched through the private key space starting with zero and adding one until you found the first private key that gave the desired vanity address, an attacker could replicate that process to find your private key. However, barring boneheaded idiocy like that, an attacker still has the very same problem to solve and it should be precisely as hard. (There is a formal proof that choosing a private key such that its public key falls a group doesn't affect the security properties.)  
> **username_3**: So a malicious attacker that write a program for you to run offline that seems secure but deliberately generates 'vanity' addresses in this way.  
> **username_4**: @username_2 Could you link to that formal proof?  
> **username_2**: @username_4 The short version is this: The smaller the group of public keys is, the harder it is to find a private key that is even in the group. The larger the group of public keys is, the harder it is to find the particular private key inside the group. To take advantage of the fact that the public key is in the group, you must do both. For example, if the group is "public keys that begin with 0x00000000", it's 2^32 times harder to find any key in the group than just find  a key.  

---

