<p>The 160-bit hash that is encoded in addresses is uniformly distributed ("truely random" as you call it), but the base58 encoded form is not. Some characters are more likely to occur at the start, for example.</p>

<p>To illustrate, consided the set of all integers between 0 and 1999. Even though each of those numbers is equally likely to be chosen, this is not true for its decimal representation. There, half of the numbers start with a 1!</p>

CC BY-SA 3.0
2014-02-27T11:23:20.303Z
Nice example, and I understand why the first digit is not always random. But between 0 and 1999 the last digit always has an equal distribution, and if 'o' or 'i' automaticly increase the difficulty, even the last character is not equally distributed. I saw the author of vanity-gen once explain this on bitcointalk, but couldnt find his post.
Maestro
CC BY-SA 3.0
2014-02-27T11:06:42.677Z
2014-02-27T11:06:42.677Z
Pieter Wuille
<p>Specific answer why 1Bitpoin is easier to generate than 1bitpoin:</p>

<p>The address is a base-58 representation of a 192-bit integer (160-bit hash plus a 32-bit checksum). The largest value you can represent is (2^160-1) with the corresponding checksum: 0xfffffffffffffffffffffffffffffffffffffffffa06820b, or the 34-character address "1QLbz7JHiBTspS962RLKV8GndWFwi5j6Qr".</p>

<p>In the base-58 alphabet, 'B' &lt; 'Q' &lt; 'b'. So any 34-char string that starts with '1Bitpoin' is valid as long as checksum is correct. But 34-char strings starting '1bitpoin' are all out of range. You can still generate 33-char strings starting with '1bitpoin' but obviously there are much fewer of these.</p>

CC BY-SA 3.0
2014-02-27T22:47:13.770Z
2014-02-27T22:47:13.770Z
uminatsu
<p>The characters 'i' and 'o' are only hard to generate in the case-insensitive sense, because capital 'I' and 'O' are not valid in base-58.</p>

CC BY-SA 3.0
2014-02-27T22:52:05.417Z
2014-02-27T22:52:05.417Z
uminatsu
<p>In <a href="https://bitcointalk.org/index.php?topic=25804.msg2892508;topicseen#msg2892508" rel="nofollow">this post</a> TierNolan explains why 'Bitpoin' is much easier to generate than 'bitpoin', and that mainly has to do with the position (first character). But I remember that certain characters (I believe 'i' and 'o') are much more difficult to generate, independant of their position in the address. How is this possible?</p>

CC BY-SA 3.0
2014-02-27T11:20:38.150Z
related: [Why are Bitcoin addresses starting with 1s or 1S so rare?](http://bitcoin.stackexchange.com/q/18371/5406)
Murch
<address><public-key><vanity-address><vanitygen><address-generation>
If Bitcoin addresses are truely random, then why are some more difficult to generate than others?
Maestro
# If Bitcoin addresses are truely random, then why are some more difficult to generate than others?

(Asked by: username_0 on 2014-02-27)

In [this post](https://bitcointalk.org/index.php?topic=25804.msg2892508;topicseen#msg2892508) TierNolan explains why 'Bitpoin' is much easier to generate than 'bitpoin', and that mainly has to do with the position (first character). But I remember that certain characters (I believe 'i' and 'o') are much more difficult to generate, independant of their position in the address. How is this possible?

**Tags:** address, public-key, vanity-address, vanitygen, address-generation

> **Comments:**
> **username_1**: related: [Why are Bitcoin addresses starting with 1s or 1S so rare?](http://bitcoin.stackexchange.com/q/18371/5406)  

---

## 3 answers

### Answer by username_2 on 2014-02-27. Score: 6

The 160-bit hash that is encoded in addresses is uniformly distributed ("truely random" as you call it), but the base58 encoded form is not. Some characters are more likely to occur at the start, for example.

To illustrate, consided the set of all integers between 0 and 1999. Even though each of those numbers is equally likely to be chosen, this is not true for its decimal representation. There, half of the numbers start with a 1!

> **Comments:**
> **username_0**: Nice example, and I understand why the first digit is not always random. But between 0 and 1999 the last digit always has an equal distribution, and if 'o' or 'i' automaticly increase the difficulty, even the last character is not equally distributed. I saw the author of vanity-gen once explain this on bitcointalk, but couldnt find his post.  

---

### Answer by username_3 on 2014-02-27. Score: 1

Specific answer why 1Bitpoin is easier to generate than 1bitpoin:

The address is a base-58 representation of a 192-bit integer (160-bit hash plus a 32-bit checksum). The largest value you can represent is (2^160-1) with the corresponding checksum: 0xfffffffffffffffffffffffffffffffffffffffffa06820b, or the 34-character address "1QLbz7JHiBTspS962RLKV8GndWFwi5j6Qr".

In the base-58 alphabet, 'B' < 'Q' < 'b'. So any 34-char string that starts with '1Bitpoin' is valid as long as checksum is correct. But 34-char strings starting '1bitpoin' are all out of range. You can still generate 33-char strings starting with '1bitpoin' but obviously there are much fewer of these.


---

### Answer by username_3 on 2014-02-27. Score: 0

The characters 'i' and 'o' are only hard to generate in the case-insensitive sense, because capital 'I' and 'O' are not valid in base-58.


---

