But... When i try to reverse the last (let's say) month: I'd have to go back to (x-4464) => 6 blocks/hour * 24 hours/day * 31 days/month.
By the time i reached height (x), the rest of the network would have reached height ~(x+4374). Oops
I don't understand how the 4374 was obtained.
Let's say I have 51% of the hashrate and 49% of the hashrate is owned by honest miners.
I mine 4464 blocks during a month. Number of blocks mined by honest miners can be easily calculated using proportion method.
So, number of those blocks would be
4464*(49/51) = 4288.
Am I missing something?
nah, you're probably right...I had a hectic day so far, filled with discussions about a huge database scheme and i'm left with most of my ability to concentrate gone. To this point, i'm still unable to get my head wrapped around the method used to solve this problem... This evening, when i'm back to normal, i'll probably either completely agree with what you said, or i'll disagree (altough those odds are small).
My train of thought was pretty simple: there's a 2% difference in hashrate, so if the attacker generates 100 blocks, the honest miner creates 98. If the attacker creates 4464, the honest miner creates 4464 - (4464*0.02).
The conclusion still remains the same tough: if you want to roll back a longer time of historic blocks, the time you'll need is a lot more than just the time you need to mine said blocks, since the honest miners will keep adding new blocks on top. If you decide to do a roll back of future blocks to the state at this point in time, this isn't the case.