According to the Hawk paper:
"Hawk, a decentralized smart contract system that does not store financial transactions in the clear on the blockchain, thus retaining transactional privacy from the public’s view. A Hawk programmer can write a private smart contract in an intuitive manner without having to implement cryptography, and our compiler automatically generates an efficient cryptographic protocol where contractual parties interact with the blockchain, using cryptographic primitives such as zero-knowledge proofs."
Input Hawk program is split into its public contract and private contract components. The public contract is Serpent code, and can be executed directly atop an ordinary cryptocurrency platform such as Ethereum. The private contract is written in a subset of the C language, and is passed as input to the Pinocchio arithmetic circuit compiler.
To avoid implementing SNARK verification in Ethereum’s Serpent language, we must add a SNARK verification opcode to Ethereum’s stack machine. We finally compile an executable program for the parties to compute the Libsnark proofs according to our protocol.
Does it mean that Hawk integrates automatically zero-knowledge techniques such as SNARKs to provide privacy for smart contracts?
And if yes, in this case, can Hawk be an alternative to Integrating Zcash on Ethereum (ZoE) project?
Is there any practical experiment using Hawk?
Also, cannot we use Solidity language for using Hawk?