-
Project Name
Privacy-Preserving Geofencing on PUSH Protocol -
Email
asghaier76@gmail.com -
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 asghaier76@gmail.com
- Twitter @ahmad_sghaier
- Linkedin ahmad-sghaier-2619a645
- Discord asghaier#8475
-
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 -
Proposal Category
- Tooling
- Protocol
-
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
-
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
-
Funding Requested
10,000 USD ~ 30,000 $PUSH -
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 -
Wallet Address
0x01509b45b52875Ce7158bD1a73748a2dB1dB2642