Skip to content

NathaliaBarreiros/ProofLocation

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

78 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation


Logo

Don't Pin Us!📍 - POC for Privacy-Preserving Geolocation Verification

A circuit and front end demo for end users to proof their location (inside a predefined region) without revealing their position (lat, lng)
Report Bug · Request Feature

About The Project

Proof of Location Screen Shot

The Problem

Most companies ask for our geolocation to give us access to location-restricted content, optimized search results, or products based in our region and more. This could be fine if only the data centers weren't always at risk of getting hacked, or even worse, if companies didn’t make us sign data treatment policies that allow them to sell our data to third parties, basically compromising it even more.

Our Solution

ZK Location App

Don't Ping Us!📍 is a zero-knowledge proof system that allows users to prove their presence within a specified geographic area without revealing their exact location.

Select area on map Point outside polygon Point inside polygon

Key features:

  1. Primitive for validating user geolocation without disclosing precise coordinates
  2. Protects user privacy while enabling location-based services
  3. Prevents unauthorized access to and misuse of exact location data

How it works:

ZK Location Diagram

  1. Admin defines a geographic region
  2. User generates a proof of their location (client-side only)
  3. Proof is verified by a smart contract
  4. Access to content/features is granted based on verification result

Benefits:

  • Enhanced user location privacy and security
  • Enables location-restricted content and region-based services
  • Eliminates risks associated with storing and sharing precise location data

This solution addresses the growing concern of location data misuse while still allowing businesses to provide location-based services effectively.

The Circom Circuit

You can find more about the circuit here: CIRCOM CIRCUIT README

(back to top)

Built With

  • Vite
  • React
  • Solidity
  • Typescript
  • Hardhat
  • SnarkJS
  • Circom

(back to top)

Setup and Execution

Folow these steps to run:

(back to top)

Some applications for this primitive

  • Geo-restricted content on apps (Netflix)
  • Geo-restricted app usage (Defi, Neobanks)
  • Alert objects leaving a zone (car rental, parole)
  • Alert objects entering a restricted zone (drones)
  • Geolocated tailored search results (ads, SEO)
  • Events and souvenir minting on valid proofs.

Geo-restricted voting system integrated with MACI

ZK Location Diagram

(back to top)

Future work / Considerations

Challenges Faced

  • RayCasting Algorithm Implementation in Circom
    • Insufficient precision for geolocation
    • Complexity in low-level language

Opportunities/Improvements

  • Explore High-Level ZK Languages
    • Simplify implementation of complex algorithms
  • MACI Integration
    • Complete integration for geo-restricted voting system
  • Research Alternative Location Approaches
    • Investigate geolocation algorithms compatible with ZK
    • Focus on efficient implementation within ZK constraints
    • Explore alternative point-in-polygon algorithms
    • Ensure efficient proof generation on client side

(back to top)

License

Distributed under the MIT License. See LICENSE.txt for more information.

(back to top)

Contact

👩🏻‍💻 Nathalia Barreiros - @NathBarreiros - nathalia.barreirosf@gmail.com

🧑🏻‍💻 Daniel Arroyo - @daniel0ar - danuel0ar@gmail.com

Project Link: https://github.com/NathaliaBarreiros/ProofLocation

(back to top)

Acknowledgments

  • PSE Core Program for their mentorship & support
  • Vivian Plasencia for her insightful tutorials on zero-knowledge dApp development
  • MACI project for inspiration on privacy-preserving voting systems and zk development
  • All contributors and testers who helped shape this project

(back to top)

About

Privacy-preserving geolocation verification using zk-proofs. Prove presence without revealing the exact location.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors