I quite like how i2p does it. Public keys are part of addresses, human readable names are user defined and shared but static.