ZK-Location Proof

Securely verify your location in a designated area without exposing your exact location. Prove you are in Tokyo, while hiding that you are in Shibuya.

github
  • 100 Raised
  • 280 Views
  • 1 Judges

Tags

  • cypherpunks anonymoous

Description

# 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)

Attachments