Hello Bitcoin developers and miners!
I made screnshot today of last 24 hours stats of miner pools.
https://www.dropbox.com/s/cutgbv884yq55xz/2017-11-15%2007.34.20.png?dl=0The pools BTC.com & BTC.TOP & ViaBTC & AntPool have more 51% of power.
I saw near time ago these pools in Bitcoin Cash mining... But lets imagine a following situation:
These (or other pools) which have >51% of power decide to censor blocks of other miners. Further we shall call them "bad miners". Other miners will be called as "good miners". It can be made by easy: by filtration of "coinsbase" content. The "bad miners" can use a following algorithm:
To see last block. It mined by our "bad miners" group? If yes, we mine next block based on last block. If no: we ignore this block and mine on last block from our group...
For example first next mined block from "good miners". All nodes follow to PoW strategy. It's OK. But in next time in bitcoin network there appears the block from "bad miners" chained with block earlier (the parent block is from "bad miners" too). It's fork. The "good miners" will flow to both chains. But "bad miners" have >51% so very quickly the their chain will win. And last blocks of this chain will consist only blocks from "bad miners". All nodes will switch to chain of "bad miners". The blocks of "good miners" will be orphans. The "good miners" will loose money from mining and very quickly will have to leave from bitcoin. The "bad miners" will keep turned on censor algorithm and they will have permanently control mining power... Only a sudden arrival of a large miner with a power of more than 50% will defeat them. I see no other idea.
Is it realistic scenario? I think yes and it can happen right now.
What methods of counteraction can this be? Somebody can think about to change hash alogorithm. For example as in Bitcoin Gold. But in any case and there this can happen again in time.
----------------------
Here is idea for bitcoin developers. It's raw idea but very easy one and i think it can be realized. May be through hard fork... It's better to be puzzled about this right now, before it's too late.
Please to see image of
https://www.dropbox.com/s/fh7aatme4dwh0st/2017-11-15%2010.13.35.png?dl=0I suggest to use consensus of "greater nonce in coinbase will win" for last 6 blocks for example.
It's easy. All nodes should must temporarily believe 6 last blocks based on the block that has greater nonce right after fork . And only if after fork not more 6 blocks after. If more 6 blocks after fork nodes and miners should trust chain with cumulative PoW (as now). This requirement is necessary so that the "bad miner group" does not make secretly blocks with a large nonce. And this requirement is necessary for checking of blockchain by new nodes.
This is a random-deterministic algorithm of choice that gives a chance to create a block for any miners, not only with a large hash power. This algorithm should be followed by miners. But it does not require any additional changes in the protocol itself. I think, in this algorithm, first of all, a group of good miners is interested. They could on their side run the algorithm for choosing the best chain after the fork. Also, nodes could implement this algorithm. Perhaps, everything can be done through soft-fork, or simply by updating the software.
Your opinions? I would like to hear the opinion of Bitcoin Core developers.