ZK-friendly Presence Proofs
Clients can emit privacy-preserving commitments for real-world presence without revealing exact coordinates.
C = H(landmarkId || timeWindow || actorSalt)
These commitments are attached to tickets of kind Visit
and stored by the indexer.
Circuit Interface
- Public inputs:
landmarkId
,timeWindow
,C
- Private inputs:
device_secret
,coarse_location_proof
- Constraint:
H(landmarkId || timeWindow || H(device_secret)) == C
Future work will replace the coarse_location_proof
with a SNARK. See clients/sdk-web
for test vectors.