Rime
A privacy-hardened Unified Address light client for Zcash. Addressing linkability that exists outside the cryptography.
Why Rime Exists
The privacy gap: Zcash light clients leak metadata through multiple vectors:
- Block range queries reveal wallet age, sync frequency, and transaction density to lightwalletd
- Selective memo fetching exposes exactly which transactions a wallet received
- Transaction broadcasting reveals which transactions were sent with linkable timing
- Connection metadata (IP addresses, timing patterns) enables correlation attacks by both compromised servers and passive network observers
These metadata leaks allow transaction graph reconstruction and timing correlation attacks, revealing exactly what shielded transactions are designed to hide.
ZIP-314 (reserved) identified these issues, and community discussions around it proposed solutions. RIME implements the client-side subset: full memo download, PIR with dummy queries, and Tor integration, plus additional privacy defenses: circuit isolation, bucketing, note density smoothing, and ephemeral/stateless modes.
Reference ZIP-314 analysisPrivacy modes
Privacy features address different adversaries: compromised servers, network observers, or both.
Architecture
Receive-only UFVK client with encrypted local state. All privacy defenses execute deterministically, producing identical metadata patterns regardless of note detection outcomes.
Running Rime
Receive-only UA client. Create or import a UFVK, then pick the sync privacy mode you want.
For full usage, privacy modes, and advanced options, see the README: