Python implementation of ZCash's Hidden Hiding
To further the understanding of Homomorphic Hidings encryption as used in zkSNARKs. In this program, modulus encryption is used as a form of homomorphic encryption that supports addition, and pycrypt RSA is used as a form of homomorphic encryption that supports multiplication.
By using partially homomorphic cryptosystems, Alice can prove to Bob that she knows the answer to an equation, without having to share the variables of that eqation with Bob. When scaled up to support the verification of polynomial equations, these findings are fundamental to the privacy and anonymity of cryptocurrencies like zcash.
For further reading check out these sources:
https://z.cash/blog/snark-explain.html
https://bitsofpy.blogspot.com/2014/03/homomorphic-encryption-using-rsa.html