In the current implementation of EOSIO software, the account balances can not be made confidential. Each user's balance is stored in a table alongside their username. In addition to this, any transaction performed by a user would show the
to fields, so that you could follow who sent tokens to another account.
A semi-workaround to this would be to deposit your funds from account A to an exchange, and then withdraw the funds to account B from the exchange. This has two potential flaws:
- People could trace the size of your transfers (notice that Alice transferred 1532.0132 EOS to an exchange, and Bob withdrew 1532.0132 EOS from the exchange).
- The exchanges are centralized entities that can have their data leaked, breached, or subpoenaed.