
Building https://xitter.cf/t.co/3BH3T3KFzw, CS PhD @UMich, security & privacy (incl. network security, AI privacy), prev Recommendation (& surveillance š) @BytedanceDevs.
š² Stanford, CA
Joined October 2020
- Tweets74
- Following655
- Followers197
- Likes768
If youāre a regular person using ChatGPT/Claude, you have no real privacy options today. Weāve built anti-censorship and anti-surveillance tools before, and the pattern is always the same: the people who need it most have the least power to get it. We needed this ourselves, so weāre building it for all of us!
Can we build a blind, *unlinkable inference* layer where ChatGPT/Claude/Gemini can't tell which call came from which users, like a āVPN for AI inferenceā?
Yes! Blog post below + we built it into open source infra/chat app and served >15k prompts at Stanford so far. How it helps with AI user privacy:
# The AI user privacy problem
If you ask AI to analyze your ChatGPT history today, itās surprisingly easy to infer your demographics, health, immigration status, and political beliefs. Every prompt we send accumulates into an (identity-linked) profile that the AI lab controls completely and indefinitely. At a minimum this is a goldmine for ads (as we know now). A bigger issue is the concentration of power: AI labs can easily become (or asked to become) a Cambridge Analytica, whistleblow your immigration status, or work with health insurance to adjust your premium if they so choose.
This is a uniquely worse problem than search engines because your average query is now more revealing (not just keywords), interactive, and intelligence is now cheap. Despite this, most of us still want these remote models; theyāre just too good and convenient! (this is aka the "privacy paradox".)
# Unlinkable inference as a user privacy architecture
The idea of unlinkable inference is to add privacy while preserving access to the remote models controlled by someone else. A āprivacy wrapperā or āVPN for AI inferenceā, so to speak.
Concretely, itās a blind inference middle layer that:
(1) consists of decentralized proxies that anyone can operate;
(2) blindly authenticates requests (via blind signatures / RFC9474,9578) so requests are provably sandboxed from each other and from user identity;
(3) relays prompts over randomly chosen proxies that donāt see or log traffic (via client-side ephemeral keys or hosting in TEEs); and
(4) the provider simply sees a mixed pool of anonymous prompts from the proxies. No state, pseudonyms, or linkable metadata.
If you squint, an unlinkable inference layer is essentially a vendor for per-request, anonymous, ephemeral AI access credentials (for users or agents alike). It partitions your context so that user tracking is drastically harder.
Obviously, unlinkability isnāt a silver bullet: the prompt itself still goes to the remote model and can leak privacy (so don't use our chat app for a therapy session!). It aims to combat *longitudinal tracking* as a major threat to user privacy, and its statistical power increases quickly by mixing more users and requests.
Unlinkability can be applied at any granularity. For an AI chat app, you can unlinkably request a fresh ephemeral key for every session so tracking is virtually impossible.
# The Open Anonymity Project
We started this project with the belief that intelligence should be a truly public utility. Like water and electricity, providers should be compensated by usage, not who you are or what you do with it. We think unlinkable inference is a first step towards this āintelligence neutralityā.
# Try it out! Itās quite practical
- Chat app āoa-chatā: chat.openanonymity.ai/
(<20 seconds to get going)
- Blog post that should be a fun read: openanonymity.ai/blog/unlinkā¦
- Project page: openanonymity.ai/
- GitHub: github.com/OpenAnonymity
Erik Chi retweeted
Wrapped zkAPI + Tor + extra cover traffic + local LLM prompt rewriting in an open-AI compatible daemon, and made a "paranoid mode" wrapper for my agent harness (pi):
Each conversation gets assigned a separate Tor circuit, your requests are masked with random cover traffic, zkAPI ensures you don't leak your identity through payments, and all prompts are locally rewritten (bring-your-own-local-model; I'm using qwen3.8-flash-next)
github.com/vbuterin/zkapi/trā¦
My agent harness is wrapped with a bwrap sandbox (also experimenting with MicroVM) and wrapped again with torsocks, so everything it does goes through Tor.
Here's what me asking it to do a simple research task looks like.
It's getting quite usable! Though you definitely still pay quite a bit in increased latency, especially when starting a new conversation.
Also, Tor is far from optimal here for privacy; the cover traffic mechanism is okay against passive adversaries but much weaker if the LLM provider is colluding with the guard and actively manipulating timing. This kind of task really requires a more specialized mixnet, probably take the tradeoff of a higher bandwidth multiplier and built-in constant cover traffic.
Also also, much cheaper zkAPI deposit and withdraw gas costs are coming to mainnet soon.
Erik Chi retweeted
Doing a bit of a self-experiment.
Goal: use my personal health and travel data to provide personalized diet and exercise recommendations for me, using frontier models but in a way that avoids leaking to them any private information.
Strategy: use a local model (Qwen 3.8 Flash Next) to orchestrate, and use powerful remote models as a tool call to benefit from higher-level thinking and knowledge that the local model does not have.
Three-layer approach to privacy:
Avoid leaking personally identifiable information, or leaking my identity through writing style -> local model writes the queries to the frontier model, not me
Avoid leaking who I am through the payment channel -> zkAPI
Avoid leaking who I am through networking / IP -> Tor
You need all three (and finally we have all three, at least to some extent)
A skill file teaches the local model when and how to construct minimally-data-revealing requests to remote models. Use zkAPI-wrapped-with-Tor as a CLI tool.
And everything works! I got the recommendations back, info from frontier models helped to improve them.
Main deficiencies:
* Tor is really not optimized for request-by-request de-linking, which is the only form of network-layer privacy that really makes sense in today's world (long-running identifiers are too fragile). Probably not private enough, and latency 10-100x higher than it could be, at the same time.
* The skill file's request construction strategies are definitely far from optimal.
* Qwen 3.8 Flash Next is still too slow for comfort. It's comfortably running at 20-30 TPS, but it would only really start to feel fast at 100+
* There is a tradeoff: the more careful you are about what data you give to a remote model, the less it can help you
github.com/ethereum/zkapi/puā¦
Super excited to announce our collaboration with @ethereumfndn to take Unlinkable Inference further!
Erik Chi retweeted
Quick updates on the Open Anonymity project (@OpenAnonProject)!
1. OA-chat is live! You can now signup: chat.openanonymity.ai
2. We collaborated with @ethereumfndn (@VitalikButerin, @DavideCrapis, @VittoStack, @curryrasul) to develop zkAPI, a new zero-knowledge protocol for accessing gated / paid APIs with unlinkability. Itās like a generalization of OA unlinkable inference that also abstracts payments away. Now also available on OA-chat!
I'm excited because more infrastructure should exist where privacy and sovereignty is foundational and people are in control.
On a new episode of #TheBraveTechnologist, Open Anonymity Project creators Ken Liu (@kenziyuliu) and Erik Chi (@erik_chi_) discuss how the next generation of AI systems could be built with privacy as a default.
Listen to their full chat with @LukeMulks: brave.com/podcast/e120/
Erik Chi retweeted
Had a great time discussing AI user privacy on @augmind_fm š
One discussion Iād like to highlight from the chat is that what constitutes the "Privacy Problem" has been shifting as AI progresses.
It used to be that we care a lot about *training-time* user privacy: what gets trained into the model, and what the model would spit out. Say you take an LLM and a book (or any piece of sensitive text). We cared about whether the book would be regurgitated ("memorization"); whether you can remove such a book from the model ("unlearning"); and whether you can detect the book being trained ("membership inference"). And as part of mitigating these problems, we work on training-time techniques like differential privacy, careful data cleaning, and model alignment/guardrails (in ~increasing order of adoption). Guardrails seem to work well enough that people donāt really talk about sensitive model outputs anymore.
Whatās more pressing today, I argue, is *inference-time* user privacy: the fact that intelligent models are served at scale on private user data, which are then centrally managed at model providers. Intelligent models mean that user profiling is now cheap and automatic; your activities can be continuously analyzed to reveal new sensitive insights. Whether your data is trained on or not became less relevant. Having a "digital clone" of you by building on your memory/personalization is now way more profitable. The threat vector changed from the model misbehaving to the provider misbehaving.
Because of this, the techniques to improve user privacy would look different than before. Theyāll look less like fancy learning algorithms (e.g. RL to steer model to output paraphrase of a book than the original book), and more like *peripheral systems* sitting around closed models that we do not control but still want to access. The OA project (openanonymity.ai) is an example: you could build a zero-knowledge proxy to mediate AI inference and combat surveillance, and leverage smaller models to help users build personal memory on-device. This is not to say that thereās no room for training; you just train for different things, and on auxiliary models than the closed models.
thank you so much to @EchoShao8899 @michaelryan207 @shannonzshen for hosting me!
āIn the past, with social media or web search, you are like, here are some specific keywords, here are some posts that I am okay to share with the world; whereas with AI, it feels like you are private, it feels like you are talking to an entity that wonāt reveal your information.ā
For EP4, we welcome @kenziyuliu, Stanford CS PhD student and creator of The Open Anonymity Project. Ken approaches AI privacy from angles most researchers don't: deep learning, applied cryptography, privacy technologies, and real human behavior all at once. In this episode, he shares how to achieve provable private AI inference, why today's agents are a privacy nightmare (and how to fix it), his vision on intelligence neutrality, and more.
0:00 - Teaser
1:08 - Prelude: Introducing Ken Liu
1:41 - Monologue: The Open Anonymity Project
3:41 - Kenās Path to Privacy Research
6:31 - The Biggest Privacy Concern for LLM Users
9:39 - Three Perspectives on Tackling AI Privacy
10:57 - āAI presents a Uniquely Worse Privacy Problemā
13:44 - The Open Anonymity (OA) Project: Unlinkable Inference
17:50 - Blind Signatures as Unlinkable Authentication
20:52 - Secure Inference Proxies
28:31 - Threat Model in the OA Project
31:39 - What If People Give Away Information In Their Prompts
35:58 - OpenClaw, Privacy Nightmare In Agents
43:00 - The Stories Behind the OA Project
50:14 - Intelligence Neutrality
52:22 - Safety Concerns in a World with Private AI Inference
Erik Chi retweeted
āIn the past, with social media or web search, you are like, here are some specific keywords, here are some posts that I am okay to share with the world; whereas with AI, it feels like you are private, it feels like you are talking to an entity that wonāt reveal your information.ā
For EP4, we welcome @kenziyuliu, Stanford CS PhD student and creator of The Open Anonymity Project. Ken approaches AI privacy from angles most researchers don't: deep learning, applied cryptography, privacy technologies, and real human behavior all at once. In this episode, he shares how to achieve provable private AI inference, why today's agents are a privacy nightmare (and how to fix it), his vision on intelligence neutrality, and more.
0:00 - Teaser
1:08 - Prelude: Introducing Ken Liu
1:41 - Monologue: The Open Anonymity Project
3:41 - Kenās Path to Privacy Research
6:31 - The Biggest Privacy Concern for LLM Users
9:39 - Three Perspectives on Tackling AI Privacy
10:57 - āAI presents a Uniquely Worse Privacy Problemā
13:44 - The Open Anonymity (OA) Project: Unlinkable Inference
17:50 - Blind Signatures as Unlinkable Authentication
20:52 - Secure Inference Proxies
28:31 - Threat Model in the OA Project
31:39 - What If People Give Away Information In Their Prompts
35:58 - OpenClaw, Privacy Nightmare In Agents
43:00 - The Stories Behind the OA Project
50:14 - Intelligence Neutrality
52:22 - Safety Concerns in a World with Private AI Inference
Erik Chi retweeted
New episode of the AM podcast dropping soon!
In EP4, we sat down with @kenziyuliu, CS PhD student at @StanfordAILab and creator of The Open Anonymity Project, to talk about the privacy layer of personal intelligence.
Here's a preview š
Erik Chi retweeted
This is Act II. Act I was about making an anonymity layer for LLMs (VPN for intelligence). Act II is about building a deeply personalized, private assistant on top of that.
The idea is that your context (all your files, messages, deepest desires) is owned and managed by you. For any query, a local/TEE model reads the context to determine what *subset* of context to pull in, and invokes closed frontier models on the context (if open models aren't good enough). With the anonymity layer, different invocations are not linked. So your context can have information about your taxes and your health records, but you never allow any model provider to link the two despite having a unified assistant interface.
The vision of deeply personalized assistants is obvious right now. It is less obvious that you can achieve this privately.
Sharing a super simple, user-owned memory module we've been playing around: nanomem
The basic idea is to treat memory as a pure intelligence problem: ingestion, structuring, and (selective) retrieval are all just LLM calls & agent loops on a on-device markdown file tree. Each file lists a set of facts w/ metadata (timestamp, confidence, source, etc.); no embeddings/RAG/training of any kind.
For example:
- `nanomem add ` starts an agent loop to walk the tree, read relevant files, and edit.
- `nanomem retrieve ` walks the tree and returns a single summary string (possibly assembled from many subtrees) related to the query.
Whatās nice about this approach is that the memory system is, by construction:
1. partitionable (human/agents can easily separate `hobbies/snowboard.md` from `tax/residency.md` for data minimization + relevance)
2. portable and user-owned (itās just text files)
3. interpretable (you know exactly whatās written and you can manually edit)
4. forward-compatible (future models can read memory files just the same, and memory quality/speed improves as models get better)
5. modularized (you can optimize ingestion/retrieval/compaction prompts separately)
Privacy & utility. I'm most excited about the ability to partition + selectively disclose memory at inference-time. Selective disclosure helps with both privacy (principle of least privilege & āneed-to-knowā) and utility (as too much context for a query can harm answer quality).
Composability. An inference-time memory module means: (1) you can run such a module with confidential inference (LLMs on TEEs) for provable privacy, and (2) you can selectively disclose context over unlinkable inference of remote models (demo below).
We built nanomem as part of the Open Anonymity project (openanoymity.ai), but itās meant to be a standalone module for humans and agents (e.g., you can write a SKILL for using the CLI tool). Still polishing the rough edges!
- GitHub (MIT): github.com/OpenAnonymity/nanā¦
- Blog: openanonymity.ai/blog/nanomeā¦
- Beta implementation in chat client soon: chat.openanonymity.ai
Work done with amazing project co-leads @amelia_kuang @cocozxu @erikchi !!
Erik Chi retweeted
AI memory today is a black box: it remembers things about you, but you canāt really inspect it, edit it, or take it with you.
We think memory should be user-owned and user-controlled.
So @cocozxu and I built nanomem: a local-first memory system that turns your chats, notes, and history into a markdown file tree on your device. You can open it, edit it, git-version it, move it anywhere.
No hidden profiles. No lock-in. nanomem treats memory management as a reasoning problem: your memory evolves with you, grows organically from real conversations, and stays independent from any one model or app.
The goal is simple: memory you actually own.
Try it:
npm install -g @openanonymity/nanomem
Blog post: openanonymity.ai/blog/nanomeā¦
Open source (MIT License):
github.com/OpenAnonymity/nanā¦
Erik Chi retweeted
Sharing a super simple, user-owned memory module we've been playing around: nanomem
The basic idea is to treat memory as a pure intelligence problem: ingestion, structuring, and (selective) retrieval are all just LLM calls & agent loops on a on-device markdown file tree. Each file lists a set of facts w/ metadata (timestamp, confidence, source, etc.); no embeddings/RAG/training of any kind.
For example:
- `nanomem add ` starts an agent loop to walk the tree, read relevant files, and edit.
- `nanomem retrieve ` walks the tree and returns a single summary string (possibly assembled from many subtrees) related to the query.
Whatās nice about this approach is that the memory system is, by construction:
1. partitionable (human/agents can easily separate `hobbies/snowboard.md` from `tax/residency.md` for data minimization + relevance)
2. portable and user-owned (itās just text files)
3. interpretable (you know exactly whatās written and you can manually edit)
4. forward-compatible (future models can read memory files just the same, and memory quality/speed improves as models get better)
5. modularized (you can optimize ingestion/retrieval/compaction prompts separately)
Privacy & utility. I'm most excited about the ability to partition + selectively disclose memory at inference-time. Selective disclosure helps with both privacy (principle of least privilege & āneed-to-knowā) and utility (as too much context for a query can harm answer quality).
Composability. An inference-time memory module means: (1) you can run such a module with confidential inference (LLMs on TEEs) for provable privacy, and (2) you can selectively disclose context over unlinkable inference of remote models (demo below).
We built nanomem as part of the Open Anonymity project (openanoymity.ai), but itās meant to be a standalone module for humans and agents (e.g., you can write a SKILL for using the CLI tool). Still polishing the rough edges!
- GitHub (MIT): github.com/OpenAnonymity/nanā¦
- Blog: openanonymity.ai/blog/nanomeā¦
- Beta implementation in chat client soon: chat.openanonymity.ai
Work done with amazing project co-leads @amelia_kuang @cocozxu @erikchi !!
Erik Chi retweeted
š«”š«”š«”
remote APIs (AI inference or otherwise) should really be mediated by an unlinkable, zero-knowledge layer, since whoever on the other side can now easily infer a ton about you with linkage and cheap intelligence
My self-sovereign / local / private / secure LLM setup, April 2026
vitalik.eth.limo/general/202ā¦
Erik Chi retweeted
Replying to @SenSanders
working on a project at Stanford to address this exact issue! openanonymity.ai/
Tinfoil container is super easy to use! Theyāve done a great job that Intel shouldāve done! It solves a few annoyance we had when using Azureās TEE in chat.openanonymity.ai like blackout in updates, TLS binding etc. Try it out!
Replying to @TinfoilAI
3/8 Researchers @daryakaviani at UC Berkeley and @erikchi who's building the Open Anonymity project at Stanford use Tinfoil Containers to quickly build end-to-end private systems using enclaves.
Erik Chi retweeted
congrats on the launch @DanielXieee @QuanliangX and team!! been lucky to witness your tremendous progress!
Origami Robotics is building high-DOF robotic hands with in-joint motors and a co-designed data-collection glove to eliminate the embodiment gap by collecting high-quality, real-world data at scale.
Congrats on the launch, @DanielXieee and @QuanliangX!
ycombinator.com/launches/Pclā¦
Erik Chi retweeted
where's the proof? it seems like it's just "trust me bro, we dont log". that's not a "privacy model", it's a pinky promise.
the plaintext prompts literally go thru your servers, and you can read if you want to.
i really hope that we both want to improve privacy for everyone.
Replying to @ErikVoorhees @openclaw
don't pollute open source project (@openclaw) please
xitter.cf/steipete/status/202857ā¦
Erik Chi retweeted
Replying to @ErikVoorhees @openclaw
Erik Chi retweeted
Replying to @kenziyuliu @openclaw
Yeah this was an older doc oversight, we wanna be neutral on this.
























