Well. Analogies work fine. It starts with an invitation because everything is authenticated.
The invitation happens somewhere else. In person, email, text, whatever you trust to be "good enough"
Dear Alice,
If you would like to communicate send a reply addressed to "Sam" from "Henry" at 42 Windsor Gardens.
Sincerely, Bob
Dear Sam at 42 Windsor gardens,
Dhdh&667fhhrjjjjrjeokdns
Sincerely, Henry
Online all the network can see is that Henry is sending Sam a message at 42 Windsor Gardens
Now substitute cryptographic keys for names. And Ip addresses for physical addresses. The server at that address first checks if "Sam" is a valid alias in that server, if not it just drops the message with no reply. Then it checks if "Henry" is a known contact. Again drop if not. Failure is silent to prevent timing attacks and server discovery via pings.
The contents of the reply will be Alice sending Bob her real key and an alias key so he can contact her at her address.
The only things a man in the middle can see are that two nodes are sending data with some ephemeral public keys and what kind of encryption they are using.
A large actor could figure out from IPs who is talking to who, but that is it. You can always go through some onion routing if you really want.
This doesn't cover all the details, like encryption key derivation, and key rotation, but none of that is visible externally. All you get is alias1@server1 sent a message to alias2@server2 those servers and aliases might not even be the actual source or destination. Just one hop on the way.
