GeoPass: proving where you were without saying where you are
A hardware, software, and blockchain prototype that rewards civic participation using zero-knowledge location proofs.
Background
Cities benefit when people show up: to the park cleanup, the council meeting, the local business district. But most "reward the citizen" schemes need to track exactly where you go, which is a privacy disaster waiting to happen. I wanted to know if you could prove you were somewhere in a region, on a given day, without handing over your GPS trail.
The build
The answer was zero-knowledge proofs. I wrote custom circuits in the Circom ZK library that take a GPS fix and prove it falls inside a defined region, without revealing the coordinates themselves. The device side is a Sony Spresense board with GPS, LTE, and sensors, acting as the trusted source of the location reading. It generates the proof, submits it, and the holder claims a GeoPass token on-chain. Local businesses can then offer incentives to token holders, and the city gets a feedback loop between engagement and local revenue.
Hardware, web services, and smart contracts all in one prototype. It's an "advanced" build in the Hackster sense, meaning there's a lot of glue.
Things I learned
- Writing ZK circuits for geometry is fiddly. Floating point doesn't exist; everything is field arithmetic.
- A "trusted" GPS device is only as trustworthy as its enclosure. Tamper resistance is the real hard problem.
- Prototypes that span three disciplines are the ones people actually remember.
Full writeup and code on Hackster, and the Team Zero project page.