I love Keybase for this aspect, but something I don't like about it is its device name handling. They don't allow decommissioning old device names, so I end up having 'MyLaptop' 'MyLaptop 1' 'MyLaptop 2'...
I love Keybase for this aspect, but something I don't like about it is its device name handling. They don't allow decommissioning old device names, so I end up having 'MyLaptop' 'MyLaptop 1' 'MyLaptop 2'...
The goal is a 1-1 mapping between devices (keys) and these names. So whenever we need our UX to talk about a key, it can talk, safely, about it in terms of device names. Once committed to your chain of signatures, "Laptop-Warhol" means a specific device key, and it can't be used again. So, for example, if one of your Keybase installs wants to tell you "oh, Laptop-Warhol just added a new device, iPhone-Vangogh" then it doesn't need to look like this: "Key 34858234589234895897234598734 added key 90123845890230948234234324."
If Laptop-Warhold could mean multiple devices (keys), well then we'd need to start talking about the keys. Which is a nightmare for usability.
A lot of this decision was driven by something we've seen with apple devices. Every now and then I'd get a popup on my computer - say when updating iOS - that said something like "you just started using iMessage on a new device, 'chris's iphone'. if you don't know what this you should freak your shit out." well - it has basically said that so many times with the same names over again, that I can safely assume that it's a near-useless warning.
Note I mean unique to you; 2 different users on keybase can name their devices the same.
Generally speaking...it's been a goal from the beginning that names on keybase are meaningful. Similarly if you look up "chris" in in our merkle tree (which is pinned to bitcoin) that leads to a deterministic chain of signatures. inside that chain, where I mention "work-imac-warhol", you're guaranteed to see the same answer as I am. So "chris" is as good as a key fingerprint or safety number. And so is my device name.
Maybe some people are more irritated by that than others (I'm certainly former-type), perhaps consider "advanced" to remove existing names for those who knows what they are doing?
If a user reuses MyMainPhone, just call it MyMainPhone|1 internally, and don't render this in the UI. Then tombstone MyMainPhone|0.
For the former, you can use Wire, which allows you to sign up using an email address (from the desktop). It also syncs conversations across devices and is end-to-end encrypted. You can just share your name or username with others for them to find you.
For the latter, Telegram uses a phone number for registration/activation, but you can set a username and send that to others (or better, share a https://t.me/<username> link). Anyone who's not in your contacts list would never be able to see your phone number, even if you're in the same group chat. They can use your username to tag you in chats or message you privately. (General commentary about Telegram's encryption is out of scope for the point)
I ended up landing on Wire and so far have found it to be really good. You can register with phone number but it is not required and you can register with an email instead.