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)
- Not sure the quality of package
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.