What are zk-SNARKs? — A Review of Homomorphisms

I am studying homomorphic hidings using this post from the Zcash blog and this article from Wikipedia as a reference. I am writing about homomorphisms and homomorphic hidings as a way to synthesize what I’ve learned.

Homomorphisms

A homomorphism is a map between two algebraic structures that preserves the operations of both structures.

Let’s say we have groups G and H. We can define a map E that takes elements of G and sends them to elements of H: