-
Notifications
You must be signed in to change notification settings - Fork 4
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Private (Small) Group Chat #145
Comments
Great! Not sure I see a DKG as a m2m, since throghouth the whole process there is some human interaction. As I see it, the ceremony is syncronous, you join, monitor how many people are participating, participate with your share (adding entropy?) and when everyone has participated, its considered done and you exit, storing your share. But correct me if I'm wrong. Regarding the suggested implementation, are we targeting a specific language? |
Rephrased.
Not sure what you mean. Nwaku is the reference implementation so it should implemented there first. Then reproduced.in go-waku and js-waku if it makes sense. Which it would for this particular protocol. |
I was asking because I wasn't sure if the plan was to implement it in nwaku, or other implementation. Just to make the Criteria "Provide a reference implementation"->"Provide a reference implementation in xxx-waku". My initial thought was js-waku since these use cases look more browser related. |
The setting is very important for designing a working and then efficient protocol. Some questions we may try to answer for specific contexts are:
At the moment I believe that the easiest way to proceed is to mimic Status app by requiring each user to instantiate n-1 secure channels with other parties, but by using Noise handshakes/pairings (or derived schemes). Main reason is because this was already planned in waku-org/nwaku#1066 and some work has been done already towards that direction, although de-prioritized at the moment (the issue/rfcs deal with multi-device communication rather than multi-user chats. However the requirement to keep synced all user's devices in multi-device communication can be seen as delivering a message to all parties in a group chat, hence that work can be easily adapted to address this issue). In any case, we might try to target (in parallel to the multi-device communication development) specific contexts/scenarios with a tailored design: in such case, I believe that structuring answers to the above questions + identifying necessary security guarantees we want to provide will help in making the right protocol design choices. |
nwaku is the reference client for Waku so I expect the reference implementation to be in nwaku by default. But that's an expectation I have outside of this issue. But it does not really matter. A reference implementation need to happen and then Waku Product can take over and reproduce the implementation in the other codebases and then harden it once we get feedback from dogfooding/users. |
Let's review this issue and answer the questions once we have more specific requirements from a platform that is interested. Especially if waku-org/nwaku#1066 does not fit the needs. |
Preamble
Creating a new, separate issue, because:
Problem
Platforms using Waku to build small (<12 members) secure group communication functionality do not have any recommendation or specs to follow, nor they have out-of-the-box library to use.
Requirements
We are aware of platforms needing a way to create a secure channel between several users or nodes.
ETH2 Validators
In the case of Eth2 validators wishing to share signing responsibility for a more resilient setup.
In this case, the validators need to create a secure channel with several participants to proceed with the DKG.
group chat
In the context of a marketplace:
In this context, the maximum number of group chat member is 3 (maybe 4 if a second moderator is invited?) hence scalability over the number of members does not seem necessarry.
Notes
@oskarth mentioned that 43/WAKU2-DEVICE-PAIRING could be used to setup several 1:1 channels, similarly to the current Status protocol for group chats: 7/GROUP-CHAT.
Criteria
The text was updated successfully, but these errors were encountered: