Pages:
Author

Topic: Why 1BTC should equal 10^8 satoshi ? - page 2. (Read 6723 times)

legendary
Activity: 924
Merit: 1132
October 12, 2014, 02:20:01 PM
#27
PS. Having some FORTH background was impressive to see it used in bitcoin.

Both Hal and Satoshi preferred FORTH because it had the simplest (easiest to verify correct/secure) implementation of any useful scripting language.
member
Activity: 119
Merit: 112
_copy_improve_
October 12, 2014, 12:10:21 AM
#26

.........
And, yeah, I'm Ray Dillinger.


Then this conversation deserves Erdős number 2. (https://en.wikipedia.org/wiki/Erd%C5%91s_number)

Thank you so much for explanations.



PS. Having some FORTH background was impressive to see it used in bitcoin.
legendary
Activity: 924
Merit: 1132
October 12, 2014, 12:03:51 AM
#25

Interesting - thanks for posting. I always assumed that all of those initial-state decisions had been made *before* Satoshi posted the whitepaper. I guess because of that comment he made in that list thread to the effect of "I'm almost ready to post the code."

He *was* just about ready to post the code.  This was a debate about what value an already-defined constant ought to have.  In fact I've already posted an archive of his code from just a few *days* later in another thread here for historical interest. 

Hal and I were essentially giving it a last-minute looking over to see if we thought there was any way to attack it.  I have the impression that Hal communicated with Satoshi a lot more than I did, but he was looking at a  much tougher problem.  The blockchain structure is essentially a mathematical proof -- very straightforward, you follow it and you can say with reasonable certainty that it's right or not.  But a scripting language is generative.  And generative structures present exponentially more attack surfaces. 

Re Finney - if he was blocking bitcoin op-codes, I wonder what he would've thought of Ethereum's scripting lang. Smiley

You're kidding right?  Ethereum's scripting language is limited only by the amount of steps it will run a calculation.  Hal would have pitched a fit about the Denial-of-Service possibilities.

(and I had to ask if you were Ray cuz your early posts on here were signed "Edward")

Yeah, I made up a fake person because at first I didn't want people here to know who I was.  I was kind of afraid they'd get freaky about it.


legendary
Activity: 1302
Merit: 1008
Core dev leaves me neg feedback #abuse #political
October 11, 2014, 11:44:36 PM
#24
what a complicated confusing mess -- all this M1, M2 stuff,
not to mention hundreds of fiat currencies.

Bitcoin's 21M coins seems so much simpler and better.
legendary
Activity: 1722
Merit: 1004
October 11, 2014, 11:42:06 PM
#23

Assuming you're Ray Dillinger - is that conversation public anywhere? I don't recall reading it on http://www.mail-archive.com/cryptography%40metzdowd.com/msg10005.html

Uhh, I don't remember ever agreeing to keep it secret, but we didn't talk about it on the list either.  At that time Hal was elbows-deep in the transaction scripting code, and I was checking Satoshi's work on the crypto on the blockchain architecture.  

Finney had a lot to worry about with the transaction scripting and wound up blocking out about a dozen more opcodes than Satoshi had wanted to, but I found essentially nothing wrong with the block structure.  I am still freakin' amazed how tight he got that blockchain design.  

And, yeah, I'm Ray Dillinger.



Interesting - thanks for posting. I always assumed that all of those initial-state decisions had been made *before* Satoshi posted the whitepaper. I guess because of that comment he made in that list thread to the effect of "I'm almost ready to post the code."

It's a little amusing - if bitcoin continues to grow, economists will no doubt be horrified by the levity (relative to an econ committee mtg) with which these decisions were made. Not saying that's a bad thing, or that they weren't rationally through - it actually shows how strong the system is in that there were many possible "reasonable" initial conditions that could've been selected, since the system is largely self-equilibriating anyway.

Re Finney - if he was blocking bitcoin op-codes, I wonder what he would've thought of Ethereum's scripting lang. Smiley


(and I had to ask if you were Ray cuz your early posts on here were signed "Edward")
legendary
Activity: 924
Merit: 1132
October 11, 2014, 11:27:14 PM
#22

Assuming you're Ray Dillinger - is that conversation public anywhere? I don't recall reading it on http://www.mail-archive.com/cryptography%40metzdowd.com/msg10005.html

Uhh, I don't remember ever agreeing to keep it secret, but we didn't talk about it on the list either.  At that time Hal was elbows-deep in the transaction scripting code, and I was checking Satoshi's work on the crypto on the blockchain architecture. 

Finney had a lot to worry about with the transaction scripting and wound up blocking out about a dozen more opcodes than Satoshi had wanted to, but I found essentially nothing wrong with the block structure.  I am still freakin' amazed how tight he got that blockchain design. 

And, yeah, I'm Ray Dillinger.

legendary
Activity: 1078
Merit: 1006
100 satoshis -> ISO code
October 11, 2014, 11:16:36 PM
#21
I remember this discussion, actually.  

Finney, Satoshi, and I discussed how divisible a Bitcoin ought to be.  Satoshi had already more or less decided on a 50-coin per block payout with halving every so often to add up to a 21M coin supply.  Finney made the point that people should never need any currency division smaller than a US penny, and then somebody (I forget who) consulted some oracle somewhere like maybe Wikipedia and figured out what the entire world's M1 money supply at that time was.  

We debated for a while about which measure of money Bitcoin most closely approximated; but M2, M3, and so on are all for debt-based currencies, so I agreed with Finney that M1 was probably the best measure.  

21Million, times 10^8 subdivisions, meant that even if the whole word's money supply were replaced by the 21 million bitcoins the smallest unit (we weren't calling them Satoshis yet)  would still be worth a bit less than a penny, so no matter what happened -- even if the entire economy of planet earth were measured in Bitcoin -- it would never inconvenience people by being too large a unit for convenience.


Very interesting background. Thanks for sharing!

Unfortunately, the most important factor was missed: inertia to change, and observing the existing convention of 2dp in fiat currencies, and the vast majority of financial computer systems also supporting 2dp.

So, the ideal would have been 21 million million bitcoins, with 100 sub-units each. It would have made for large numbers from early on, like dogecoin has today, but as the network and ecosystem grew, bitcoin amounts would rapidly look sensible in day-to-day transactions. The Italians did fine when it was 1500 lira to the dollar for many years.
legendary
Activity: 1722
Merit: 1004
October 11, 2014, 10:55:19 PM
#20
I remember this discussion, actually. 

Finney, Satoshi, and I discussed how divisible a Bitcoin ought to be.  Satoshi had already more or less decided on a 50-coin per block payout with halving every so often to add up to a 21M coin supply.  Finney made the point that people should never need any currency division smaller than a US penny, and then somebody (I forget who) consulted some oracle somewhere like maybe Wikipedia and figured out what the entire world's M1 money supply at that time was. 

We debated for a while about which measure of money Bitcoin most closely approximated; but M2, M3, and so on are all for debt-based currencies, so I agreed with Finney that M1 was probably the best measure. 

21Million, times 10^8 subdivisions, meant that even if the whole word's money supply were replaced by the 21 million bitcoins the smallest unit (we weren't calling them Satoshis yet)  would still be worth a bit less than a penny, so no matter what happened -- even if the entire economy of planet earth were measured in Bitcoin -- it would never inconvenience people by being too large a unit for convenience.



Assuming you're Ray Dillinger - is that conversation public anywhere? I don't recall reading it on http://www.mail-archive.com/cryptography%40metzdowd.com/msg10005.html
legendary
Activity: 924
Merit: 1132
October 11, 2014, 10:28:14 PM
#19
I remember this discussion, actually. 

Finney, Satoshi, and I discussed how divisible a Bitcoin ought to be.  Satoshi had already more or less decided on a 50-coin per block payout with halving every so often to add up to a 21M coin supply.  Finney made the point that people should never need any currency division smaller than a US penny, and then somebody (I forget who) consulted some oracle somewhere like maybe Wikipedia and figured out what the entire world's M1 money supply at that time was. 

We debated for a while about which measure of money Bitcoin most closely approximated; but M2, M3, and so on are all for debt-based currencies, so I agreed with Finney that M1 was probably the best measure. 

21Million, times 10^8 subdivisions, meant that even if the whole word's money supply were replaced by the 21 million bitcoins the smallest unit (we weren't calling them Satoshis yet)  would still be worth a bit less than a penny, so no matter what happened -- even if the entire economy of planet earth were measured in Bitcoin -- it would never inconvenience people by being too large a unit for convenience.

hero member
Activity: 642
Merit: 500
Evolution is the only way to survive
October 11, 2014, 07:37:27 PM
#18
maybe , Nakamoto thought 1 bitcoin could be a very large unit in the future ( 1 BTC = 100,000,000 USD ) . So 1 satoshi would be the basic unit of value
legendary
Activity: 1302
Merit: 1008
Core dev leaves me neg feedback #abuse #political
October 11, 2014, 04:39:02 PM
#17
Thanks for your really awesome answers.

After carefully reading them here are some extra facts
https://en.wikipedia.org/wiki/Integer_(computer_science)

A 32bit signed integer can represent numbers from −2,147,483,648 to 2,147,483,647

if you wanted to do accounting for modern currencies with pure integers due to denomination factor of 100 (1$ = 100 cents)
then the obvious choice is to work in cents
Code:
        1 -> 1 cent
     100 -> 1 $
in such a system the most you can represent is slight above 21 million $
Code:
    from  −21,474,836.48 $      to       21,474,836.47 $
Note that left of side of the dot there are 8 digit/decimal places (21 xxx xxx).
Lets assume 1BTC worth(represents) 1 $.
To make it symmetric the dynamic logarithmic range has to be [ 10E-8 , 10E8 ]
This range permits exponential growth or decay for 2*8 orders of magnitude!
Code:
21 xxx xxx . yyy yyy 01

 Roll Eyes

That is interesting. 

I would say that in a vast majority of computing applications,
optimizing how one types variables is of little importance.

Obviously there are exceptions, such as databases, or
the situation when you've mistakenly truncated data.

But usually, software development projects
have a hard enough time being completed on schedule,
within budget, while fulfilling requirements and
providing adequate robustness.   
 





member
Activity: 119
Merit: 112
_copy_improve_
October 11, 2014, 03:53:17 PM
#16
its the whole joke of satoshi being japanese and their superstition and love of the number 8

end of

 Grin Grin Grin Grin I can verify this!!!!



PS: Greeks prefer (ε) , (ω) and of course https://en.wikipedia.org/wiki/Greeks_(finance)
legendary
Activity: 4410
Merit: 4766
October 11, 2014, 03:43:23 PM
#15
its the whole joke of satoshi being japanese and their superstition and love of the number 8

end of
member
Activity: 119
Merit: 112
_copy_improve_
October 11, 2014, 03:23:33 PM
#14
Thanks for your really awesome answers.

After carefully reading them here are some extra facts
https://en.wikipedia.org/wiki/Integer_(computer_science)

A 32bit signed integer can represent numbers from −2,147,483,648 to 2,147,483,647

if you wanted to do accounting for modern currencies with pure integers due to denomination factor of 100 (1$ = 100 cents)
then the obvious choice is to work in cents
Code:
        1 -> 1 cent
     100 -> 1 $
in such a system the most you can represent is slight above 21 million $
Code:
    from  −21,474,836.48 $      to       21,474,836.47 $
Note that left of side of the dot there are 8 digit/decimal places (21 xxx xxx).
Lets assume 1BTC worth(represents) 1 $.
To make it symmetric the dynamic logarithmic range has to be [ 10E-8 , 10E8 ]
This range permits exponential growth or decay for 2*8 orders of magnitude!
Code:
21 xxx xxx . yyy yyy 01

 Roll Eyes
hero member
Activity: 770
Merit: 504
October 11, 2014, 02:18:30 PM
#13
There is a line in the code like this:
COIN=100000000;

It tells the wallet how many satoshis that shall be called a BTC. Nothing more. if the line is changed to, for example
COIN=100;
and you had 1 bitcoin, your wallet would now say that you had 1 million bitcoins. But it would not make you any richer, because the code works only with with satoshis 'under the hood', and does not really care how many satoshi we choose to make up one bitcoin.

But why the choice of such a high number like 10^8 ? My guess: If bitcoin were to become widespread, most people would have to do with only small fraction of a single bitcoin. Not vey practical. But as I explained above, the code can very easy be changed to denominate the unit. I think Satoshi or whoever wrote the code thought that such denominations should take place as the coin spread out. Why? Maybe because such denominations it would also make it less evident how much the bitcoin money supply favorizes early adapters?
legendary
Activity: 1722
Merit: 1004
October 11, 2014, 01:15:26 PM
#12
I think the OP is asking: "Why do we call 100,000,000 of the protocol's actual base units (ie, satoshis), '1 bitcoin'? Why not one million base units, or a thousand?"

That is, there are approx 2,100,000,000,000,000 eventual base units ("satoshis"). Those are the units the protocol actually deals with on the network. Why do we happen to call 100million of them "1 bitcoin"?

"1 bitcoin" is just a term. I think Satoshi picked 100,000,000 base units because bitcoin needed a standard denomination size in the early users that felt fairly natural to people. If one cup of coffee cost 27500000 units, it'd be weird/confusing to people. In day to day life, people are used to transacting in single, double, triple, and quadruple digits. Go much beyond that, and people get confused. Worse, use a number with a lot of sub-decimal-point digits and people just can't handle it.

In bitcoin's early years, it seemed reasonable/natural that "50" units would be mined every 10 minutes. Early adopters could mine a few hundred in a day, and then play around by sending amounts like "10", "75", "200" around to each other. If, instead, "1 bitcoin" meant "1000 base units", those numbers all would've had a lot of zeros after them and been cumbersome to look at and deal with.

So I think it was just a balance issue, with a goal of keeping the reasonable day-to-day transaction amounts in-line with what people are used to. Note that at this point, today, with bitcoin's dramatically increased purchasing power, it would be more convenient if "1 bitcoin" meant "100,000 base units" or even "100 base units". We wouldn't be dealing with sub-decimal-point numbers for buying a cup of coffee. Hence the push people were making last year to consider "millis" the day-to-day standard, and now the push being made for "bits".

Obviously no matter how you chop up the nomenclature, you control the same percentage of the total supply, so it doesn't matter in an economic sense. But humans are difficult, so there are certainly ease-of-use and familiarity concerns to optimize.
sr. member
Activity: 860
Merit: 253
SmartFi - EARN, LEND & TRADE
October 11, 2014, 12:39:27 PM
#11
The choice is pretty arbitrary. I can think of two possible reasons.
The first is possibly convenience. It allows you to describe a value as a millionth of a bitcoin with two decimal places.
A second possibility is that the total number of satoshis is about 10 times the total wealth of the world in dollars.

The protocol uses a 64-bit number to represent a number of satoshis and the largest possible number is 9,223,372,036,854,775,807, which is about 4000 times the maximum number of satoshis. So I would either increase the maximum number of bitcoins to 84 billion or make 1 BTC = 1011 satoshis, rather than letting those 12 bits go to waste.
I don't think this would be necessary. It is unlikely that bitcoin will ever have enough value that it will be necessary to have this level of precision.

For the first several years of bitcoin being in existence, QT did not even support displaying the balance in amounts other then by two decimal places
legendary
Activity: 1302
Merit: 1008
Core dev leaves me neg feedback #abuse #political
October 11, 2014, 12:30:53 PM
#10
The choice is pretty arbitrary. I can think of two possible reasons.
The first is possibly convenience. It allows you to describe a value as a millionth of a bitcoin with two decimal places.
A second possibility is that the total number of satoshis is about 10 times the total wealth of the world in dollars.

The protocol uses a 64-bit number to represent a number of satoshis and the largest possible number is 9,223,372,036,854,775,807, which is about 4000 times the maximum number of satoshis. So I would either increase the maximum number of bitcoins to 84 billion or make 1 BTC = 1011 satoshis, rather than letting those 12 bits go to waste.

I don't think optimization in such a manner is necessary. 
Probably Satoshi thought that MORE than 8 digits
would be burdensome for user interface and user experience.
legendary
Activity: 4466
Merit: 3391
October 11, 2014, 11:28:11 AM
#9
The choice is pretty arbitrary. I can think of two possible reasons.
The first is possibly convenience. It allows you to describe a value as a millionth of a bitcoin with two decimal places.
A second possibility is that the total number of satoshis is about 10 times the total wealth of the world in dollars.

The protocol uses a 64-bit number to represent a number of satoshis and the largest possible number is 9,223,372,036,854,775,807, which is about 4000 times the maximum number of satoshis. So I would either increase the maximum number of bitcoins to 84 billion or make 1 BTC = 1011 satoshis, rather than letting those 12 bits go to waste.
legendary
Activity: 1302
Merit: 1008
Core dev leaves me neg feedback #abuse #political
October 11, 2014, 10:15:46 AM
#8
Not understanding this topic one bit, even after fyookball's explanation...

a bitcoin is divisible down to 8 decimal places.  OP is asking "why" Satoshi designed it that way.
Pages:
Jump to: