ophobia is derived from scopophobia. Scopophobia is an intense fear of being watched.
ophobia started as a much broader effort: a privacy-first blockchain co-designing the cryptographic, diffusion and network layers in one architecture. After scoping the work, we decided to drop the blockchain and focus only on the mixnet, the network layer that hides IP-level metadata. That layer is where existing privacy coins are weakest, and it is useful on its own, independently of any ledger.
The sections below keep the original motivation, because the research question and threat model still drive the design of the mixnet.
In a global context where data protection and online anonymity have become strategic concerns, can two economic agents today perform a truly anonymous monetary transaction?
Existing privacy coins such as Monero and Zcash offer robust answers at the transactional layer (hiding amounts, addresses and the transaction graph) but leave the network layer largely exposed. Faced with a global passive adversary capable of observing a significant fraction of internet traffic simultaneously, metadata analysis (IP addresses, propagation timing, peer topology) is enough to deanonymize a substantial share of transactions, without breaking the underlying cryptography.
ophobia is a research effort to design a blockchain entirely dedicated to confidentiality, co-designing the cryptographic, diffusion and network layers within a single unified architecture, built from day one to resist this threat model.
ophobia is designed against Global Passive Adversary (GPA) with the following capabilities:
- Observes a significant fraction of internet traffic in real time.
- Records IP-level metadata, packet timing and peer-to-peer topology.
- Cannot break standard cryptographic primitives.
- May correlate on-chain data with off-chain network observations.
- Characterize the network-layer leakage of current privacy blockchains under a GPA.
- Design a unified architecture combining:
- Cryptographic layer: confidential transactions, sender/receiver/amount privacy.
- Diffusion layer: gossip protocols hardened against timing and topology analysis.
- Network layer: mixnet-based transport providing strong unlinkability of broadcast traffic.
- Evaluate the trade-offs between strong anonymity, latency, throughput and regulatory compliance.
- Explore optional compliance hooks (selective disclosure, sanction-list filtering) compatible with strong default privacy.
This project is strictly academic and research-oriented. The full implementation will not be released publicly, safeguards (sanctioned-address blacklist, selective disclosure, viewing keys) are integrated by design, and the goal is to explore the trade-offs between strong anonymity and regulatory compliance, not to provide an operational tool for circumvention. Any publications will follow responsible-disclosure principles and the ethical guidelines of our institution.
- @0x7manny: Cryptography Engineer
- @0x11semprez: Mixnet Engineer
The mixnet prototype is designed after the Loopix paper: The Loopix Anonymity System (Piotrowska, Hayes, Elahi, Meiser, Danezis, USENIX Security 2017). Loopix provides the base architecture: a stratified topology of mix nodes, Poisson-distributed per-hop delays, and cover traffic (loop and drop messages) to resist a global passive adversary.
mixnet/: the Go mixnet (clients, providers, mixnodes, Poisson mixing, cover traffic).mixnet/cmd/bridge,mixnet/internal/bridge: local TCP bridge exposing each mixnet client to external programs.chain/: Rust prototype whose nodes gossip over the bridge.
Early-stage research. The deliverable is the mixnet. chain/ is a throwaway prototype (ring signatures, PoW, mempool, gossiping nodes) used as a realistic workload: its nodes exchange blocks and transactions through the mixnet over a local TCP bridge. The cryptographic ledger and diffusion layers remain out of scope as products.
Install the ophobia command once (links it into /usr/local/bin):
./ophobia install
Start the mixnet and its bridge (one terminal):
ophobia bridge
Run three chain nodes over it (another terminal):
ophobia demo
Expected: every node ends at the same height and tip.
Other commands: ophobia build, ophobia test, ophobia check, ophobia fmt, ophobia clean. Run ophobia alone to list them.
Tests:
ophobia test
