6

I've read that bitcoins are infinitely divisible:

Bitcoins can be divided up and trade into as small of pieces as one wants

How is this possible programmatically? The only thing that comes to mind are floating points which are inaccurate.

Are bitcoins truly infinitely divisible or merely practically?

A link to the relevant source code would be more than welcome.

0

2 Answers 2

6

Bitcoins are only divisible down to 8 decimal places (same FAQ you referenced).

Programmatically all calculations are performed in satoshis using integer arithmetic (1 satoshi = 0.00000001 BTC)

2
  • 8
    If there is a need for them, additional decimal places can be added with concensus of the network. This is why some refer to "infinite" divisibility, because we can select the level that we need as time goes on.
    – Scrybe
    Jan 1, 2014 at 14:27
  • 2
    @CoinEnablers That should be an answer, because it is actually what is being asked.
    – Murch
    Jan 3, 2014 at 2:14
12

If there is a need for them, additional decimal places can be added with concensus of the network. This is why some refer to "infinite" divisibility, because we can select the level that we need as time goes on.

The current level selected in the code (by Satoshi) is 8 decimal places (1 satoshi = 0.00000001 BTC) hence the nickname for the smallest unit currently possible for bitcoin today.

As a thought exercise, if a consensus of the network (miners, but also clients and server applications for compatibility reasons) decides to update to a version of the protocol that includes 16 decimal places inspired by your post, we could end up with a new base unit (1 satoshi = 100,000,000 gracchi) as well as nanobitcoins (nBTC), picobitcoins (pBTC), and even femtobitcoins (fBTC, 10 gracchi)

I have trouble imagining the need for such a thing, unless destroying bitcoin becomes a prevalent method of use. If it is needed the potential is there and will never dilute your held bitcoins, which actually makes it a problem some would love to see the need to solve.

5
  • 1
    Thank you CoinEnablers! By that standard, why isn't every crypto infinitely divisible? Thank you so much in advance!
    – user5107
    Jan 4, 2014 at 2:03
  • 1
    The values in the bitcoin network are stored as the number of satoshis they are made-up from. I.e. if you add eight more decimals, you have to store that much more data in the blockchain.
    – Murch
    Jan 4, 2014 at 3:44
  • @ Gracchus In theory, every cryptocurrency modeled after bitcoin could be retrofitted for more (or less) decimal places. Some altcoins have made changes to these parameters already, but so far I have not seen anyone who has tried to alter one after issuance. @Murch, that is an example of one of many technical details that would need to be solved. Check bitcointalk for more detailed discussions, there are several threads along this topic IIRC (with actual core developers commenting.)
    – Scrybe
    Jan 4, 2014 at 15:03
  • Tadge Dryja explains why 8 decimal places is not enough: youtube.com/watch?v=-lgYYz3y_hY&t=13m43s Jun 24, 2017 at 14:34
  • Note that a protocol change to add further divisibility would be a very invasive hardfork that would additionally require updates to almost every piece of Bitcoin software.
    – Murch
    Dec 28, 2022 at 16:28