Backend runs on Google Cloud Run with containerized deployment via GitHub Actions. The frontend is a Vite/React application with Auth0 authentication and Mapbox for geospatial quests.
Zero-Knowledge
The system is designed so that Quest-Lock never has access to a user’s new password. This is achieved through client-side encryption and a secret-sharing scheme.
- Password Generation & Splitting:
- A user plans
nquests and generates a new, secure password on the client. - This password is then split into
2ncryptographic shares using Shamir’s Secret Sharing.
- A user plans
- Share Distribution & Storage:
- All
2nshares are encrypted client-side before any transmission. - The user’s device stores
nof the encrypted shares locally. - The remaining
nshares are stored on the server, with each share being locked behind one of thenquests.
- All
- Reconstruction Threshold:
- To reconstruct the password, a threshold of
kshares is required. - The system enforces that
kis always greater thann(k > n).
- To reconstruct the password, a threshold of
This model ensures that neither the user (with only n shares) nor the server (with only n shares) possesses enough information to reconstruct the password independently. Access requires the user to complete a sufficient number of quests to combine their local shares with the server-held shares, meeting the k threshold.