|
November 20, 2013, 10:23:42 PM Last edit: November 20, 2013, 11:49:01 PM by Finski |
|
Just a quick and rough idea that I just came up with. Might be that this has been suggested before and/or that this idea is downright stupid but I thought that not sharing this would be even more stupid if there's even a slight chance that there's something to this.
The idea is really quite simple; a node should prefer within a 2 block window (and perhaps some arbitrary time window, say 30 seconds) that part of the block chain that contains most transactions per block. However, only those new transactions that the node was aware of BEFORE receiving the new competing branches of block chain would be counted towards the transactions-per-block count. (This way the selfish miners couldn't increase their transactions-per-block count using non-publicized self-to-self transactions.)
This way if a selfish miner tries to keep a block (or multiple blocks) that was/were found earlier secret it is more likely that this branch will contain less transactions per block than a block that was found later on by honest miners. After a conflict situation it'd now be more likely that the majority of the network would continue mining on the honest miners' branch and the selfish miners' branch would be discarded.
This would also have a unintended side-effect of potentially filling blocks in the block chain more efficiently due to the fact that bigger blocks would be preferred to smaller blocks published within the time window and miners/pools would be incentivized to contain more transactions in a block (by updating their work more often).
Any and all feedback is appreciated!
|