So, as an attacker creating a fork, I poison the main branch by using my stake in the main branch and in another branch thereby increasing the odds the main branch will be discarded in favour of my competing fork which contains no 'double-active' stake.
Besides that you have to have enough stake in your branch which is not active in the main branch and that is difficult to achieve.
Because the is no objective way to tell the difference between the main chain and the competing fork with historical keys - both appear to have the same amount of 'online stake'.
In my protocol the online stake can be precisely counted so that the difficulty can be adjusted by a different way from the PoW protocol. We can calculate the difficulty by using the amount of online stake and that will ensure the fake branch grows slower than the main.
In other protocols, we can build a kind of math model to restrict the blockrate into a certain range according to the current blockrate and difficulty to make sure that the higher mining power generate blocks faster than the lower.
In other words, there are objective methods to tell the difference between different mining power by refering to the current blockrates and the difficulties.