You should look up how Monero and ZCash work.
It's like the Zcash shielded pool, but as an Ethereum L2.
Some Monero developers have created a new project which tries to solve those issues, and add zero knowledge proof to the mix: https://pirate.black
Monero already uses zero knowledge proofs, but in a different way than eg ZCash.