You're assuming that anonymous payments could only be accomplished if there's some private server that knows the plaintext of everyone's balances and just keeps it secret, but that's not the case. There are ways using zero-knowledge proofs or other cryptographic techniques to accomplish anonymous payments in a decentralized way.
In Zcash or Monero, everyone knows the public blockchain and their own private keys. If you make a transaction, it's broadcast to all nodes. There's no special privileged nodes that people give their keys or transaction plaintexts to. Transaction data doesn't contain the sender, receiver, or amount in a way that's clear to the public. The transaction is made so the receiver can decrypt enough to see that they're the receiver and see the amount. The transaction also contains exactly enough information so that the public can verify that the transaction didn't invent any money out of thin air and instead only sent as much as the sender could, whoever they were. (Zero-knowledge proofs can be made to prove pretty arbitrary results over data even to people missing certain inputs!)
In Zcash or Monero, everyone knows the public blockchain and their own private keys. If you make a transaction, it's broadcast to all nodes. There's no special privileged nodes that people give their keys or transaction plaintexts to. Transaction data doesn't contain the sender, receiver, or amount in a way that's clear to the public. The transaction is made so the receiver can decrypt enough to see that they're the receiver and see the amount. The transaction also contains exactly enough information so that the public can verify that the transaction didn't invent any money out of thin air and instead only sent as much as the sender could, whoever they were. (Zero-knowledge proofs can be made to prove pretty arbitrary results over data even to people missing certain inputs!)