GPS Locator - pinocchio61/Architecture GitHub Wiki

Title: GPS Locator

Context

When the attendees are attending an event, they have to provide proof of presence at the event location to get the tokens for editing and voting for transcripts. Most attendees may use mobile devices to access our web app and then locate their current location.

Investigation of different choices

QR Code GPS Beacon Wifi
Location accuracy 1. IP address: only city level 2. GPS: 5-20 m 5-20 meters 1-3 meters 5-15 meters
Range 1 inch QR code → 10 inch distance to scan Unlimited < 30 meters < 150 meters
Platform Specific iOS & Android iOS & Android iOS & Android Android only
Language specific Javascript HTML5 Swift/Java Swift/Java
Price <$1 + GPS feature vendor 10~30 per month FREE 1. $0 iBeacon/Eddystone 2. $25 1. $0 using FIND3 2. Not free if using Infsoft/meraki
Developing cost 2 person-days, May need to build an in-app scanner 2 person-days 15+ person-days, Have to build 2 native apps and work on different libraries. 10+ person-days, Have to build a native app.
Security N/A N/A beacon spoof man-in-the-middle interception Possible Sybil attack

Other concerns

  • QR Code
    • Rely on third-party service
    • None of the dapp browsers supports to access camera
  • GPS
    • GPS signal may be blocked when the devices are indoors.
  • Beacon
    • Bad user experience (attendee may have to switch between mobile app and web app)
  • Wifi
    • Not sure the quality of package FIND3.
    • The event location may not be equipped with Wifi service.
    • Security and privacy concerns
    • Bad user experience (attendee may have to switch between mobile app and web app)

Decision

We choose GPS mainly due to difference of development cost. Although asking attendees to connect to Beacon or Wifi is a more solid proof of presence at location, both options require developing a mobile app to interact with attendees' mobile devices. However, as we have decided to develop a web app and the development resource is limited, we reject Beacon and Wifi as our GPS locator.

As for QR Code, its biggest issue is none of the identity management tools (DApp browsers) supports to access a device's camera, which makes scanning QR code an impossible task.

Finally, we choose embedded GPS as our locator due to its less development cost, better user experience, and no cost from our budget.

Status

Accepted

Consequences

The GPS location may be spoofed by some malicious users, so they can easily get the tokens from Pinocchio platform. We may need design further verification mechanism to prevent this from happening.