Shares and Coins

The genesis block establishes a starting
1 very large integer
number of shares, and a fixed number of coins. Assignment records in the blockchain are expressed in shares, while users
2 normally would choose to
see a more friendly representation of coins. The number of shares outstanding changes with each block in the chain, usually slowly decreasing. The number of coins a user is holding is calculated as: the number of shares they are holding, divided by the total number of shares outstanding, multiplied by the number of coins established in the genesis block. As the number of shares outstanding decreases,
3 when coins/shares are assigned, a small portion of the assigned shares do not go to the receivers but are removed from the outstanding shares, this is an incentive to hold the coins/shares and not un-necessarily grow the blockchain with frivolous assignments
every user's number of coins increases.
4 an incentive to hold the coins and not un-necessarily grow the blockchain with frivolous assignments

Fixed point fractions

The fixed point fraction concept is likely to be replaced with the GMP multi-precision arithmetic library. To ensure repeatability across platforms, shares and coins arithmetic is carried out in fixed point integer, instead of floating point. The fixedFract data types include an 8 bit exponent which gives the range of shift left +127 (*2^127) to shift right -128 (/2^128).

Some example shares and coins operations:

  • Initial shares: 2^86
  • Coins: 2^33 ~8.6 billion
    5Coins don't have to total to power of 2 operations, but when they do shift operations can be used instead of multiplication and division.
  • Nanocoin: 1/2^30 coins
    6Roughly one billionth of a coin - recording fees might be as low as one nanocoin per byte.
  • Shares Per Coin: N Shares / N Coins, in this example mantissa: N Shares, exponent: 2^-33
  • Shares Per Nanocoin: N Shares / N Coins / 1^30, in this example mantissa: N Shares, exponent: 2^-63
  • Number of shares charged to record a 2568 byte record: 2568 * N Shares >> 63
  • Number of shares in 50 coins: 50 * N Shares >> 33
  • N shares, expressed in coins: (N shares << 33) / N shares outstanding
Thought: maybe instead of one coin per person in the world, we should target 100,000 coins per person in the world, which would be 2^50ish. Or, instead of trying to take on the world, we could, instead, target a set of shares to a smaller population, say 100,000 users per genesis block/blockchain, averaging 100,000 coin on the chainshares - this comes back around to the idea of ~10B coins again, or around 2^33 (~8.6B) - and then you'll need on the order of 80,000 value chains to serve the whole world population.

No Fractional Shares

2^86 is an extremely large number. Share calculations that produce fractional results are rounded to the nearest integer.