A zkRollup with no transaction history data to enable secret smart contract execution with calldata efficiency

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.