The subsequent paragraphs aim to establish the underlying principles that have shaped and will continue to guide the Semaphore protocol. They will also address areas for potential improvement and outline the envisioned features of Semaphore v4.
Please note that this document is currently a work in progress, undergoing regular updates. We will document our progress and provide insights into the reasoning behind specific decisions made along the way.
Semaphore is going to improve its circuit and its data structure to meet the needs of developers. Before even evaluating any new feature or improvement, it is necessary to understand what path the protocol plans to follow, keeping in mind that our target users are developers, but that the ultimate goal is to bring more awareness and usage to privacy in ordinary people's lives. The main technical principles that Semaphore has embraced so far and will continue to adopt are, in order:
During the past several months we have received a lot of feedback about possible features that might be useful for developers using Semaphore. Semaphore V4 is near and it can be a great opportunity to delve deeper into each of those features, considering the principles listed above and keeping in mind some important questions: Why should Semaphore integrate them? Which of the following features are really essential for a general purpose protocol like Semaphore? How much more complex would they make the protocol? Which and how many use cases could they unlock?