For example GnuPG has a Public Key Server, where users able to obtain other users public-keys by using a key ID.
OpenPGP User IDs
User IDs in OpenPGP are used to connect keys to entities like names
and e-mail addresses. These are used to search for keys on key
servers, and matching them to users/e-mail addresses.
node_a> gpg --keyserver hkp://keyserver.ubuntu.com --send-keys EFA2F330 node_b> gpg --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys EFA2F330
go-ethereum provides this approach for
Whisper where key-ids might be the user’s Ethereum address in order to obtain other geth nodes’ public key for
targetPeer (optional): Peer ID (for peer-to-peer message only).
Than is actual from this comment:
It is indeed be the enode of your target peer. See https://github.com/ethereum/go-ethereum/blob/master/whisper/whisperv6/api.go#L294.
Overall, if I use
enode as alternative to public-key, which is much larger string than the public key itself.