Skip to content

Commit e08b1b6

Browse files
committed
readme
1 parent 6052043 commit e08b1b6

File tree

1 file changed

+34
-19
lines changed

1 file changed

+34
-19
lines changed

README.md

Lines changed: 34 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,44 @@
1-
# Local testing
1+
# CoMatch 🍑🌶️ Dating
22

3-
```bash
4-
npm i -g vercel@latest
5-
vercel build
6-
vercel dev -t "<TOKEN>"
7-
```
3+
> A private dating experiment built with real cryptography, using MPC and ZK proofs.
4+
5+
## 🧠 What is this?
6+
7+
Co-Match is a privacy-preserving dating prototype with:
8+
9+
🔐 End-to-end encrypted preferences
10+
11+
🤝 Match discovery via secure MPC (thanks to [co-snarks](https://github.com/TaceoLabs/co-snarks/))
812

9-
# Flow
13+
✅ Mutual match proof with ZK-SNARKs (thanks to [Noir](https://github.com/noir-lang/noir))
1014

11-
## frontend
15+
🙈 No swiping. No profile. No public data.
1216

13-
- input preferences
14-
- split into shares
15-
- send each share to a different MPC server
16-
- wait for matching
17+
Built during [#NoirHack](https://www.noirhack.com/) as a fun experiment to combine MPC and ZK.
1718

18-
## backend (mpc server)
19+
Live Demo (might be slow — ping me if it is!): https://co-match.vercel.app/
1920

20-
- receives shares (both "user1" and "user2")
21-
- matches user1 against all user2
22-
- write matches to DB
23-
- stores user2
21+
## 🧪 How it works
2422

25-
# MPC Server
23+
You enter your preferences and your Twitter handle, so your matches can contact you 🌶️.
24+
Since I have your Twitter, it's not completely private... 😏 Next step: build an in-app chat.
25+
26+
Preferences are encrypted in your browser.
27+
Ok, I'm lying here... 🙊 [co-noir](https://github.com/TaceoLabs/co-snarks/tree/main/co-noir/co-noir) cannot yet run in the browser (not possible to compile to wasm), so I'm actually encrypting your preferences on the server. But this will soon be changed!
28+
29+
They're sent to multiple MPC servers that check for mutual matches.
30+
31+
If a match is found: A ZK proof is generated (with Noir) that confirms the match without revealing your preferences.
32+
If there's no match: no one ever knows.
33+
34+
## Run
35+
36+
### MPC server
37+
38+
### Front
2639

2740
```bash
28-
cargo run --bin gen_cert -- -k data/key0.der -c data/cert0.der -s localhost -s ip6-localhost -s 127.0.0.1 -s party0
41+
npm i -g vercel@latest
42+
vercel build
43+
vercel dev -t "<TOKEN>"
2944
```

0 commit comments

Comments
 (0)