core: Added new TD strategy which mitigate the risk for selfish mining
Assuming the following scenario where a miner has 15% of all hashing power and the ability to exert a moderate control over the network to the point where if the attacker sees a message A, it can't stop A from propagating, but what it **can** do is send a message B and ensure that most nodes see B before A. The attacker can then selfish mine and augment selfish mining strategy by giving his own blocks an advantage. This change makes the time at which a block is received less relevant and so the level of control an attacker has over the network no longer makes a difference. This change changes the current td algorithm `B_td > C_td` to the new algorithm `B_td > C_td || B_td == C_td && rnd < 0.5`.
This commit is contained in:
@ -44,6 +44,9 @@ var (
|
||||
"TRANSCT__RandomByteAtTheEnd",
|
||||
"BLOCK__ZeroByteAtTheEnd",
|
||||
"TRANSCT__ZeroByteAtTheEnd",
|
||||
|
||||
"ChainAtoChainB_blockorder2",
|
||||
"ChainAtoChainB_blockorder1",
|
||||
}
|
||||
|
||||
/* Go client does not support transaction (account) nonces above 2^64. This
|
||||
|
Reference in New Issue
Block a user