This is not an issue in my design, I replied here.
Exit makes new user state and also makes the account list include their address.
New transfer transaction from/to the address makes the account list include the address.
You don’t double your fund.
So if you create a block that contains a transaction from an address that has been withdrawn from an older state that block is invalid ?
Seems like this will make a potential dos attack where a user is able to front run a block creation and make its verification fail.
Such a consistency problem about exit can be solved by making “exit block” in certain intervals.
It’s a kind of a block only for exit transactions. If no block is mined in a period, maybe this interval needs to be 1; since this is the case that the operators are not able to mine a block anymore.