What I was wondering is how many more decimals we would need to surpass 20,999,999.99999999 BTC was reached.
Does anyone have an answer?
Actually, you will NEVER get there.
With unlimited decimals,
the limit will be 20,999,999.979.
Check out the chart on
https://en.bitcoin.it/wiki/Controlled_supplylook at line 34, in the column that
says "BTC added" -- you will see
we add .0021 BTC in the last era
of 210,000 blocks where this is
a reward of 1 satoshi.
(which
also makes sense since there's
a hundred million satoshis in 1 BTC).
Now...in a geometric progression where
you keep halving something, the
limit will be double of what you
started with.
So that means the next era would be
half of .0021, etc... with all the remaining
eras combined approaching .0021.
So if you add .0021 to the current limit
of 20999999.97690000 you get
20,999,999.979.
This (and 21 million) may seem like a
funny, abritrary number. It is
simply a consequence of the 210,000 block
halving number chosen by Satoshi.
Franky, not sure where you got your number
but it is incorrect...
in the last 4 years before rewards per block stops.. the circulation will be
20,999,999.99790000
Check the chart in the link
https://en.bitcoin.it/wiki/Controlled_supplyEDIT:
After thinking further about it, I realize the answer
above is true only if we extend the decimal
precision at that point in the future when
we are at the last block. If we wind the
clock back to 2009 when Bitcoin got started,
and introduced unlimited digits there, the theoretical
limit WOULD be 21 million. (210,000 blocks x 50 BTC,
and then doubled)...The bitwise rotation
rounding is what causes it to go lower.
Calculating the exact number of initial decimal
places needed to eventually reach .99999999
if we started Bitcoin over from the beginning
is non-trivial because you would
need to figure out the cumulative effects on
rounding over the geometric progression, which
I don't have knowledge of or time to research...
but this was an interesting problem!
If someone is really curious, you can always
write a simple program to do it, but you
will need an unlimited decimal library
otherwise you'll run out of room.