Our minimal definition of "electronic money" is the following.
Instead of creating legal tender such as Dollars as banknotes or transactions in some complex obscure banking system, the government offers an official simple centralized API that represents it instead.
Each citizen or legal entity has an account there, and transfers between registered users are just simple API calls.
So for example you would e able to put all your money in the government account instead of using useless banks. And then you would invest it as you want with the investment company of your choice, without tying the "my money is here" with "this is the best investment" aspects of banks.
Centralized system that still attempts some level of privacy.
In it, a central bank issue tokens that are stored offline in your cell phone, a bit like cash bank notes.
When you take those tokens, a corresponding amount gets removed from your bank account, a bit like cash bank notes.
When a transaction is made, tokens are put into a spent token list via central API, and cannot be double spent thereafter. The corresponding ammount is then added to the bank account of the receiver. This also means that offline transactions are not possible.
When emitting, the bank signs the token with their private key. When spending, the bank checks that signature.
How do we prevent the bank from logging which token goes to which user besides trusting that they are running the software we whink they are running? Notably, couldn't timing be used to identify that?