Unified InterPlanetary Smart Parking Network for Maximum End-User Flexibility
Abstract
:1. Introduction
- Sensors are not robust—they can malfunction and do not always have health monitoring functions.
- Remote sensors communicate at a low periodicity due to battery life concerns; sometimes the radio signal might be blocked by a car occupying the parking spot.
- Drivers do not receive information based on GPS location—information is broadcasted about the status of the entire system, which has a slowdown effect on user mobile devices.
1.1. The Current Model and Traditional Implementations
- Near real-time (under 2 s delay) data of parking spots availability—anyone should be able to easily see if parking spots are free in an area.
- Location-based services—showing services based on someone’s location.
- Reservation and payment—using a mobile device, one should be able to reserve a parking place and pay for it.
- Statistics and predictions—useful for end-users and decision-makers.
- Scalable and easily deployable—the platform must work the same with 10,000 parking spots as it would with 100,000; also, it should be easy to add new parking lots in a timely fashion.
1.2. Improvements to the Current Model, Although a Traditional Implementation
“System deployment deals with the software system exploitation and the statistical analysis of the collected data. Software generally involves E-Parking, reservation, guidance, and monitoring information for administration and users. With the collected data, an analysis is often performed by data scientists to study drivers’ behaviors to improve the system performance.”[4]
“Machine vision is another technology which uses visual camera to acquire real time parking occupancy information on open parking lots due to its minimal expenditure. The usage of some visual cameras is dependent on regulations supported by the country, which needs to be considered prior. However, there is no single ideal technology suitable for parking occupancy detection. Based on the type of parking lot and size, different combinations of smart parking technologies and sensors can be used for efficient and financially viable parking occupancy detection.”[4]
- No matter how good the hardware or software on-site implementation is, the-end user will not use it if the mobile app is bad.
- With a very good mobile app and service, the end-user will not use it if there are only a handful of parking lots are available on the platform.
- A badly administered implementation will overshadow the best possible solution.
- Without the possibility to make price discovery, investors lack interest in developing new smart parking lots.
- Without macro statistics and large-scale user adoption, municipalities are reticent of investing in a project of which the success rate cannot be measured.
1.3. Challenges
1.4. Our Proposal
2. Methodology
2.1. Federated Smart Parking Network
- Parking Application Models and Protocol (PAMP) will expose information to the public.
- Recipe for interaction between Parking Providers (RiPP).
- A querying mechanism for parking lots in a geographical area.
- Live availability of the spots of a certain parking lot.
- Reservation of parking spots from mobile apps.
- Mechanisms to publish events between trusted parties.
- A public key.
- A token for each client for authorization.
2.2. Zero Knowledge Federated User Account
2.2.1. Authentication to Trusted 3rd Party
- a new random point on the elliptic curve of CST1, used as refresh token and
- a native JWT that C1 will add with every authorization request.
- The mobile app C1 will pick an elliptic curve model (E over field characterized by a generator field and ) and use a ‘secret identifier’, x, to create a ZKS based on Schnorr’s Protocol [2].
- C1 will ask P1 to sign data describing E (G, P) and B. P1 picks random point necessary to compute A = r · G, then signs and returns a JWT if there is trust, and P2 accepts clients.
- C1 uses random point to compute A = r · G, then C = HASH(x · P, r · P, r · G) and finally s = r + c · x(mod n) and sends to P2 message “s||x ∙ P||r ∙ P||r ∙ G”, a ZK Proof, with the JWT from step 2 to authenticate.
- Verifier P2 checks to see if the JWT is valid.
- Verifier P2 computes C = HASH(x · P, r · P, r · G) and checks that
- P2 saves the virtual identity and generates a new random number r’ to be used for a refresh.
- P2 creates a native JWT, signs it, and returns it to C1.
2.2.2. Native Token Refresh
- a new arbitrary point on the elliptic curve, used as refresh token and
- P2’s native JWT to be used with every authorization request.
2.2.3. Banning a Virtual Identity
2.3. Static Data versus Live Data
- Parking lot name and location.
- Parking spot location.
- Authoritative information about the parking lot: who manages it, the URL of the PP endpoints, the public key, etc.
- The history of the relationships between parties: who trusted who, have they shared information, etc.
“IPFS is a distributed file system which synthesizes successful ideas from previous peer-to-peer systems, including DHTs, BitTorrent, Git, and SFS. The contribution of IPFS is simplifying, evolving, and connecting proven techniques into a single cohesive system, greater than the sum of its parts. IPFS presents a new platform for writing and deploying applications and a new system for distributing and versioning large data. IPFS could even evolve the web itself.”[10]
- Network—manages peer-to-peer connections, using various configurable network protocols.
- Routing—responds to local and remote queries, based on Distributed Hash Tables (DHT) [13], keeping track of peers and objects.
- Exchange—uses BitSwap [10] to keep a ledger with the exchange of data blocks between peers to prevent abuse of bandwidth.
- Objects—Arbitrary data are represented using Merkle DAGs [14] as immutable objects with links to tamper-resistant data blocks.
- Files—like Git, it offers the possibility to have a versioned file system.
- Naming—Self-Certified Names [10] have a mutable link to permanent objects. Based on a public–private key pair, a self-certified name can be constructed in a cryptographically assigned global namespace and, by using the Routing system, with a mutable state distribution, establish a link between a mutable path and an immutable object.
2.4. Parking Application Models and Protocol—PAMP
2.4.1. Data Model
- ParkingLotName: 128 characters UTF-8, the parking lot name.
- ParkingLotDescription: 512 characters UTF-8, the parking lot description.
- ParkingLotGuid: Integer 64 bits, a very large integer that identifies the parking lot almost uniquely in a large geographical area.
- ParkingLotType: Unsigned Integer 32 bits, an array of attributes will be binary encoded (for example, if the parking is private or not, if it is with pay, if it has charging stations, if it has spots for people with special needs, etc.).
- ParkingLotX: Decimal float with six decimal places to describe the latitude of the entrance.
- ParkingLotY: Decimal float with six decimal places to describe the longitude of the entrance.
- ParkingLotCentroidX: Decimal float with six decimal places to describe the latitude of the lot’s center.
- ParkingLotCentroidY: Decimal float with six decimal places to describe the longitude of the lot’s center.
- ParkingLotSpotsNo: Unsigned Integer 32 bits with the total number of spots.
- ParkingLotActiveAt: Date time string of the last activity check.
- ParkingLotStatus: Unsigned Integer 32 bits.
- ParkingSpotName: 128 characters UTF-8, the parking spot name or description.
- ParkingSpotGuid: Integer 64 bits, a very long integer that identifies the parking spot almost uniquely in a large geographical area.
- ParkingSpotX: Decimal float with six decimal places to describe the latitude of the spot.
- ParkingSpotY: Decimal float with six decimal places to describe the longitude of the spot.
- ParkingSpotType: Unsigned Integer 32 bits, an array of attributes will be binary encoded.
- ParkingSpotArea: 128 characters UTF-8, the parking spot’s sector or grouping description.
- ParkingSpotStatus: Unsigned Integer 32 bits.
2.4.2. List of Methods to Request Data
- parkingNearby (/parking/nearby)—a spatial query that returns the parking lots that are within the distance D from a point P(X,Y) characterized by a decimal latitude and longitude values; parking places from trusted PPs are also returned.
- parkingAllSpots (/parking/{ ParkingLotGuid }/spot/all)—returns all the available free spots from a parking lot.
- parkingSpotPending (/parking/{ ParkingLotGuid }/spot/{ ParkingSpotGuid }/pending—a client notifies the PP of the intention to reserve a spot—a probability between 0 and 1 is returned and preconditions (you need to pay in advance a small fee, etc.).
- parkingSpotReserve (/parking/{ ParkingLotGuid }/spot/{ ParkingSpotGuid }/reserve—a trustworthy client will receive a confirmation.
- parkingSpotUpdate (/parking/{ ParkingLotGuid }/spot/{ ParkingSpotGuid }/update—method used by sensors or integrations to trigger a spots status change—from free to occupied and vice versa.
- checkProof (/interaction/proof)—a client authenticates to a PP using a ZK proof.
- requestSign (/interaction/sponsor)—a client requests its authoritative PP to sign the ZKS.
- wellKnown (/authority/wellknown)—returns the public key of the current PP and other data that describes the authority.
- wellKnownPP (/authority/wellknown/pp)—an array of trusted PP with their public keys, domains, and other data describing the PP capabilities.
- parkings (/authority/parkings)—returns data about parking places under the administration of the current PP, such as parking SCN, description, coordinates, etc.
- requestTrust (/interaction/trust)—a mechanism to start the establishment of trust between parties and generate a two-way handshake.
- requestChallenge (/interaction/challenge)—trust is established and published for other parties to inspect.
- requestNotify (/interaction/notify)—a PP notifies another of a client that requested access to its resources or if an identity is revoked.
2.5. Recipe for Interaction between Parking Providers—RiPP
2.5.1. Establishing Trust between Providers, but Not between Clients of a Provider and Others
“_dnslink.parkingspotter.com. 34 IN TXT dnslink = /ipfs/QmVMxjouRQCA2QykL5Rc77DvjfaX6m8NL6RyHXRTaZ9iya”
- PP P1 verifies that PP P2 checks the DNS and IPFS prerequisites.
- A human operator from PP P1 uses the requestTrust method with PP P2. The request includes information about the requester, a random number of 128 bits (RND1) encrypted with the public key of PP P2, a ZK signature, and other useful data. The requests data are signed using a PP P1 private key. Optionally, the public key can be included in the request.
- PP P2 checks the validity of the signature and verifies that PP P1 checks all the prerequisites. It verifies that the same public key can be found in DNS records, on IPFS, and in the request. It decrypts the random number RND1 using the private key. If prerequisites fail or the number cannot be decrypted, the process stops.
- A human operator from PP P2 triggers a requestChallenge for PP P1 that includes information about the requester, a random number of 128 bits (RND2) encrypted with the public key of PP P1, a ZK signature, an AES256 encrypted data (random generated data used as a secret challenge SeCh) with the encryption key being composed of the two random integers RND1 || RND2.
- In an automated manner, PP P1 will decrypt the SeCh and then confirm by triggering a requestChallenge for PP P2, which includes information about the requester, the inverse of RND1 encrypted with the public key of PP P1, a ZK signature, and AES256 encrypted data reversed SeCh with the encryption key composed of the two random integers reverse (RND1 || RND2).
- At the last step, PP P2 will call requestTrust sending only the current UTC datetime as ISO string to signal, encrypted with RND1 || RND2.
- ∙
- Interaction (see Figure 9)
- ○
- trust
- ▪
- files for each request or response
- ○
- challenge
- ▪
- files for each request or response
- ○
- other folders
- ▪
- some other folder
- ∙
- files
- ∙
- authority
- ○
- well-known
- ▪
- pp
- ∙
- files or links to trusted parking providers
- ▪
- files for the current parking provider
- ▪
- parking
- ∙
- files or links to parking lots of current parking provider
- PP P1 verifies that PP P2 checks the DNS and IPFS prerequisites.
- A human operator from PP P1 uses the requestTrust method with PP P2, but instead of calling a HTTP method with the data, it will save the data in /ipns/{ParkingSCN}/interaction/trust /{naming convention .request}. The request file includes information about the requester, a random number of 128 bits (RND1) encrypted with the public key of PP P2, a ZK signature, and other useful data. The request data are signed using a PP P1 private key. Optional, the public key can be included in the request. The requester notifies the other party over other communication (mail, phone) channel that a request has been made, indicating the SCN.
- A human operator from PP P2 activates a background job for P1’s SCN, verifies that PP P1 checks all the prerequisites. When it finds the request file, it checks the validity of the signature and it verifies that the same public key can be found in DNS records, on IPFS, and in the request. It decrypts the random number RND1 using the private key. If prerequisites fail or the number cannot be decrypted, the process stops.
- PP P2 triggers a requestChallenge for PP P1, that includes information about the requester, a random number of 128 bits (RND2) encrypted with the public key of PP P1, a ZK signature, an AES256 encrypted data (random generated data used as a secret challenge SeCh) with the encryption key being composed of the two random integers RND1 || RND2. Data are saved in a request file at /ipns/{P2′s SCN}/interaction/challenge/{naming convention request}.
- Automatically, PP P1 will check at regular intervals if P2 has written a response on IPFS. As soon as it identifies the file, it decrypts the SeCh, then confirms by triggering a requestChallenge for PP P2 that includes information about the requester, the inverse of RND1 encrypted with the public key of PP P1, a ZK signature, and AES256 encrypted data reversed SeCh with the encryption key being composed of two random integers reverse (RND1 || RND2). Data are saved in a respose file at /ipns/{P1’s SCN}/interaction/challenge/{naming convention response}.
- PP P2 detects the response file from step 5, checks if the data are valid, in which case it seals the agreement with a response file that contains the current encrypted UTC datetime, at /ipns/{P2’s SCN}/interaction/trust /{naming convention response}.
2.5.2. A Network with Different Levels of Trust
- Blocked—this PP is considered an abuser and is blocked.
- No Trust—this is the default.
- Low Trust—the PP is in the well-known providers list of a trusted entity; no agreement has been signed between the parties, but the prerequisites for establishing trust are fulfilled.
- Trust—an agreement was signed between parties that were in contact and have covered the six steps described in the aforementioned recipe.
2.5.3. Possible Problems and Mitigations
- PENDING—a client is on route to the parking lot.
- FULFILLED—end-user is currently occupying a parking spot.
- CANCELED—a client has actively canceled a reservation.
- UNFULFILLED—a timeout occurred, and the client did not make it to the destination.
- WORKING.
- COOLDOWN.
- BANNED.
3. Discussion
4. Conclusions
Author Contributions
Funding
Institutional Review Board Statement
Informed Consent Statement
Conflicts of Interest
References
- Gallivan, S. IBM Global Parking Survey: Drivers Share Worldwide Parking Woes. IBM, September 2011. Available online: http://www-03.ibm.com/press/us/en/pressrelease/35515.wss (accessed on 15 April 2020).
- Polycarpou, E.; Lambrinos, L.; Protopapadakis, E. Smart parking solutions for urban areas. In Proceedings of the 2013 IEEE 14th International Symposium on ‘A World of Wireless, Mobile and Multimedia Networks’ (WoWMoM), Madrid, Spain, 4–7 June 2013; pp. 1–6. [Google Scholar] [CrossRef]
- Burtea, B.; Florea, C.; Iacobescu, C.; Oltean, G. Video Based Real Time Application for Parking Spots Availability Management. In Proceedings of the 4th International E-Conference on Engineering, Technology and Management-ICETM 2021, online, 24 January 2021; pp. 12–17. [Google Scholar] [CrossRef]
- Lin, T.; Rivano, H.; le Mouel, F. A Survey of Smart Parking Solutions. IEEE Trans. Intell. Transp. Syst. 2017, 18, 3229–3253. [Google Scholar] [CrossRef] [Green Version]
- Paidi, V.; Fleyeh, H.; Håkansson, J.; Nyberg, R.G. Smart parking sensors, technologies and applications for open parking lots: A review. IET Intell. Transp. Syst. 2018, 12, 735–741. [Google Scholar] [CrossRef]
- Milestone Post. And the Milestone Kickstarter winner is…Parking Spotter! 6 March 2017. Available online: https://news.milestonesys.com/and-the-milestone-kickstarter-winner-is-parking-spotter/ (accessed on 29 June 2021).
- Hettinger, R. The Mental Game of Python-Raymond Hettinger. In Proceedings of the PyBay2019, San Francisco, CA, USA, 2 October 2019. [Google Scholar]
- Chatzigiannakis, I.; Pyrgelis, A.; Spirakis, P.G.; Stamatiou, Y.C. Elliptic Curve Based Zero Knowledge Proofs and Their Applicability on Resource Constrained Devices. arXiv 2011, arXiv:Cs/11071626. Available online: http://arxiv.org/abs/1107.1626 (accessed on 20 April 2021).
- Jones, M.; Bradley, J.; Sakimura, N. JSON Web Token (JWT). RFC Editor, RFC7519. May 2015. Available online: https://www.rfc-editor.org/info/rfc7519 (accessed on 12 December 2021).
- Benet, J. IPFS-Content Addressed, Versioned, P2P File System. arXiv 2014, arXiv:1407.3561,. [Google Scholar]
- Multihash. Multiformats. 2021. Available online: https://github.com/multiformats/multihash (accessed on 24 June 2021).
- Baumgart, I.; Mies, S. S/Kademlia: A practicable approach towards secure key-based routing. In Proceedings of the 2007 International Conference on Parallel and Distributed Systems, Hsinchu, Taiwan, 3–6 December 2007; pp. 1–8. [Google Scholar] [CrossRef]
- Wikipedia. Distributed Hash Table. 20 June 2021. Available online: https://en.wikipedia.org/w/index.php?title=Distributed_hash_table&oldid=1029499321 (accessed on 24 June 2021).
- Arshad, M.U.; Kundu, A.; Bertino, E.; Madhavan, K.; Ghafoor, A. Security of graph data: Hashing schemes and definitions. In Proceedings of the 4th ACM conference on Data and application security and privacy-CODASPY’14, San Antonio, TX, USA, 3–5 March 2014; pp. 223–234. [Google Scholar] [CrossRef]
- Hinsen, K.; Hinsen, K.; Turk, M. The Magic of Content-Addressable Storage. Comput. Sci. Eng. 2020, 22, 113–119. [Google Scholar] [CrossRef]
- Interaction. Available online: https://dictionary.cambridge.org/dictionary/english/interaction (accessed on 24 June 2021).
- Validity Help Center. DKIM DNS Record Overview. Available online: https://help.returnpath.com/hc/en-us/articles/222481088-DKIM-DNS-record-overview (accessed on 24 June 2021).
- DNSLink. Available online: https://docs.ipfs.io/concepts/dnslink/ (accessed on 24 June 2021).
- ENS. Available online: https://ens.domains/ (accessed on 24 June 2021).
- Decrypt; Hussey, M.; Scott, C. What Are Dapps? The Beginner’s Guide. Available online: https://decrypt.co/resources/dapps (accessed on 24 June 2021).
- Ahmed, S.; Rahman, M.S.; Rahaman, M.S. A Blockchain-Based Architecture for Integrated Smart Parking Systems. In Proceedings of the 2019 IEEE International Conference on Pervasive Computing and Communications Workshops (PerCom Workshops), Kyoto, Japan, 11–15 March 2019; pp. 177–182. [Google Scholar] [CrossRef]
- Buldakov, N.; Khalilev, T.; Distefano, S.; Mazzara, M. An Open Source Solution for Smart Contract-Based Parking Management. In Open Source Systems; Ivanov, V., Kruglov, A., Masyagin, S., Sillitti, A., Succi, G., Eds.; Springer International Publishing: Cham, Switzerland, 2020; Volume 582, pp. 55–69. [Google Scholar] [CrossRef]
- Sovrin. What Is Self-Sovereign Identity? Available online: https://sovrin.org/faq/what-is-self-sovereign-identity/ (accessed on 12 December 2021).
Smart Parking Application | Country | Sensors/Technology Used |
---|---|---|
Park.ME | Austria, Germany | underground sensors |
SmartParking | New Zealand | underground sensors, RFID |
ParkMe | Japan, USA, UK, Germany, Brazil | underground sensors |
ParkAssist | USA | M4 Smart sensors, LPR |
SpotHero | USA | underground sensors |
EasyPark | Canada | underground sensors |
PaybyPhone | France | underground sensors |
ParkMobile | USA | underground sensors |
AppyParking | UK | magnetometer |
EasyPark Group | Sweden, Denmark and so on | transactional data and crowdsourcing |
Parker | USA | underground sensors, machine vision |
ParkiFi | USA | magnetometer |
Best Parking | USA | underground sensors |
Parkopedia | USA, Germany, Sweden and so on | predictive analytics, underground sensors |
SFPark | USA | underground sensors |
Feature | Our Proposal | Other 1 [21] | Other 2 [22] |
---|---|---|---|
Unified backend API | Yes | Yes | Yes |
Unified data model | Yes | Yes | Yes |
Extensible data model | Yes | No | No |
Self-sovereign identity [23] compatibility | Yes | No | No |
Network fork resistant | Yes | No | No |
Privileged nodes | No | No | Yes |
Decentralized | Yes, trustless federation | Yes | Yes |
Blockchain only | No, but compatible | Yes | Yes |
Low operational costs | Yes | No | No |
Anonymity | Yes, ZK cryptography | No | No |
Service provider autonomy | Yes | No | No |
User interface development autonomy | Yes | Partially | Partially |
User mobility between service providers | Yes | Locked to a smart contract | Locked to a smart contract |
Can services run offline | Yes | No | No |
Publisher’s Note: MDPI stays neutral with regard to jurisdictional claims in published maps and institutional affiliations. |
© 2021 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (https://creativecommons.org/licenses/by/4.0/).
Share and Cite
Iacobescu, C.; Oltean, G.; Florea, C.; Burtea, B. Unified InterPlanetary Smart Parking Network for Maximum End-User Flexibility. Sensors 2022, 22, 221. https://doi.org/10.3390/s22010221
Iacobescu C, Oltean G, Florea C, Burtea B. Unified InterPlanetary Smart Parking Network for Maximum End-User Flexibility. Sensors. 2022; 22(1):221. https://doi.org/10.3390/s22010221
Chicago/Turabian StyleIacobescu, Ciprian, Gabriel Oltean, Camelia Florea, and Bogdan Burtea. 2022. "Unified InterPlanetary Smart Parking Network for Maximum End-User Flexibility" Sensors 22, no. 1: 221. https://doi.org/10.3390/s22010221
APA StyleIacobescu, C., Oltean, G., Florea, C., & Burtea, B. (2022). Unified InterPlanetary Smart Parking Network for Maximum End-User Flexibility. Sensors, 22(1), 221. https://doi.org/10.3390/s22010221