reputation-gated-onion-egress is a Tor onion service that egresses to the clearnet only for clients who present a zero-knowledge proof of membership in a curated set. No login, no account, and the gateway never learns who you are. The proof is a Semaphore membership proof, scoped to a daily epoch so the same member produces the same nullifier within a day (that is the rate limit) and a fresh one across days (that is the unlinkability).
Two cryptographic costs run in that system, and they sit on opposite sides:
- Proof generation runs on the client. The shim mints one proof per epoch and reuses it, so a member pays this once a day, not once a request.
- Proof verification runs on the gateway, on every single request, before any bytes egress.
I wanted the real numbers for both, isolated from the network. So this benchmark calls generateProof and verifyProof directly.