  Zero-knowledge proofs have always provided a clear solution when it comes to
conveying information from a prover to a verifier or vice versa without
revealing essential information about the process. Advancements in
zero-knowledge have helped develop proofs which are succinct and provide
non-interactive arguments of knowledge along with maintaining the
zero-knowledge criteria. zk-SNARKs (Zero knowledge Succinct Non-Interactive
Argument of Knowledge) are one such method that outshines itself when it comes
to advancement of zero-knowledge proofs. The underlying principle of the Zcash
algorithm is such that it delivers a full-fledged ledger-based digital currency
with strong privacy guarantees and the root of ensuring privacy lies fully on
the construction of a proper zk-SNARK. In this paper we elaborate and construct
a concrete zk-SNARK proof from scratch and explain its role in the Zcash
algorithm.
