I am building the distributed system, where each user sends signed messages. I dont want to have a certificates system for public keys, like it is done in SSL, so I thought to use public keys themselves as user id. Like:
a message from My public key to Your public key: hello!
and here goes a signature of "hello!", made with sender's secret key.
and anyone can validate the message by sender's id,
which also happens to be his public key, making the message self-contained
One thing I am not sure about... Ed25519 public keys are so short, isn't it risky to use it as unique user id? What's the odds of system generating same user ID for more than one users? given that when public key is generated - system is unable to check if this user ID already exist (because of the distributed nature of the system)