Until now, all crypto-currencies had fixed mining schedules, dictated by the creator of the currency. Heavycoin takes a different approach by relying on its user-base to democratically decide the mining schedule through decentralized voting. Both the mining schedule and money supply (which still has a maximum upper-bound) are decided through a provably cheat-proof decentralized voting process.
Join the experiment!By mining Heavycoins you can take part in decentralized block reward voting and democratically decide on the following.
- Mint rate of bulk money supply: 128 days to 25+ years
- Maximum money supply: 63M to 128M
- Mining reward lifetime: 5 years to 38+ years
How it worksIntially Heavycoin starts with a zero block reward. The very first miners will have the first opportunity to solve blocks and vote on what the first democratically selected block reward should be. The first 100 blocks (3.3 hours) will decide the starting block reward. From then on, block reward voting will continue, but the votes are counted and averaged every 3600 blocks (5 days).
Heavycoin is configured to mine and vote by default, with a default vote of 512 HVC. If you want to change your block reward vote then see How to vote and RPC voting. Otherwise, to disable voting then see How to mine. When mining is enabled, every time you mine a block your wallet will automatically cast a block reward vote. The Heavycoin network automatically averages these votes every 5 days (3600 blocks) and sets the new block reward accordingly. The block reward is the average of all 3600 votes over the previous voting period rounded to the nearest integer.
Voting phasesVoting is divided into three phases (Mint, Limit and Sustain) in order to allow votes to affect both the mint rate and the money supply, but also to allow the network to be sustained over the long-term. The first phase (Mint) allow a maximum vote of 1024 HVC. The second phase (Limit) allows a maximum vote of 1024 HVC for the first 59,876 blocks, but 8 HVC for the last ~3,600 blocks so it can transition into to the last phase (Sustain). The Sustain phase allows a maximum vote of 8 HVC.
The source won't be released until launch. We are trying to providing binaries (for pool mining software) ahead of the launch, so pool operators can make sure everything is up and running.
In addition to mining (and voting) with the GUI wallets, you can use an external miner. For that, we've created a
Heavycoin fork of cpuminer.Usage: minerd [OPTIONS]
Options:
-a, --algo=ALGO specify the algorithm to use
scrypt scrypt(1024, 1, 1) (default)
sha256d SHA-256d
heavy Heavycoin hash
-v, --vote=VOTE block reward vote
-m, --trust-pool trust the max block reward vote (maxvote) sent by the pool
The external miner gets to write his/her block reward vote into the block. The block reward vote is specified with the -v parameter.
Your vote cannot exceed the maximum allowed block reward vote of 1024. Also, if your vote exceeds the current maximum block reward vote, then you will generate invalid blocks. This is not really a problem because the maxvote only changes in the final (Sustain) phase of decentralized voting. At that distant future you will simply relaunch your external miners with at vote between 0 and 8.
For those unsatisfied with this, the -m option allows the external miner to automatically cap his vote to the maximum permitted vote of the current voting phase. For example if you had -v 1024 and the maxvote reported by the pool was 8, then your block reward vote would be capped to 8. However, we do not recommend using this option unless you really trust the pool (ie. you own it). A dishonest pool operator could try to cheat by sending out an artificially lower maxvote, which would cause all the votes from external miners with the -m flag to be capped at a false maxvote. So really don't use this flag unless you are the pool operator.
NoteFor pool mining, the block's vote could be set by the pool software or the external miners. However, we decided to make vote casting part of the external miner, rather than part of the pool software. If the vote for a given block were calculated and set by the pool software, then there would be scope for malicious pool operators to cheat and skew votes in a way that favors them. By allowing the external miners to write their votes directly into the block, we put the voting power in the hands of the individual miners, rather than the pool operators.
A malicious pool operator could still reject blocks from external miners whose votes they do not like; however, this condition would be easily (and publicly) detectable because of the discrepancy between the hashing power of the external miner and the number of his blocks accepted by the pool. It would be the same as stealing blocks or assigning a false shares. In practice it should be very hard for a pool to cheat like this without being found out and becoming very unpopular!