Space is big. Really big. You just won't believe how vastly hugely mind-bogglingly big it is. I mean, you may think it's a long way down the road to the chemist, but that's just peanuts to space.
-- from The Hitchhiker's Guide to the Galaxy, by Douglas Adams
A few days ago I was asked, how likely the hash function used in eMule would collide. Well, eMule use 128-bit MD4 which could have 2^128 distinct value. So, how big is 2^128?
I once heard that that number is somewhere around the number of the atom of something, Earth?, maybe. So I googling around and found a nice page in WikiPedia talking about the order of magnitude of numbers. It turns out that 2^128 is roughly 10^38 and the number of the atom on the earth is estimated to be around 10^50, a trillion fold more than possible hash values. Hence, it is not possible for 128 bit MD4 to uniquely identify every atom on Earth. Never mind, a trillionth of the whole atom on the earth is enough for my safety threshold. However, the number of atom on Earth is something we cannot grasp. Is it large? Definitely. But how large, I don't actually know.
Interestingly, IPv6 address space is also 2^128 and one nice description of that number that would make us go "Wooow" is something like this.
To put this into perspective: there are currently 130 million people born each year. If this number of births remains the same until the sun goes dark in 5 billion years, and all of these people live to be 72 years old, they can all have 53 times the address space of the IPv4 Internet for every second of their lives. Let nobody accuse the IETF of being frugal this time around.
-- Iljitsch van Beijnum, Everything you need to know about IPv6.
OK, that looks Mind-Bogglingly-Larger than the number of atom on the Earth.
PS. It also means that IETF is a trillion time short on the IP address if, in some way, we would like to assign each atom on Earth an IP address. Would it be necessary? Only the time will tell.