Try   HackMD

ZK-Groups - Roadmap

The names of the milestones are the names of Saturn's first 7 largest moons, from smallest to largest.

Milestone 1: Mimas v0.x.0 (Aug 31)

The goal of the first milestone is to have a functioning first infrastructure with minimal functionality. Admins should manage their permissioned groups with a simple dashboard and the backend service should provide read-only APIs to generate Merkle proofs or to get group information (e.g. name, size, members). There will be only two components initially: dashboard and API service.

Github Milestone: https://github.com/privacy-scaling-explorations/zk-groups/milestone/1

1. Single sign-on

Admins should sign-in with Twitter, Reddit or Github (SSO). A session remains active so that they can log-in automatically next times.

2. Dashboard

In this first version of the dashboard admins should be able to see the list of the existing groups, and filter or search for specific groups. They should also be able to see their own groups, create new permissioned groups and add or remove members.

There will be many types of groups. In this iteration groups should be permissioned (only admins can add or remove members) and they shouldn't have any constraints (admins can add anyone).

3. APIs

Once admins can create groups and they are saved on MongoDB, the backend service should provide APIs to:

  • generate Merkle proofs for each group member,
  • get group data (e.g. name, size, members).

The storage should be optimized to allow Merkle proofs to be calculated efficiently.

4. Docker containers

Dashboard and API service should be dockerized, so that they can easily be deployed to the cloud (i.e. AWS) and everyone can self-host them.

Milestone 2: Enceladus v1.0.0-beta.x

The goal of the second milestone is to provide more options for creating groups. Admins should be able to create reputation groups and define their own reputation thresholds, and users should join these groups with a simple client application with SSO. Admins should also be able to create on-chain groups using the Semaphore contracts.

Github Sprint Board: https://github.com/orgs/privacy-scaling-explorations/projects/18/views/4
Github Milestone: https://github.com/privacy-scaling-explorations/zk-groups/milestone/2

1. Reputation groups

Users will be able to authenticate with Twitter, Reddit, and Github so that ZK-Groups can calculate their Web2 reputation based on parameters and thresholds decided by the admin of the group.

2. Client application

Users will be able to join reputation groups with a simple application where they will need to authenticate with Twitter, Reddit or Github. They will also be able to join the permissioned groups with a magic link created by the admins, which can only be used once. This application should also show the list of available reputation groups.

3. Invitation codes

When admins create a permissioned group they generate a magic link with an invitation code that can only be used once by users who receive the link.

4. Smart contracts

ZK-Groups will allow admins to create on-chain permissioned groups with Metamask and the Semaphore.sol contract on the Dashboard. Admins will manually add/remove/update members.

A ZK-Groups contract will also be created and it will be used to save the Merkle roots of the off-chain permissioned groups, which will then allow members of off-chain groups to verify their zero-knowledge proofs in that contract.

Additional group filters and sorting will be added to the Dashboard.

Milestone 3: Tethys v1.0.0

The third milestone will finally concern polishing and documentation of the project. New JavaScript libraries could also be built to improve DevEx. After deploying the infrastructure on AWS a blogpost could be published to announce the first stable version of ZK-Groups.

1. Documentation

2. DevEx tools (e.g. JS SDK)

3. General refactoring

4. AWS deployments

5. Blogpost

6. Project name

tags: zk-groups