I think Avatars is super fun and the compression method is fantastic lateral thinking
I also like the idea of considering a users ‘identity’ as a package.
In terms of compression and self expression this idea is fairly balanced, where it might be unbalanced is when we think about development times and also longer term goals. So there’s some additional considerations I’d like to propose which I’ll get to in a moment, but first I wanted to address the 3 points of feedback.
Renaming Contacts with Display Names
An often requested feature is allowing users to rename their contacts, wouldn’t that address this issue? That way the “three word names” are placeholders for a users Display Name for the contact. It seems to be this would be the fastest to develop, most expressive and direct way to address this feedback.
Having that said I agree that having profile images allows for better user heuristics in identifying other users, meaning less initial work and maintenance of the users contacts.
To me, these are just wordlists, we could provide translations, recall that the seed phrase (bip32) has wordlists for other languages, yet iirc we have not implemented them except for English. Doesn’t that mean we’re making things harder in a worse way by making it harder for people who speak other languages to access their funds? iirc this wasn’t an issue in the Chinese community for Bitcoin and is commonly accepted.
Granted this has to be done on the client side and not transmitted over the wire, as that would lead to leaks of language preference/nationality - a violation of privacy.
The other issue with this is that if the person is addressed by there three word name in chat there will bound to be confusion, but perhaps that is negligible as if people are speaking entirely different languages, they probably can’t communicate well.
Three Word Names are awkward by design
I think it’s important to keep in mind the three word names are placeholders in a Display Name, they are awkward by design, as it incentivizes username registration, thereby locking up SNT.
Perhaps more nuanced, another question is, what if I don’t want an avatar or profile image? Since the avatar comes from the sender and not the recipient, there is a case where the situation is as it is today still stands, which wouldn’t resolve the users ability to identify people.
I point this out because the arguments of three word names being confusing as a justification for the feature don’t hold, by design users are supposed to be pseudonymous by default - the action of registering a username is exercising the right to reveal oneself.
Having that said, the ability to reveal one’s identity by way of profile image or avatar is certainly desirable.
Meeting Network Capacity demands of Messaging Networks
To me this is the meat and potatoes of the issue and where we need more consideration.
Would we be doing Avatars if network capacity wasn’t an issue?
I think before we address these problems in the user interface, it’s important to backup and understand our requirements better and where we have to go in the medium term. Take a look at the network capacity constraint, asking ourselves what are our goals for the messaging network?
Our holy grail is to be able to support a user-base comparable to Signal, Telegram, Facebook Messenger & WeChat, and from our competitor research here and here. (These are internal documents, I’ll copypasta the relevant info below)
We know that to compete with big tech, we need our p2p network to support 50-200 messages per MAU per day, iirc Status messages are padded to 1kb, so in the Avatars comparison, a profile image is worth ~9 messages, or 5% of a users daily messaging capacity. If a user changes their profile image once a week, about 0.6% of their weekly messages.
On Whatsapp 100 million videos are being shared daily, and their messaging system is handling more than 10 billion messages each day. On WeChat they are sharing 38 billion messages per day, 410 million voice messages are sent each day, and 205 million videos daily.
Our network has to meet these network capacity demands. Recall we already allow sending images in Status, arguably the rate of profile image changes would be substantially less than images shared in chats.
The optimisations for profiles need to be quantified against general image sharing in the network, it would appear to me that profile optimisations may be negligible in comparison with image sending, and that they are possibly not worth solving at the app level.
App developer bandwidth & SNT Utility
The argument then becomes, is this the best use of time for the app developers?
Keep in mind we’re waiting 6+ months for certain features to be developed that are comparable in complexity. It’s likely we wouldn’t see Avatars implemented until mid next year. In that time, how much do we plan to grow? The userbase at that time already be sending images and utilising the network.
As we grow over the coming years, we will have to meet this demand on the network. Fundamentally the problem the Avatars idea is trying to address lies within Vac.
Currently the messaging network is altruistic, but the network capacity issue will be solved by introducing economics for decentralised packet routing, which is the core of SNT utility.
Supporting Images in Profiles
This creates an argument that perhaps supporting images in profile would be:
- faster and easier to develop for app developers (as they’re already bogged down)
- delegates the problem to where it needs to be solved (Vac)
- more consistent with user ux expectations
- more expressive (i can use any image, rather than just presets)
- creating a reasonable demand on the network, thereby increasing SNT utility and value
This would also act as a forcing function for Vac to innovate and deploy solutions to solve network capacity problems sooner rather than later.
In this view, the more network capacity utilization the better (within reason) for the overall value and growth of the network. The more people are sending images, the more the network is utilised, the more SNT is held and exchanged, the more people are incentivised to run their own nodes.
Question of optimal profile image broadcast protocol
Of course there would still be the need to be efficient in how profile image updates are broadcast, which would require exploration. Initial thoughts - each user can have a topic (which would be good for a user’s Timeline feature, a Twitter alternative, which is essentially just a different visual representation of a read-only chat) in which other contacts subscribe to, or changes published in chats when the user next interacts with them, which would account for public chats and might possibly be faster.