"Who am I talking to?" is two questions wearing one sentence. One is about the account that authored the message, the other is about the machine at the far end of the network connection your client actually holds. In a relayed chat those are almost never the same entity, and the difference explains most of the confusion about what a VPN does or does not hide from the person you are messaging. Get the topology right and the privacy question becomes answerable instead of emotional.

Your client talks to the service, not to the other person

Consider a text-chat application where each participant connects to the service and the service delivers messages between accounts. Your client holds a connection to the service; the other participant holds a separate connection to the same service. The message travels from their client to the service and from the service to yours, which means your transport peer is a service endpoint rather than their device.

Alex's client  ->  chat service  ->  your client

Everything that follows comes from that one diagram. Looking at your own connection identifies the service, not Alex. Looking at Alex's connection identifies the service from the other side. Neither observation, on its own, is a packet-level record of the other person's device, and no amount of inspecting your own traffic turns it into one.

Different observers collect different evidence

The service is in a stronger position than either participant because it terminates both connections while also knowing which account owns each one. What it retains, how long it keeps it, which records it joins and to whom it discloses them are separate questions with separate answers, and none of them are answered by "the app is end-to-end encrypted".

You, as a recipient, are in a weak position for network facts but a strong position for content facts: the message text, the display name, anything the sender typed or attached. A sender who types their own address has disclosed it, and that disclosure is not a network observation even though it reads like one.

ObserverSeesCannot conclude
YouYour connection to the service, message contents, sender-supplied detailsThe other client's source address
The other participantTheir connection, message contents, what the service attachesYour source address
The serviceBoth connections, account mapping, delivery metadataWhat it does not retain, or what leaves its boundary

If Alex connects through a VPN, the service may see the exit address for that connection rather than Alex's home address. That is a statement about what the service sees. It does not mean the exit address is handed to you, and it certainly does not mean your own connection is anonymised by Alex's choice of transport.

When the app really is peer-to-peer

The relay model is a model, not a law. Some messaging features establish direct paths between clients, for example a browser-based data channel negotiated through a signalling server, or a file-transfer mode that connects the two devices to avoid relaying bulk data. In those cases the transport peer genuinely is the other participant's device, and the observer analysis changes completely.

An application's friendly label is not enough to tell you which one you are in. "Direct message" describes who reads it, not how it is transported, and a calling or screen-sharing feature inside the same app can use a different topology from the text thread beside it. Read the vendor's documentation for the specific feature, or watch the connections your client opens while you use it.

The end-to-end encryption statement covers who can read protected contents. It says nothing about which servers accept connections, what metadata they see, or whether a direct path exists, and RFC 6973's discussion of observer capabilities is a useful discipline: name the observer, then list what that observer can actually collect.

What this means for a VPN

A VPN changes what the service sees for your connection. It does not change who your transport peer is, and it does not give the other participant a new view of your address. Expecting a VPN to hide you from the person you are messaging is a category error: their client never had a connection to yours to begin with.

What a VPN can change is a direct-path feature. If the app would otherwise negotiate a peer-to-peer connection, routing your traffic through a tunnel may force a relay instead, and some features will behave differently or fall back; that is a real effect, but it is about topology, not about disappearing from the conversation.

Then keep the two questions separate in whatever you write down. Which account sent this, and which endpoint carried it. Answer both explicitly, note who can observe each answer, and stop combining them into a single verdict about whether a message can be traced.

Akụkọ ndị metụtara ya