Privacy-Preserving Social Networking on the Hyle Blockchain
CipherSocial enables users to find shared interests while preserving their privacy. Using cryptography (Private Set Intersection via Paillier partially homomorphic encryption verified by a ZK-proof), users can discover common preferences without revealing their actual responses.
- Create a Meet: Set up a new meeting with custom questions for participants to answer
- Join a Meet: Participants connect their wallet and answer questions about their interests
- Find Matches: The app uses partially homomorphic encryption to identify shared interests without exposing non-shared preferences of the other user
- Frontend: Next.js (React) with EVM wallet integration
- Backend: Rust-based server with zero-knowledge proof generation
- Privacy: Paillier partially homomorphic encryption for Private Set Intersection (PSI)
- Zero-Knowledge Proofs: RISC Zero's zkVM for verifying computations (the computation being the other user's encryption - you want to verify they aren't lying and sending you encrypted preferences that are different than the preferences they have already committed)
- Blockchain: Hyle for on-chain state and verification
- Rust (latest stable)
- RISC0 Tools
- Hyle (local or testnet) so docker
- Node.js and npm (for frontend)
-
Clone the repository
git clone https://github.com/ssocolow/CipherSocial.git cd CipherSocial -
Build the Rust backend
cd backend/zk-hyle/host export RISC0_DEV_MODE=1 cargo run
-
Set up the Hyle node
# In your local Hyle clone (https://docs.hyle.eu/quickstart/devnet/) export RISC0_DEV_MODE=1 cargo run -- --pg
-
Install frontend dependencies
cd frontend npm install -
Start the frontend development server
npm run dev

