Imagine you're playing a game of 20 Questions, but the person answering can see exactly which questions you ask — and from the pattern alone, they can reconstruct what you're looking for. That's the fundamental problem with running approximate nearest neighbor (ANN) search inside a trusted execution environment (TEE) like Intel SGX: the hardware keeps your data encrypted, but the sequence of memory addresses it touches betrays the query. Oblivious RAM (ORAM) scrambles those access patterns, but existing ANN algorithms like IVF and HNSW jump around memory in complex, data-dependent ways that make ORAM painfully expensive. Worse, standard ORAM assumes a small pocket of trusted storage the adversary can't see — a security shortcut that, if you take it away ('double obliviousness'), typically squares the logarithmic overhead. O2N2's core insight is to abandon the popular graph- and cluster-based ANN indices entirely and instead build on randomized k-d tree forests, where each query follows a single root-to-leaf path per tree. That single-path discipline is the key: it makes every query's access pattern structurally identical regardless of the data, which is exactly what oblivious computation needs. The trees are randomly rotated to break axis-alignment pathologies, and the forest aggregates results across trees for recall. The architecture splits storage into two tiers inside a pointer-based Circuit ORAM: compact internal nodes (just split planes and child pointers) and heavier leaf nodes that carry the actual vectors. This separation matters because ORAM cost scales with block size — keeping internal-node blocks small means the tree traversal is cheap, and you only pay the full vector cost when you reach a leaf. Each visited leaf is processed through an oblivious selection network that extracts top-k candidates without revealing which vectors were selected, and a fixed-schedule duplicate-removal pass merges results across trees. On the ladder, the paper compares against the strongest known doubly oblivious baselines — not just generic ORAM but prior systems specifically designed for oblivious search. The headline numbers are 9.8× to 125.9× speedup for 10-NN and 100-NN search at high recall targets, tested on real-world datasets scaling up to 100 million vectors. That's a meaningful benchmark scale; many privacy-preserving search papers stop at a million or fewer. The recall targets matter too — the authors specify 'high recall,' meaning they're not trading accuracy for speed in a way that would make the comparison hollow. The integrity picture is solid but not exceptional. The evaluation uses real-world datasets (not synthetic), the baselines are current and named, and the scaling test to 100M vectors is genuine. However, there's no independent replication, no pre-registration, and the paper doesn't discuss what happens when the adversary model shifts from passive observation to active tampering with TEE state. The doubly oblivious guarantee is strong in theory, but the practical TEE attack surface (side channels beyond access patterns) is not addressed. The milestone question for this line of work is whether doubly oblivious ANN can close the gap with non-oblivious ANN to within 10× overhead at billion-scale datasets — the point where real production systems (medical record matching, biometric search, credit scoring) could adopt it without a dedicated privacy-performance budget. O2N2 is at the 100M mark with overhead that's dramatically reduced but still substantial compared to a naked HNSW index. Billion-scale with sub-10× overhead is probably 2-3 years out if the k-d tree forest approach continues to scale linearly. The obvious experiment the authors didn't run: comparison against a singly oblivious (standard ORAM with trusted storage) version of their own system. This would quantify the exact cost of dropping the trusted-storage assumption — the defining contribution of the paper. My read: they likely have these numbers internally and the gap is modest (which would strengthen the paper), but presenting the doubly oblivious result in isolation makes the narrative cleaner. This is a 'saving it for the next paper or supplementary' situation, not a 'it didn't work' situation.