Coinbase account

From Mini-blockchain Project
Revision as of 15:11, 5 August 2014 by Admin (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

The coinbase account is a concept new to the mini-blockchain scheme and first used by Cryptonite. The coinbase account is the first account in the account tree and 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.

The address of the coinbase account is CGTta3M4t3yXu8uRgkKvaWd2d8DQvDPnpL and you can check the balance of it like so:

listbalances 1 [\"CGTta3M4t3yXu8uRgkKvaWd2d8DQvDPnpL\"]

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 1.84 billion coins, assuming each coin is divisible by 10 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 a much larger coin supply.

Smart Coin Distribution

There are many ways coin distribution can be done, since Cryptonite has such a large coin supply it has a rather long mining period to ensure a fair distribution. It will take 10 years before half of the coin supply has been mined, with a repeating half life of 10 years. The block reward decreases in parallel with the coin supply, meaning it will take 10 years for the block reward to halve and it will take 10 years before half of all the coins have been mined.

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. By adjusting the the block reward every block the network has time to adapt to changes gradually. Cryptonite also updates the difficulty every block for similar reasons (eg to prevent instamines).