Author

Topic: Why is there only 2,100,000,000,000,000 (2.1 quadrillion) units in BTC? (Read 3915 times)

hero member
Activity: 955
Merit: 1002
I have a vague memory of Mike Hearn quoting Satoshi from an email directly on this forum saying it was just an arbitrary number.  (I've tried searching but can't find it)
Maybe I dreamt it.
hero member
Activity: 602
Merit: 500
Your *what* is itchy?
After taking a particularly large hit of LSD, Satoshi gazed into the fishtank and let his mind drift.  His consciousness floated on a sea of numbers, not unlike The Matrix. Out of the chaos of Information Overload came clarity: 2,100,000,000,000,000.  A voice said unto Satoshi: "The number of the units shall be 2,100,000,000,000,000, and the currency shall be called 'BitCoin'. If you code it, they will mine!"

When he awoke, Satoshi had one hell of an acid-trip hangover. Between puking and trying to stand upright again, the number 2,100,000,000,000,000 kept flashing in his brain.  Crawling to his laptop, he started coding.  

On the First day, he conceived the basic structure of the code, and it was good.
On the Second day, he got drunk and partied like it was 1999.
On the Third day, he remembered he was supposed to be coding some "srI0Z SH|T" and got back to work.
On the Fourth day, he slept in and forgot to code.
On the Fifth day, he went to the strip club with some buddies and spend half a million yen on a lapdance.
On the Sixth day, he was revisited by The Presence from his acid-trip, who kicked him in the nuts and told him to get back to work, and it had better be finished tomorrow, damn it!
On the Seventh day, he coded and coded and coded some more, fuelled by Mountain Dew Code Red, Pop Rocks and Pizza Pockets, and finally, he finished writing the blockchain code and released it unto the world. And it was good.
On the Eighth day, he kicked back, cracked open a sixer of brew, and waited for the Satoshis to start rolling in. Awwwwwwwyeah, bitches LOVE Satoshis.




If you got a chuckle out of this, toss a couple Satoshi my way. 1EcTa2LTPzrSqeB3hDjG2hdVhoKdWGexaW :-)
newbie
Activity: 56
Merit: 0
i think he choose it just as random really big number that wont limit anything
full member
Activity: 532
Merit: 100
Numbers are arbitrary. IIRC Satoshi posted that he decided on a number in the tens of millions because millions seemed to small and billions seemed to large.  The 21M was the product of the halving curve starting with an "round" initial subsidy in the magnitude which would produce the desired total.

Simple version it was mostly arbitrary.  He chosen a number and subsidy system that would be "easy" for outsiders.  I mean to the masses having 21M BTC seems plausible.

BTW there aren't $700T "dollars".  There may be wealth (assets) that are worth $700T dollars but they aren't currency.  Bitcoin is a currency.  Even if Bitcoin replaced all global currencies you should still have a house for example and that house would have a value outside the blockchain.  It isn't necessary for the blockchain to have enough "digits" to record "off blockchain" assets.  The purpose of the blockchain is to record transfers of currency.  The global (all countries combined) have roughly $5T worth of currency.  If we include things like demand deposits (i.e. checking accounts) in banks it is still "only" ~$50T.

Global currency (M0): ~$5 Trillion USD (2012 dollars)
Global money (M1): ~$50 Trillion USD (2012 dollars)
Bitcoin discrete units:  2,100 T satoshis

We are fine.  Not sure where there seems to be like 10 threads on this in the last week.  Maybe the move from mid $14s to $15 causes people to think about 1 BTC= $500,000?



Great answer! I account for!
administrator
Activity: 5222
Merit: 13032
And in C++ you have a 64 bit integer that goes up to 9.2 quadrillion (http://en.wikipedia.org/wiki/Primitive_data_type).

int64 goes up to 9.2 quintillion.
administrator
Activity: 5222
Merit: 13032
2.1 quadrillion units fits accurately in an IEEE double-precision floating-point number, but 21 quadrillion units would not fit. Double-precision numbers aren't used in the core Bitcoin network, but they are frequently used by programs that interact with Bitcoin, so being able to store BTC values accurately in doubles is very useful. I'd guess that this was something Satoshi thought about when deciding the money limits.
b!z
legendary
Activity: 1582
Merit: 1010
I did a little more research. I think the client is written in C++.
And in C++ you have a 64 bit integer that goes up to 9.2 quadrillion (http://en.wikipedia.org/wiki/Primitive_data_type). So it means that quite a large part of the 64 bits are being used. It also means that the money supply could have been easily doubled or tripled without getting problems of computing it on a 64 bit processor, but this would have a little impact on the amount of time it would take to mine all coins.

Thanks for other good information.

I don't think that was how it was decided, but interesting theory nonetheless.
legendary
Activity: 4466
Merit: 3391
And in C++ you have a 64 bit integer that goes up to 9.2 quadrillion (http://en.wikipedia.org/wiki/Primitive_data_type).

Better check that number ...
newbie
Activity: 53
Merit: 0
I did a little more research. I think the client is written in C++.
And in C++ you have a 64 bit integer that goes up to 9.2 quadrillion (http://en.wikipedia.org/wiki/Primitive_data_type). So it means that quite a large part of the 64 bits are being used. It also means that the money supply could have been easily doubled or tripled without getting problems of computing it on a 64 bit processor, but this would have a little impact on the amount of time it would take to mine all coins.

Thanks for other good information.
hero member
Activity: 560
Merit: 500
But why 50 BTC / block to start and not 100?

Why 100 and not 1 or 1 trillion?  The number of units is arbitrary. Why is an ounce an ounce or a millimeter a millimeter?

Simple version it was mostly arbitrary.  He chosen a number and subsidy system that would be "easy" for outsiders.  I mean to the masses having 21M BTC seems plausible.

That other guy answered your question already  Grin


EDIT: A 100 BTC starting reward would mean ~42 million total BTC, which would've still seemed plausible, while having an even rounder variable in the total BTC equation.


New arbitrary thread: "Why is 50 better than 100???"
donator
Activity: 1218
Merit: 1079
Gerald Davis
Very interesting, block reward halves roughly every Leap Year.

50 btc per block
One block every 10 minutes
reward halves every Leap Year, 4 years


But why 50 BTC / block to start and not 100?

Why 100 and not 1 or 1 trillion?  The number of units is arbitrary. Why is an ounce an ounce or a meter a meter*?


* Curious thing about units (you can safely ignore unless you want some context on how arbitrary any unit really is).  A meter was originally defined as 1/10,000,000th of the distance between the equator and the north pole.  The obvious flaw in this is the difficulty in accurately measuring the quarter circumference of a very large object.  As science improved it became obvious that "the meter" was the wrong size. The distance from the equator to the North Pole is about 0.2% more. So a meter was redefined to be 1/299,792,458 of the distance light travels in a second.  The obvious question is why 299,792,458 m/s why not 300,000,000.  It was decided that changing the unit to radically (a 0.069% increase) would have had too many complications.  So we (likely for a very long time are "stuck" with 299,792,458 m/s as the speed of light.  Now if one was making a base unit today with the high precision  that is available making a NuMeter be exactly 1/100,000th or 1/1,000,000th of the distance light travels in a second is would seem a better choice ... until you realize that a second has been redefined multiple times and is currently the clumsy value equal to "the duration of 9,192,631,770 periods of the radiation corresponding to the transition between the two hyperfine levels of the ground state of the caesium 133 atom".  Of course 9,192,631,770 periods not 9,192,631,769 or 9,192,631,771. Smiley
hero member
Activity: 560
Merit: 500
Very interesting, block reward halves roughly every Leap Year.

  • 50 btc per block
  • One block every 10 minutes
  • Reward halves every quadrennial (Leap years, Presidential elections, Olympics, Eclipse)


But why 50 BTC / block to start and not 100?
sr. member
Activity: 310
Merit: 253
That makes sense. I didn't realise you get the 210,000 figure by fixing 10 minutes and 4 years as the expected times for block generation and halving.
donator
Activity: 1218
Merit: 1079
Gerald Davis
210K is roughly 4 years @ 10 min per block.  6 per hour * 24 hours per day * 365.25 days per year * 4 years = 210,384. 

Once again a somewhat arbitrary choice but you need to start somewhere.  A smaller subsidy interval (say halving every ~3 years)  would have increased the early incentive, and a larger interval (say halving every ~10 years) would have reduced it.  He decided on 4 years.  Is 4 better than 3 or 6?  Who knows.  It likely doesn't matter that much.  Four years is long enough for the economy to prepare and adjust for the halving while short enough to provide an incentive (at each halving) for new users.

Remember this hadn't been done before.  When making a protocol you have to pick some parameters as a start.  I don't know but I imagine he probably went back and forth with a couple different set of constants. At some point you have to commit to some value so you can get working on the entire rest of the protocol/network.

Was 50 BTC per block halving every 210K blocks, w/ a block interval target of 10 minutes, and difficulty adjustment every 2016 blocks a  good choice?  It will be exciting to find out.
legendary
Activity: 3472
Merit: 4801
Could it be that he first thought 20 million would be a nice round number for the total amount and then came up with the extra million/10,000 blocks per batch as a sort of buffer to account for lost bitcoins?
Possibly.  Or perhaps he decided he'd like the reward to be cut in half every four years Then did the math and found that would be every 210,384 blocks and rounded down to 210,000.
sr. member
Activity: 310
Merit: 253
But the funny thing is that Satoshi chose a number like 210,000 as the number of blocks before the reward halves. The 21 million is a consequence of that number. Why didn't he choose a round number like 100,000 or 200,000?

Could it be that he first thought 20 million would be a nice round number for the total amount and then came up with the extra million/10,000 blocks per batch as a sort of buffer to account for lost bitcoins?
legendary
Activity: 3472
Merit: 4801
As pointed out by D&T, I get the impression that he didn't specifically choose 21 million.  He chose 50BTC as a block reward and then chose to cut that reward in half every 210,000 blocks.  If you do the math, that just happens to work out to a bit less than 21 million (20999999.97690000 BTC to be exact).

From what I understand, due to some "lost" coins in some poorly formed blocks the total spendable coins (even if there were no lost private keys) in existence will actually be a few less than 20999999.97690000 BTC.
donator
Activity: 1218
Merit: 1079
Gerald Davis
All numbers are arbitrary they are just used as a common metric.  IIRC Satoshi wrote in a post that he decided on a number in the tens of millions because millions of base units seemed to small and billions seemed to large.  The 21M total supply was the product of the halving curve starting with an "round" initial subsidy (50) in the magnitude which would produce the desired total.  He could have just as easily made Bitcoins the indivisible unit and started with 21 quadrillion of them (with initial block reward being 5 billion).

Simple version is the choice of 21M vs some other different but still equally usable number is mostly arbitrary.  He chosen a number and subsidy system that would be "easy to grasp" for outsiders.  I mean to the masses having 21M BTC seems more plausible then having 21 quadrillion BTC (w/ no subdivisions) or having only 1 BTC divided to 30 decimal places.

BTW there aren't $700T "dollars".  There may be wealth (assets) that are worth $700T dollars but they aren't currency.  Bitcoin is a currency.  Even if Bitcoin replaced all global currencies you should still have a house for example and that house would have a value outside the blockchain.  It isn't necessary for the blockchain to have enough "digits" to record all "off blockchain" assets.  The purpose of the blockchain is to record transfers of currency.  The global (all countries combined) have ~$5T worth of currency.  If we include things like demand deposits (i.e. checking accounts) in banks it is still "only" ~$50T.

Global currency (M0): ~$5 Trillion USD (2012 dollars)
Global money (M1): ~$50 Trillion USD (2012 dollars)

Global currency (M0): ~500 Trillion US cents (2012 dollars)
Global money (M1): ~5,000 Trillion US cents (2012 dollars)

Bitcoin supply:  2 Trillion uBTC
Bitcoin supply:  2,100 Trillion satoshis

We are fine.  Not sure where there seems to be like 10 threads on this in the last week.  Maybe the move from mid $14s to $15 causes people to think about 1 BTC= $500,000?
member
Activity: 95
Merit: 10
I doubt anyone knows exactly why that specific number since nobody knows who s/he is. However if they would have let it break down by another decimal place that extra zero creates "too big" of a leap 2.1 quad to 21 quad. I guess they could have planned to stop at 18 million btc or 24 and then split it down to 1.8 quad or 2.4 quad but who knows exactly why?
They had to pick a stopping point and I guess it seemed reasonable as any other global currency. I'm sure there is a ton out there being lost in idle wallets and such but it just increases the value of all the other coins so it balances out. If it gets to a point where one unit of the 2.1 is worth more than say .10 USD and we can't use it to price goods anymore then we're fucked, but thats a big leap.
newbie
Activity: 53
Merit: 0
Is there a limit in the language that made Satoshi Nakamoto choose to have 2,100,000,000,000,000 (2.1 quadrillion) units?
Basically it goes over 15 orders of magnitude, which is about the same as the USD. (USD goes from about 700 trillion and down to cents, which tecnically is about 16 orders of magnitude. However, those cents are not really very useful)

Given that deflation is built into Bitcoin, it's quite feasible that one order of magnitude will be lost due to loss of wallets etc.

Does anyone know the specific reason Satoshi chose this number?
Jump to: