a solution would be:
- group creator is “owner” of the group,
- the group works with a symmetric key that is a subkey or in a way cryptographically verifiable/tied to the public key of the “owner” (with channels we are introducing this type of chat, it is also useful for super-groups with lots of members because currently the more members the bigger the message because key needs to be encrypted to every member)
- new members then can immediately know if the person that is trying to adding them to such group is the one with the public key corresponding to the “owner” and ignore it if it doesn’t match
- only “owner” can add new members, other members can only send messages and leave the chat
- a bot can be used if more than one admin is needed
- as a nice side effect, it is easier to share chat history with new members because the messages aren’t encrypted to the current member-list only but with a symmetric key so new members can also decrypt them
as a way to test things out, initially the option to create such “owned groups” could be added to the chatmail core and used by bots to create such groups so we can test it and enjoy the features already without complicating UI