PROTOCOL / ARCHITECTURE
Every layer needs
an explicit trust boundary.
A real Semaphore membership-proof prototype, separating uniqueness research, issuance, revocation/recovery and application scopes.
Capture & uniqueness
Capture, liveness and biometric deduplication
Research stageEligibility issuance
Issuance, revocation and recovery
Prototype / anonymous issuance unresolvedZero-knowledge proof
Semaphore membership proofs
Real ZK verification testedApplication isolation
Application, activity and epoch separation
Replay rejection and separation testedApplications & asset layer
Application integration and TIME asset layer
Integration and issuance pendingIMPLEMENTED REFERENCE
Constraints tested in the reference prototype.
Actual Semaphore/Groth16 generation and verification, without a mock verifier.
Structured protocol, application, activity and epoch values define the scope. The mutable membership root is not a replay domain, preventing membership changes from resetting nullifiers.
The Node/SQLite reference protects scope + nullifier with transactions and a unique key. Multiprocess contention was tested to allow exactly one acceptance.
Active, suspended and permanently revoked states are distinct. Same-key backup recovery preserves replay continuity; private recovery with a replacement key is unsupported.
A local Worker creates synthetic identities and real proofs. Replay records belong only to the session and reset on refresh or clearing.
OPEN RESEARCH
Explicitly open research questions.
- Anonymous issuance and issuance-log linkage
- Recovery linkage, lost keys and secret rotation
- Real biometric deduplication, liveness and error rates
- Malicious nodes, independent operators and scale
- Timing, IP, messages and small anonymity sets
Technical references and implementation
Upstream components are technical dependencies and references, not partnerships or endorsements of TIME.