[[moore_s_law]]

Moore's Law states, “the number of transistors that can be placed inexpensively in an integrated circuit doubles about every 18 months.”

Since the creation of coins is based on how quickly processors can compute hashes for a given problem, EnCoin must adjust the difficulty to account for Moore's Law or too many coins will be created.

*Coin-Hours* are used to determine how quickly currency has been created.

`Coin-Hours = Number of Peers Per Mint Block * Time Between Mint Blocks`

If there are 35 users paid in a given Mint Block and 3 hours have passed since the last Mint Block from that SupplyNet, the Coin-Hours for this block is 35 * 3 or 105 Coin-Hours.

Coin-Hours are added to a value stored in the Consensus Block. The number of Coin-Hours and the number of coins created is kept track for a period of 30 coin-creation CBs. For a CB to count as being a coin-creation CB, a certain number of coins must be minted leading up to that CB. These 30 CBs are called a Coin Creation Period (CCP). 10 of these such periods are maintained in each CB with the newest overwriting the oldest. For a CB to count as a coin-creation CB, the following formula is used:

```
Minimum Coins to Count for CCP = # of Coins Minted in Last 10 CCPs / 300 * 0.50
OR
Minimum Coins to Count for CCP = 1,000
```

Whichever is higher. By multiplying by half in the first formula, the amount of coins required to increase the difficulty can go down over time so that it is not trivially easy to avoid increasing the difficulty by staying just under the coins necessary to do so. However, even during CBs when not enough coins are produced, the Coin-Hours and coins are still recorded so that a maximum number of coins can be created before changing the difficulty.

`Maximum Coins Before Difficulty Change = # of Coins Minted in Last 10 CCPs / 10 * 1.25`

To determine the increase in processor power, it is simply a matter dividing the number of coins by the Coin-Hours to get the number of hours it took for an average computer to make one coin, then compare it to the previous CCP. The increase in power is determined with this formula:

`Processor Power Increase = (Previous CCP Coin-Hours / Previous CCP Coins) / (Current CCP Coin-Hours / Current CCP Coins)`

If this number is less than one, one is used so that the difficulty can never go down, as processor power does not ever decrease. To avoid intentional increases in the difficulty, a weighted system based on the last 10 CCPs is used to determine the change in difficulty.

NOTE: There may be a maximum number of coins per CB or one CB may count for more than one part of a CCP to prevent some new architecture (such as GPU mining in the case of bitcoin) from creating coins incredibly cheaply for long.

Except where otherwise noted, content on this wiki is licensed under the following license: CC Attribution-Share Alike 3.0 Unported