The Mithras Protocol is a privacy-focused UTXO protocol built on top of Algorand via smart contracts and zero-knowledge proofs. The primary use case in mind is cash-based assistance which requires the following properties:
- Initial deposits should be auditable (i.e an NGO can prove they dispersed funds)
- Usage of funds after deposit should be private
- Support for ASAs
This protocol, however, could also be used for any other use case that requires private transactions on Algorand.
Mithras is currently in development. The original proof-of-concept can be found here. The proof of concept is a fork of Hermes Vault and uses AlgoPlonk for the circuits. The new implementation in this repo is being built from scratch and will use the Algorand SnarkJS verifier for the ZKP circuits. The implementation for this new implementation will also differ significantly from the POC. In particular, the POC used in-circuit EDDSA signatures whereas the latest protocol is designed to only have assymetric cryptography outside of the circuit.
For details about the protocol, please refer to PROTOCOL.md.