5

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"?

1 Answer 1

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.

4
  • 6
    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.) Commented Jan 7, 2013 at 11:52
  • 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
    Commented Feb 21, 2017 at 11:35
  • @DavidSchwartz Could you link to that formal proof?
    – Jacob Ford
    Commented Aug 26 at 16:32
  • 1
    @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. Commented Aug 26 at 23:26

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.