Privacy-Preserving Geofencing on PUSH Protocol

  1. Project Name
    Privacy-Preserving Geofencing on PUSH Protocol

  2. Email

  3. About You
    I am a Blockchain architect and developer with over 5 years of building Blockchain solutions in IoT/Telematics/Finance. I have built number of wallets and tools for different chains ETH/Stellar/EOS/KIN/Libra. I have also worked on building different NFT Smart contracts on ETH/Ploygon and I act as the main technical lead for building an NFT launchpad and marketplace with features of OpenSea integration, rarity tool, Shopify integration and more.

4.Intro and background of those involved. Please link twitter accounts and choose preferred contact method below.*

  • Email
  • Twitter @ahmad_sghaier
  • Linkedin ahmad-sghaier-2619a645
  • Discord asghaier#8475
  1. Project TL:DR
    Push notifications enables reaching users on their devices, PUSH protocol currently enables reaching users on devices identified by wallet addresses. Geofencing is an important feature in push notifications as it allows targeting users based on their locations. Devices capture user locations, but users usually are not willing to share publicly their locations or points of interest. The project is building a privacy-preserving geofencing approach on top of PUSH protocol to allow channel managers to target users/wallets with notifications based on location but without users worrying about exposing their locations and POIs publicly and to others including channel managers and entire PUSH network

  2. Proposal Category

  • Tooling
  • Protocol
  1. Project Overview
    The project will rely on the use of homomorphic encryption technique to allow channel managers to target users based on their proximity for certain points of interest, within a certain distance range.
    Currently, all the algorithm that is needed to enable this has been designed and it will include three parties
  • PUSH network
  • Channels owners
  • Users/wallets

The algorithm will use homomorphic encryption algorithms in specific the Paillier crypto primitive and Louis Proximity privacy-preserving protocol.

The main pieces of the algorithm revolves around a channel manager identifying a point of interest (this can be a physical location or a point in the metaverse) with coordinates (x1,y1) and defines a geofencing area of radius (r).
Then the channel manager send this information (through an initial PUSH notification using the user wallet address) to the user and the user can accept or deny this request to receive geofenced notifications based on the information of (especially the radius r, too small means user location can be inferred to easily, too big means user might receive irrelevant notifications). If the user accepts, then the user will sign a message with the wallet to indicate opting-in for geofenced notification for this specific POI

for the privacy-preserving part, the algorithm works as following
1- Channel manager selects a POI with coordinates (x,y) and use the Paillier primitive to generate the encrypted value of the following terms below using a specific public key for the channel manager (this will be become available to the user)
Enc(x^2 + y^2), Enc(2x), Enc(2y), r; where r is the radius. Then send this in the PUSH notification to the user(s)

2- the user upon receiving the notification and accepting will run a calculation based on this equation which will use the channel public key to calculate an encrypted value of the offset of the distance from the POI

this equation uses additive and multipcative homomorphic encryption
Enc(d + k) = {Enc(x^2 + y^2) * Enc(u^2 + v^2) * Enc(k)} / { (Enc(2x))^u * (Enc(2y))^v * Enc(r^2)}

Now we have an encrypted result of d+k that only the channel manager using the private key can decrypt

the user sends back to channel the following
Enc(d + k), Encp(k), H(k)., where t is a random number, and H is sha256 for k and Encp is encrypted value using protocol main public key

3- The channel decrypts the value of Enc(d+k) and sends to PUSH network the values
d+k, Encp(k), Sign(d+k), sign(Encp(k))

4- Now the network verifies the signatures, decrypts Encp(k) to get k and then calculates d
if d<0 the network send ok back to channel if not send fail

5- channel upon receiving ok then can send targeted geofenced notification to the user

  1. Value Proposition to EPNS
    Geofencing will important in many push notification scenarios
  • Targeted geolocation ads in real life scenarios
  • proximity identification of wallets for wallet-to-wallet communication
  • Metaverse geofencing applications
    9.What are the benefits to the EPNS community for investing in this proposal?*
    Building a very important feature in the protocol that will help open the door for many other use cases and applications, which will serve the community for those who want to add geofencing-based notifications in their applications
  1. Funding Requested
    10,000 USD ~ 30,000 $PUSH

  2. Milestones
    1- Build the protocol utilities for homomorphic functions
    2- Build the algorithm flow for messages exchange
    3- Build a smart contract to represent the network for validations of message
    4- build an example for a targeted geofencing app

  3. Wallet Address


Hi @asghaier
Very interesting topic and proposal.

Are you in conversations with any Metaverse or IoT projects that have signaled their interest in using this?

Also, at which stage of the development is this currently?

Hi @Jaf I know of one project that is interested in this it is in the NFT space but my guess once available many projects can make use of this
For development, I have just finished building the concept and the design, no development yet, planned to start in the next week

@asghaier got a few other questions:

  1. at which stage of the development process are you thinking to integrate Push notifs?
  2. When are you expecting to have an MVP that protocols and platforms can start experimenting with?

The value proposition for Push needs to be quantifiable and attached to goals that show a plan to increase awareness and adoption of notifications and/or Push Chat.

Quantifiable in terms of number of users and projects using your geofencing tech.

1 Like

Nice Proposal and details. Will be great to know some business use cases.

@Guneet among the use cases the following

Content creation like for example CoinDesk can start sending notification that are geo-targeted (only users in certain region will receive the notification related for example to a new article about the regulation on region x)

Geolocation based airdrops campaigns

Users proximity to each other in wallet to wallet communication, a user is interested only in chatting with wallets that are nearby, like in a conference setting

Proof of location, e.g., a hackathon that will require users to prove their existence in the proximity of a venue to obtain their SoulBound Tokens

Token-gating , users/wallets receiving notifications of new perks available in certain geo area

IoT devices, IoT devices advertising their services based on location and proximity


Integration of PUSH notifs will be in early stage, the user will receive as a first thing a PUSH notif from the channel a manager about certain area targeted for geofencing notifs

The notif will include a CTA where the user will either accept or reject enrolling in this geofenced area based on the value of radius (a big radius means too many notifs, small radius means easy correlation of user location)

The plan is to have something workings around mid Dec.

For the Quantifiable items, honestly not able to translate that at the moment but probably some numbers form the general push notification industry show that Notifications with geofencing have double the click-through rate(Location targeting more than doubles performance of mobile ads: report | Marketing Dive). Also, it is found that users will opt out of push notifications if they start to receive too many irrelevant ones, geofencing improves that with putting location into context.
according to a 2018 geofencing survey, 53% of consumers say they have received a geofence alert containing a special offer or discount and have acted on it.

Interesting point here.
During the recent ETH Online Hackathon there was a team building a Web3 Tinder and they were in need of finding near by wallets to create connections
i.e. people in the same city

Very interesting use case!

My biggest concern right now is not being able to attach measurable outcomes to each milestone that have a direct impact in creating more awareness and adoption of Push Notifications.

If you had a plan or some collaborations in the works that would be a great start.