Separate chat key per each conversation

Some people already proposed to implement an easy way to switch accounts in app. I want to share my thoughts about that. I think, there shouldn’t be any accounts at all. At least, accounts you share with other people.

I think, instead, for each conversation there should be its own chat key. Maybe, this chat key can even be same for each participant of conversation. I mean, they all can read it and write into it anyway.

It is important, so people you talk with couldn’t crossreference you, even if they know each other and trust each other, but do not know you personally. I think it should be default privacy feature, which don’t require any manual work, just like encryption. You do not opt-in to encryption. It’s just there.

What do you think? Is it possible technically? From seed phrase it is possible to derive multiple wallets. Maybe it is possible to do with chat keys as well?

I don’t like the idea of a different chat key for each conversation. That would make things more confusing, and plus I like having one Status account with one chat key that everyone can reach me with.
If you want a new chat key for each conversation, it’s not too hard to set up a new account every time.

If this were to be implemented, it should be optional and off by default.

When you share your chat key with someone, you find it in the interface and copy it or show QR code to a person. It could be very similar, but with different chat key or QR code each time you open it.

Thing is, having a new chat key for everything would not be possible because the social timeline, communities, blocking users, groups, and much more relies on the chat key to know what user you intend to interact with.

I’m not sure about difference between group and communities. I can see that communities are in beta. But, I guess, both is conversation with multiple participants.

Okay. That part can be problem for groups:

Every participant can invite more people by sharing this key or create twinks (side accounts). Also, that probably means, every participant can talk on behalf of another. Not good.

But that’s not the point. Maybe, we can have many chat keys for every user. One unique key for each conversation user participating in.

It’s like conversation which everyone can read, and only one can write. What’s the problem?

You mean blocking spammers like those who rampage in #status right now? I mean, it’s open conversation, and problem is already present.

Communities are sorta like groups except they can contain categories and other ways to organize chats. They also allow you to have thousands of users in them, whereas groups are limited to 20 participants including yourself.

Let me summarize your proposal:

Alice talks to Bob and Carole.
Alice talks to Bob as “Alice” and to Carole as “Alex” but she does not want Bob and Carole to realize that Alice and Alex are the same person.

For that, then Status could derive a new chat key for every chat (similiar to what a Bitcoin wallet does). So when you accept an incoming message or when you give your chat key to a new person then a new derived key is used.

Things get a bit more complex with groups:
If Bob and Carole invite Alex and Alice in the same group then the UX to “choose your key” is going to be messy, I don’t see an easy way for that.

I like the idea but not sure how the UX would look like as soon as we enter the realm of groups.
Maybe the feature can be limited to 1:1 chats?

Something like that. With groups it possible to do this, maybe. If you have separate key for every conversation, than you have separate identity for groups as well. When you get invited in group, you get new key for that group. Only inviter know your another key (with optional way to proof ownership of your other keys to some other participants individually). And if you got invited twice, than you have that group appear twice in chat list. Or, maybe, you can manage your identities inside group, for convenience.

Interesting idea, when invited you generate a new key for the group.