Hello!
BitMonero is a new CryptoNote-based currency we have started a week ago. In this post I'll explain what is a merged mining and why I consider it as a good feature.
Merged mining is the way to use hashpower from one blockchain in several other blockchain. MM happens between two blockchains:
- a "donor" blockchain knows nothing about MM
- a "merge mining" blockchain is able to accept PoW from "donor" blockchain. Several "merge mining" blockchain can use work from "donor" blockchain at the same time (on same mining machine).
Main facts about merged mining1. From the network's point of view
MM saves energy because we use same work for several blockchains.
2. From miner's point of view
MM gives additional coins to miners.
3.
MM increase hashpower of all chains involved because some miners will switch from one-chain mining to MM.
Merged mining algorithmLet's suppose we have a "donor" blockchain AAA and two "merged mining" blockchains XXX and ZZZ. As it is stated above AAA doesn't know anything about merged mining. XXX and ZZZ have to support it explicitely. Non-merged miner will mine each chain separately. Merged miners will do following actions:
1. Create block templates for XXX and ZZZ: blkXXX and blkZZZ
2. Create block template for AAA that includes references to blkXXX and blkZZZ. References are stored in coinbases because there is no suitable location in block header.
3. Mine block blkAAA:
3.1 Calculate hash for blkAAA (we don't need to calculate hash directly for "merged mining" chains as soon as they can accept PoW from "donor")
3.2 Compare hash with difficulty for AAA, XXX and ZZZ.
3.3 Submit block to corresponding network if difficulty is sufficient
3.4 Go to 3.1
Miners are free to choose any "donor" blockchain and any set of "merged mining" chains they want to support. A number of mining configurations is possible:
1. One chain mining
2. One "donor" + one "merged mining"
3. One "donor" + several "merged mining"
4. Fake "donor" + several "merged mining"
The number of "merged mining" chains miner can support at the same time isn't limited directly. As soon as at least one difficilty target is met miner can send a block to corresponing network. But there is always only one "donor" chain at the same time: each miner has to choose his own "donor" chain or use fake "donor" for mining. Fake donor means that you really don't mine any "donor" chain but only mine several "merged mining" chains together. Configuration with two donor chains isn't possible.
"Donor" chain can have more or less hashpower than "merged mining". Relative hashrate isn't important for merged mining: "donor" chain can have less hashrate that "merged mining" one. "Merged mining" network accumulates hashrate from both "donor" chain and from all other "merged mining" chains with same PoW. "Donor" chain can't use PoW from other networks directly.
Bytecoin and BitMonero merged miningIn out case BCN is a "donor" blockchain. No code changes will be implemented in BCN.
BMR can be a "merged mining" chain. In case it will accept PoW from BCN or from any other "donor" or "merged mining" blockchain with CryptoNight PoW.
In case of merged mining available each miner can choose
- to use or not to use "donor" chain
- the specfific "donor" chain to use
- the number or "merged mining" chains to support
This way nobody will loose from merged mining with such an implementation.
Action planMerged mining needs a hardfork: all users are to update their damons. We can't do such changes ourselves. We are asking miners to state their opinions. How to express your opinion:
- if you don't want "merged mining" in BitMonero you don't have to do anything
- if you want "merged mining" in Bitmonero you have to update yout mining daemon now. New mining daemon will issue blocks with an incremented minor_version field. In case > 75% of blocks mined will have an incremented minor_version we will accept "merged minng" and new code will be published on git.
Calculations will be perfromed on 29 April. 750 blocks with incremented minor_version from last 1000 are required to switch for merged mining.
Here is a "voting for merged mining" daemon for Windows:
https://mega.co.nz/#!ogxTXIBJ!GeAuLXWLM-YAF41ylfn2w14ZTUovRehicrevIIAph9Q
For Linux you need to build it yourself.