# Project name
ZK-Location Proof
## Project description.
A proof-of-concept STARK that lets a prover attest “I am in a public region during a public time window” without revealing the exact coordinates.
For the hackathon demo, I aggregate in a single AIR:
- 1 inside bounding box proof (x ∈ [xmin,xmax], y ∈ [ymin,ymax])
- 1 time-range proof (ts ∈ [tmin,tmax])
- Many (< 2^12) outside bounding box checks (for each box, either x or y is outside)
Key features
- Privacy: Verifier learns the claim (inside/outside + time) but not the precise location.
- Single-AIR aggregation: Scales to thousands of outside constraints without recursion.
- Practical encoding: Micro-degree fixed-point for robust inequality checks in Plonky3.
## Technologies used
- Language: Rust
- ZK/STARK: Plonky3
## Basic architecture
For this hackathon demo, the architecture is as follows:
- Prover (CLI): Takes private (x, y, ts) and public bounds; generates a single-AIR proof.
- Verifier (CLI): Verifies the proof against public inputs.
## Source code
[https://github.com/Shunsuke0205/zk-location](https://github.com/Shunsuke0205/zk-location)
## Notes and limitations
- The region should be approximated by unions of rectangles.
- No recursive proofs; everything is aggregated in one AIR for simplicity and performance.
## Deployment
- [Slide](https://docs.google.com/presentation/d/1LVK83Qbt8UTnGXpeWBbvBNYZ41fMeuvnpwUUYA0HzY8/edit?usp=sharing)
- [Demo Video on YouTube](https://youtu.be/rWa6L9j5Ato)