GeoZK is a research & development project that combines Zero-Knowledge Proofs (ZKPs), Rust-based Solana smart contracts, and data engineering pipelines to prove user presence in a geographic location without revealing raw coordinates.
📌 Core Idea:
"Prove a user was inside a region at a certain time, without leaking the exact location."
This project blends cryptography, blockchain, and geospatial analytics to create privacy-preserving proofs of location.
- ZK Circuits: Circom, SnarkJS
- Blockchain: Solana (Rust / Anchor)
- Backend / Data Engineering: Python, Apache Spark + Sedona, Airflow
- Frontend: React + Map Visualization (Heatmaps & Analytics)
- Infra: Docker, GitHub Actions (CI/CD)
- Ubuntu setup with Python, Rust, Circom, SnarkJS, Solana, Node.js, Docker
- Repo initialized: GeoZK GitHub
- Folder structure scaffolded with
.gitkeep
- Circom circuit: verify
(lat, long)is inside a polygon (region boundary) - Compile circuit →
.r1cs,.wasm,.sym - Use SnarkJS to generate witness,
.zkey, and verification key - Generate
proof.json+public.jsonand store in/zk_proofs/outputs
- Build verifier in Rust (convert from SnarkJS output)
- Deploy Solana program on Devnet
- Verify zkProofs on-chain & log transactions
- Collect simulated geolocation data (
device_id,lat,long,timestamp) - Build Airflow DAGs for ETL
- Integrate Circom proof generation into DAGs
- Link proofs with device data for verifiable geospatial records
- React-based UI with geospatial heatmaps of verified presence
- Admin panel for manual proof verification (
proof.jsonupload, decode output)
- Unit & integration tests
-
/docswith specs + architecture diagrams + pitch deck - Dockerize all modules & set up CI/CD (GitHub Actions)
- Deploy frontend dashboard + APIs
A privacy-preserving geolocation verification system where:
- Users generate ZK proofs of being inside a region.
- Proofs are verified on Solana.
- Data engineers can run analytics & visualize presence via dashboards.
zk_proofs/: Circuits, inputs, proofscontracts/: Rust smart contracts, verifiersdata_pipeline/: PySpark jobs, Airflow DAGsdashboard/: Frontend + analyticsinfrastructure/: Dockerfiles, CI/CDtests/: Unit and integration testsdocs/: Pitch deck, architecture, notes
See docs/specs/setup.md for environment setup.