Some of you may know that an ETH and BSC private key is is a string of hexadecimal numbers.

It is actually a string of 64 Hexadecimal numbers. This means that there are lots of combinations. In fact there would be 16^64 combinations.

This is 1.15 * 10^77

or

115000000000000000000000000000000000000000000000000000000000000000000000000000

That's a very big number, and the whole security of crypto currency is based on the fact there are so many combinations that even if you had the fastest computers in the world running every combination its unlikely they will find your private key.

# But how do we know if your number is really random?

This is where using a computer to generate a random number might not be the best way to generate your random private key. Computers generate random numbers, by using complicated formulae usually involving the current time in milliseconds, and modulus formulae. The numbers appear to be very random, but they aren't true random. If you know the seed (i.e. the time in milliseconds, or whatever else that was used to seed the formulae) you can actually re-generate the sequence of random numbers.

Hackers know this, and that means they can test the patterns of random number generators making it more likely that your private key can be determined. However this is still extremely unlikely. The simplest analogy I have is passwords. When conducting a brute force attack on passwords, hackers usually use dictionary attacks first, which try lots of words in combination with numbers. This greatly increases the chances of a hacker guessing the password.

# What about humans?

If you ask a human to generate random numbers, often they aren't random either and present patterns introduced subconsciously into the key. One classic example is that they wouldn't put two characters the same in a row, because that doesn't feel random. Actually it has a 1 in 16 chance of happening, so you would expect some doubles in the private key.

# how did I generate my private key?

There is nothing more random than choosing random ping pong balls out of a bowl. So I wrote 0-9 and A-F on ping pong balls, put them in a bowl and pulled them out one at a time with replacement. This is a tried and tested method for generating lotto numbers, and it works just as well for generating private keys.

Perhaps I am a little paranoid, and over worried about some infinitesimal chance someone would hack my key, but better to be safe than sorry!