Difference between revisions of "Coinbase account"
(Added page to wiki) |
m (added table of contents) |
||
Line 1: | Line 1: | ||
+ | __TOC__ | ||
+ | |||
The coinbase account is a concept new to the [[mini-blockchain scheme]] and first used by [[Cryptonite]]. The coinbase account actually acts as the input for coinbase transactions, meaning coins are subtracted from the coinbase account in order to fund block rewards. The starting balance of the coinbase account dictates the total possible coin supply. One interesting consequence of this approach is that it's easy to check the balance of the coinbase account and find out approximately how many coins are left to mine. | The coinbase account is a concept new to the [[mini-blockchain scheme]] and first used by [[Cryptonite]]. The coinbase account actually acts as the input for coinbase transactions, meaning coins are subtracted from the coinbase account in order to fund block rewards. The starting balance of the coinbase account dictates the total possible coin supply. One interesting consequence of this approach is that it's easy to check the balance of the coinbase account and find out approximately how many coins are left to mine. | ||
Revision as of 15:36, 18 July 2014
The coinbase account is a concept new to the mini-blockchain scheme and first used by Cryptonite. The coinbase account actually acts as the input for coinbase transactions, meaning coins are subtracted from the coinbase account in order to fund block rewards. The starting balance of the coinbase account dictates the total possible coin supply. One interesting consequence of this approach is that it's easy to check the balance of the coinbase account and find out approximately how many coins are left to mine.
When the balance of the coinbase account reaches 0 the block reward will be 0, however it is possible to provably destroy coins by sending them to the coinbase account. Another possible mechanism for injecting coins back into the coinbase account without inflating the money supply is to implement account tree pruning and feed the "maintenance fees" back into the coinbase account, which is helpful not only because it helps subsidize miners but also because it clears out dust in the account tree at the same time.
64 bits of Granularity
Bitcoin makes use of 2.1 quadrillion units where each coin is made up of 100 million units, resulting in a total of 21 million coins which are divisible by 8 decimal places. However, internally Bitcoin uses 64bit integers, and it could handle a much larger number of coins, so 21 million may sound like a rather arbitrary number, but in fact it is not. Many applications make extensive use of double precisions floats but doubles can only store integers up to 2^53, and that is ultimately why Bitcoin only has 2^50.9 units.
However it is possible to use extended precision floats to exploit the full range of the 64bit integer. This gives the coin supply a much higher level of granularity and is based on a natural upper limit. A coin supply with 64 bits of granularity is made up of approximately 184.4 billions coins, each of which are divisible by 8 decimal places. We have used extended precision floats in Cryptonite so that we're no longer held back by the limits of the double precision float, enabling an extremely large coin supply.
Smart Coin Distribution
There are many ways coin distribution can be done, with Cryptonite it will take 10 years for half of the coin supply the be mined, with a repeating half life of 10 years, but the block reward is adjusted every block so that it changes gradually over time. Sudden large changes in the block reward are not healthy for the network, and it's not clear why Bitcoin was designed to have such long intervals of time between changes in the block reward. Cryptonite also updates the difficulty every block for similar reasons.