Confidential token transfers using zero-knowledge proofs and homomorphic encryption.
Or, if you are lazy like us - watch someone "Try the demo!" youtube.com/shorts/YfbM7zEPLno
MIST enables private token transfers where transaction amounts and account balances remain encrypted. The system uses ElGamal homomorphic encryption over elliptic curves combined with zero-knowledge proofs to maintain privacy while ensuring transaction validity.
- Circuits: Noir
- Contracts: Cairo
- Verification: Garaga
- Proving: Barretenberg
- Homomorphic scheme: ElGamal over Elliptic Curves
- Proving system: Ultra Keccak Honk (ZK flavor)
- Frontend: React + Tailwind
- Tools: Vite, gh-pages, scarb
Detailed app readme React-based frontend built with Noir, bb.js, and Garaga. Provides the user interface for managing encrypted balances and initiating private transfers. Build, integration and deployment handled by Vite and gh-pages.
Detailed Circuits readme Noir circuits implementing the confidential transaction system. Allows users to transfer assets while keeping balances private through:
- Public key cryptography for user identification
- Homomorphic encryption to hide balance amounts
- Zero-knowledge proofs for transaction validity
- Decryption capabilities restricted to account owners
Detailed Contracts readme
StarkNet contracts for MIST written in Cairo. Handles on-chain state management, proof verification, and encrypted balance updates.
Implementation from https://github.com/shramee/noir-v1-elgamal/blob/main/README.md Detailed Cryptography readme ElGamal cryptosystem on elliptic curves for additive homomorphism. Covers the mathematical foundations of ElGamal, its adaptation to elliptic curve groups, and implementation in Noir.
# Clone the repository
git clone https://github.com/shhtarknet/mist-app
cd mist-app
# Install dependencies
cd app && pnpm install
# Start development server
pnpm dev
See the Application README for detailed setup instructions.