ZEOS Application
The ZEOS Application implements the ZEOS Orchard Shielded Protocol on the EOS public blockchain. At it's core there is the ZEOS smart contract maintaining all Global Datasets and a library for browser-based user interfaces which allows for easy creation of private transactions according to the ZEOS Orchard Shielded Protocol.
Technology
In order to be able to implement the protocol on the EOS public blockchain services of LiquidApps are being utilized as it turned out that the zk-SNARK verification is too computationally expensive to be executed directly on chain (at this point in time). To work around this current limitation the vcpu service of LiquidApps is utilized to execute zero knowledge proof verification off chain simultaneously on a network of DSPs. The same applies to the merkle path calculations of the Commitment Tree which are too expensive to be executed on chain as well because of the Sinsemilla hash function. For the Commitment Tree itself the vram service is utilized to save RAM costs. Since the merkle tree is kind of a 'write-only' data structure of which only the roots are required to verify its state on chain the using vram to store all merkle nodes is a perfect fit for this data structure. The same applies to the Transmitted UTXO Ciphertext List which is used for the In-band secret distribution of UTXOs. For the verifying key as well as all zero knowledge proofs the LiquidStorage service is utilized. It is possible to use cheap off chain storage for both, verifying key and proofs, since the proof verification is performed off chain using vcpu.