Oblivious Decentralized Identifier Service (ODIS)
The Oblivious Decentralized Identifier Service (ODIS) allows for privacy preserving phone number mappings, password hardening, and other use cases by implementing a rate limited oblivious pseudorandom function (OPRF).
Essentially, it is a service that allows users to compute a limited number of hashes (i.e. PRF evaluations), without letting the service see the data being hashed.
Many useful applications are built on top of this primitive, such as privacy protected phone number mappings, password hardening, and captchas for bot detection.
The hosted architecture is divided into two components, the combiner and the signers.
Currently the combiner is a cloud function and the signers are independent NodeJS servers run by the operators.
Both services leverage the Celo Threshold BLS library which has been compiled to a Web Assembly module.
The combiner and signers maintain some minimal state in a SQL database, mainly related to quota tracking.
For storage of the BLS signing key, the signers currently support three cloud-based keystores: Azure Key Vault, AWS Secret Manager, and Google Secret Manager.