There is not a path in the wallets business logic that allows 'skilled hackers to bypass protection', however, as snat said this morning there were live forks, and we now had to restart our wallets to get on the right chain.
But the most accurate question is, why do we have to delete blocks and chainstate to recover our wallets? Thats a question for me, why does the wallet favor the chain with the least work, after working 4 weeks perfectly?
I believe the answer has something to do with our strict CPID mining rules. When a fork is a true alternative (IE lets say we have two baby forks at 5000 diff on block N+1), those two forks have two different sets of possible CPIDs. Our wallet being inherited from dash will not reconsider a block to be good after its marked bad. I think we need a feature programmed in that allows us to recover in this situation to the chain with the most work.
Rob,
All my wallets works perfectly, without restart. 1.1.3.8 (64-bit) version (win7 64bit) about 30day+