With this knowledge of ZK proofs and zk-SNARKs, we can see how RAILGUN maintains privacy. Users can prove they have the right to spend funds without needing to reveal what those assets are and how much they have of it. Relayers and private pools then obscure the senders and recipients of transactions such that no identifiable information is compromised at any stage in the process.
To use an old-world analogy, RAILGUN users are writers of letters, ZK proofs fact check the contents of the letters, RAILGUN smart contracts are a sealed envelope, and Relayers are mailmen. All an outside observer can see is that a letter has been posted, but they would have no visibility as to what is in the letter or who has sent it.