Hello,
im an exprienced software developer but im new to bitcoin core
as part of my 2nd degree theses i wanna implement a selfish miner such as mentioned in this paper -
https://arxiv.org/abs/1311.0243the general idea is pretty known in the community -
every selfish miner in a selfish miners pool maintains 2 different blockchains, and when a new block is found, the selfish pool miners dont necessarily always tell the rest of the network about it.
i downloaded the bitcoin core code, its a pretty big and not that organized code and seems to me that i only need to make a few changes
1. give the node another blockchain
2. patch the code of receiving a new block so that it updates both blockchains according to the algorithm
3. patch the code that broadcasts a new found block so that it wont always broadcast it to everyone etc...
my question is - can someone point me to the places in the code where these features are found?
would also appreciate any other suggestions or tips regarding the implementation
thanks