April 15, 2022
3 Minute Read

Open Sourcing Worldcoin

We’re excited to announce that we’re open sourcing the Worldcoin stack.

Over the past few months, we’ve been publishing parts of our work and contributing back to some of the main projects we’re using (like Semaphore and Hubble). Now we’re ready to take the next step.

In the coming weeks and months, we will progressively open source most of our work from the last two years. Alongside this, we will post deep–dives explaining each component. Everything will be published with permissive or responsible legal licenses.

We’ve worked towards this milestone from the very beginning, and while there’s still much more to do, we’re ready to provide an overview of our stack and a timeline for when we hope to open source each component of it.

Why This Matters To Us

Our mission is one that cannot be achieved alone or behind closed doors. Transparency and decentralized collaboration are critically important if Worldcoin is to succeed. Of course, open sourcing inevitably introduces risks to a project like Worldcoin: everything from attempted security exploits to operational overhead and legal challenges. But, as much as Worldcoin is for everyone, it should also be by everyone.

Open sourcing means we are transparent about our technology and that community members can provide feedback or contribute directly. We hope that this will inspire and enable others to reuse our code for other interesting projects.

The Worldcoin Stack

Worldcoin consists of many different components. We intend to open source as much as we can as soon as we can, given certain legal and security constraints.

Figure

The Worldcoin protocol includes an optimistic rollup on Ethereum (based on the Hubble Project), as well as tooling to manage anonymous identities and validate zero-knowledge proofs on-chain, using Semaphore. We are incredibly grateful to both the Hubble and Semaphore teams for their important work which helped lay the foundation for development of the Worldcoin protocol.

So far, we’ve built a sequencer for Hubble (implemented in Go) and various infrastructure around Semaphore (implemented in Rust and Solidity). We’ll publish a write-up about all of this soon.

All of these components are already open source under the MIT license:

  1. https://github.com/worldcoin/hubble-commander
  2. https://github.com/worldcoin/semaphore-rs
  3. https://github.com/worldcoin/signup-sequencer
  4. https://github.com/worldcoin/mint-sequencer
  5. https://github.com/worldcoin/semaphore-airdrop

The Orb is the device that enables us to verify uniqueness using biometrics in a privacy preserving way.

We plan to publish blueprints of most of its hardware next month under a license that prohibits using it for surveillance or violating privacy. Alongside this, we’ll also publish a deep-dive into the engineering choices we made and explain how each component of the Orb works.

We’re building tools to make it easy for any developer to reuse the anonymous Proof-of-Personhood that the Orb issues. This will allow anyone to build their own sybil-resistant applications (e.g., airdrops and democratic voting).

We’ll release more information and gather feedback about the SDK at upcoming crypto conferences. We plan to announce full details and open source the Worldcoin SDK under the MIT license in May.

We’ve built the Worldcoin App - available on both iOS (Swift) and Android (Kotlin) - to enable users to verify with an Orb, claim their share of Worldcoin, reuse their anonymous verification in other applications, and take the first steps of their crypto journey. The App fully supports Hubble, interacts with Semaphore, and has basic Ethereum support.

We will talk more about the App soon, but some of its helper libraries are already available and we plan to fully open source the rest of the App under the MIT license this summer.

  1. https://github.com/worldcoin/crypto-native-lib

Wen Orb Firmware? We realize that many people reading this post are very interested in the Orb, and specifically, what is running on the Orb. Today, this includes a custom Linux distribution, a Rust application running on the Orb’s main processor and embedded C code running across several microcontrollers. These manage all of the core operations of the Orb, from image capture to processing.

We plan to open source parts of the Orb’s firmware this year. However, to protect our users, we won’t be able to open source the security-sensitive parts right away. We will provide updates about the potential for a full release of all the Orb’s firmware later in the year.

We use machine learning to assist with image capture and processing. ML algorithms convert the images captured by the Orb to unique codes which are then transformed into irreversible IrisHashes, which will allow us to effectively enable sybil-resistance without storing iris data.

We’ll be sharing a detailed write-up on the neural network architecture in the next few months and plan to eventually open source all the code.

Seeding the Worldcoin Community

Open sourcing serves as a way to increase transparency, but it also makes it possible to begin building Worldcoin with the community. We welcome Pull Requests on all of our repositories, and have set up a Discord server to better communicate and coordinate as a community.

In the coming weeks, we’ll be sharing more about what we’ve been working on and what we’ve learned. We’ll also host regular Q&A sessions on Twitter as we make these announcements.

We look forward to sharing this journey with you.

If you’re interested in working on one of the many parts of the system, have a look at our open positions or just message us directly on any channel.
Authors

Alex Blania, Dan Girshovich, Miguel Piedrafita, Misha Wilcockson, Philipp Sippl, Remco Bloemen, Sandro Herbig & Tiago Sada

© 2021-2022 Worldcoin

All rights reserved.

You’re signed up to receive updates