In both cases, the main goal is to provide APIs for developers to enable them to integrate anonymity sets and build privacy-based applications. Specifically, the main target audience for both projects are therefore developers. However, in both cases the target audience changes depending on the components.
As we'll see in the Infrastructure section, there's a main component that is the back-end with the APIs (which already includes all the features), and optional add-ons that extend the back-end, abstract the APIs and actually have different targets: end-users or generically project teams.
Broadly speaking, Interep was designed as an anti-Sibyl system based on Semaphore reputation groups. The main audience are web3 enthusiasts who intend to use and export web2 reputation to blockchain. The goal of ZK-Groups is even more ambitious, the idea being to offer a more generic infrastructure to allow people to create their own groups, adaptable to many more use cases. The audience can also be governments, international institutions, non-profit organization and associations.
Their infrastructure is similar, they both have:
But ZK-Groups has also an additional component:
Interep uses Next.js and it is currently hosted on DigitalOcean. The front-end cannot be separated from the back-end, and self-hosting is possible but not very easy. Interep can be considered as a ready-to-use cloud service.
ZK-Groups uses NX and Nest.js, it is structured as a monorepo and each component is completely separate from the others. In addition, each component can be dockerized and self-hosted. There will be a cloud service, similar to Interep and probably hosted on AWS, but it will also be possible to self-host it with Docker and a few commands.
In essence, ZK-Groups aims to be a more professional solution that can be used in production in different contexts (similar to Github Enterprise).
Interep could be built on top of ZK-Groups. It could self-host a specific version of ZK-Groups dedicated to reputation groups and focus on thresholds and dev tools rather than infrastructure.
Interep initially included only OAuth groups (i.e. based on Github/Twitter/Reddit parameters), and then started to expand to include other types of groups: email domain-based groups, Telegram groups, and POAP groups, with the goal of having a set of groups that allows the people in them to prove with as much certainty as possible that their identity is authentic without revealing any data about it. Interep therefore focuses on off-chain reputation groups.
ZK-Groups, on the other hand, aims to cover as many types of groups as possible, which can be broadly categorised into permissioned and permissionless groups. Permissioned groups are those where an admin decides who to add to a group and how. Permissionless groups are those where users themselves can join groups based on certain attributes they have. They can both be on-chain and off-chain.
In the first version of ZK-Groups there will be:
Furthermore, whereas Interep has fixed reputational thresholds (e.g number of Github stars to join a group) decided by the Interep team itself, ZK-Groups lets those who create the groups decide their own thresholds.
zk-groups