"ZEOS will enable fully private and untraceable transactions on the EOS mainnet. An essential component of the protocol is the on chain verification of zk-SNARKS – Zero-Knowledge Succinct Non-Interactive Argument of Knowledge. A trustless verification of zero knowledge proofs is of high value for any dapp or protocol on EOS which aims to protect the privacy of it’s users based on zk-SNARKs.
The ZEOS token contract will provide an on chain verifier for zk-SNARKs on the EOS mainnet. Any dapp or protocol which utilizes zk-SNARKs will be able to use the ZEOS verifier for their own purposes. Developers won’t have to implement any part of the proving system themselves but can just use the ZEOS verifier with their own verifying keys to validate their zk-SNARKs on EOS. Thanks to the ZEOS verifier developers can fully focus on the core logic of their dapp/protocol without having to worry about the implementation of a proving system for their zero knowledge proofs.
The verifier is part of the Groth16 proving system which was developed by Jens Groth in 2016 and implemented by the ZCash developer team. Their Rust open source library “Bellman” can be utilized by anyone to create arithmetic circuits for any kind of zero knowledge proofs as well as generating the corresponding proving and verifying keys. Those keys can be used to (a) generate zero knowledge proofs and (b) verify their validity.
In order to have a trustless on chain verification developers can utilize the ZEOS verifier to validate ZK-SNARKs for their dapp or protocol. For this the ZEOS token contract will provide a public “verify” action which takes a verifying key, a zero knowledge proof and a list of public inputs to verify any particular zero knowledge proof on EOS."