US20200382904A1 - Peer-to-peer geolocation system - Google Patents
Peer-to-peer geolocation system Download PDFInfo
- Publication number
- US20200382904A1 US20200382904A1 US16/996,830 US202016996830A US2020382904A1 US 20200382904 A1 US20200382904 A1 US 20200382904A1 US 202016996830 A US202016996830 A US 202016996830A US 2020382904 A1 US2020382904 A1 US 2020382904A1
- Authority
- US
- United States
- Prior art keywords
- location
- network
- network connected
- hardware
- client device
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/02—Services making use of location information
- H04W4/025—Services making use of location information using location based information parameters
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01S—RADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
- G01S19/00—Satellite radio beacon positioning systems; Determining position, velocity or attitude using signals transmitted by such systems
- G01S19/01—Satellite radio beacon positioning systems transmitting time-stamped messages, e.g. GPS [Global Positioning System], GLONASS [Global Orbiting Navigation Satellite System] or GALILEO
- G01S19/13—Receivers
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01S—RADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
- G01S5/00—Position-fixing by co-ordinating two or more direction or position line determinations; Position-fixing by co-ordinating two or more distance determinations
- G01S5/0009—Transmission of position information to remote stations
- G01S5/0018—Transmission from mobile station to base station
- G01S5/0027—Transmission from mobile station to base station of actual mobile position, i.e. position determined on mobile
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01S—RADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
- G01S5/00—Position-fixing by co-ordinating two or more direction or position line determinations; Position-fixing by co-ordinating two or more distance determinations
- G01S5/0009—Transmission of position information to remote stations
- G01S5/0072—Transmission between mobile stations, e.g. anti-collision systems
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01S—RADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
- G01S5/00—Position-fixing by co-ordinating two or more direction or position line determinations; Position-fixing by co-ordinating two or more distance determinations
- G01S5/02—Position-fixing by co-ordinating two or more direction or position line determinations; Position-fixing by co-ordinating two or more distance determinations using radio waves
- G01S5/0205—Details
- G01S5/0226—Transmitters
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/06—Generation of reports
- H04L43/065—Generation of reports related to network devices
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/06—Network architectures or network communication protocols for network security for supporting key management in a packet data network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/083—Network architectures or network communication protocols for network security for authentication of entities using passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/14—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/02—Protecting privacy or anonymity, e.g. protecting personally identifiable information [PII]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/04—Key management, e.g. using generic bootstrapping architecture [GBA]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/06—Authentication
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/02—Services making use of location information
- H04W4/029—Location-based management or tracking services
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01S—RADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
- G01S2205/00—Position-fixing by co-ordinating two or more direction or position line determinations; Position-fixing by co-ordinating two or more distance determinations
- G01S2205/01—Position-fixing by co-ordinating two or more direction or position line determinations; Position-fixing by co-ordinating two or more distance determinations specially adapted for specific applications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/80—Wireless
Definitions
- the invention relates to computer systems and methods for reporting and recording device locations, and more specifically to the reporting of device locations to a shared file, distributed and maintained over a peer-to-peer network.
- An entity such as a parent of a child, a haulage company or delivery service, a prison system, or a car rental company, may need to track a location of users or assets, for example but not limited to: ensuring safety, for legal reasons, or in order to secure such assets.
- a common method for reporting and storing location data is in a database connected to a network such as are known from US2014074667.
- the location is recorded in a facility maintained by a third party such as a data storage provider, then there is a risk that due to network failure or other technical issues the data storage facility will at some times not be available to be queried by the entity, or to be written to by a location aware device to be tracked by the entity. In extreme cases the location data may be irretrievably lost.
- the database is maintained by the third party, there is a risk that the location data may be revealed to other parties, hacked, corrupted, or otherwise altered, without the knowledge of the entity or possibly the third party.
- a solution for reporting, storing and subsequently retrieving the locations of devices or objects in a distributed and secure manner.
- the problems are establishing and maintaining a network enabled data storage system, ensuring the integrity of the stored data, and providing always-available data access for users of the system. If the method used is based on a distributed system, no individual maintenance costs arise, there is no single point of failure, and through an inherent cryptographic structure integrity is maintained.
- Embodiments of the invention are based on the reporting of location in a location report by a network enabled location determining device communicating through a peer-to-peer network system to a plurality of network enabled devices.
- a first of the plurality of network enabled devices performs a validation computation on the location report and forwards a result of the validation computation to the plurality of network enabled devices for inclusion in a shared ledger of location reports.
- the network enabled location determining device may include a location module that may comprise a global navigation satellite system receiver (GNSS receiver), a magnetometer, an accelerometer, an altimeter, and a gyroscopic sensor for determining the location of the device. Further methods and apparatus for determining the location of the device may include trilateration or time difference of arrival calculations using a wireless local area network (WLAN), Bluetooth, or a wireless wide area network (WWAN) positioning method, position determination using fluctuations in a detected magnetic field, or a hybrid combination of all the aforementioned systems to produce an accurate location fix.
- GNSS receiver global navigation satellite system receiver
- WLAN wireless local area network
- WWAN wireless wide area network
- the decision by the network enabled location determining device to determine and report a location may be triggered through: an external request over a communication network channel; on a regular timed basis, for example but not limited to one location determination every ten minutes; an external trigger detected by the network enabled device's sensors, for example due to a change in motion detected by the accelerometer or a change in orientation detected by the gyroscopic sensor or magnetometer; a completion of a computation on the network enabled location determining device; or some other internal or external event.
- the location report may be signed by the network enabled location determining device using an associated public-private key pair, for example using the ECDSA signature scheme, the ElGamal signature scheme, the DSA signature scheme, or some other asymmetric key infrastructure.
- At least part of the location report may be encrypted using an asymmetric or symmetric cryptographic key generated by the network enabled location determining device, to prevent unauthorized third parties from scanning the shared ledger and extracting the location of the location determining network enabled device at reported times.
- the cryptographic key may then be shared with selected parties in subsequent reports submitted for inclusion in the shared ledger, or the cryptographic key may be encrypted with the public key of a public-private key pair and appended to the location report.
- a subset of the plurality of network enabled devices associated with the peer-to-peer network may forward copies of the location to a remainder of the plurality of network enabled devices.
- Network enabled devices on the peer-to-peer network may be standard nodes, in that they forward location reports on to other devices on the peer-to-peer network, or they may be “miners”, which are nodes that also perform validation computations on a submitted location report in order to solve a proof-of-work or other computationally difficult problem that confirms to other nodes and miners that the submitted location report should be added to the shared ledger.
- the first of the plurality of network enabled devices to successfully generate a validation computation result may submit this, together with the location report, to the peer-to-peer network.
- the remainder of plurality of network enabled devices may then check the validation computation. If it is correct, they may add it to the shared ledger. In this manner, the location report is stored in the shared ledger for future retrieval and examination.
- a commercially-valued credit system may be associated with the described system.
- the validation computation result and location reports are submitted to the peer-to-peer network by the first of the plurality of network enabled devices, it may also submit a notification that a number of commercially-valued credits are to be credited to a public key of a private-public key pair generated by the first of the plurality of network enabled devices.
- the remainder of the plurality of network enabled devices add the location report and the validation computation result to the shared ledger, they also add this notification to the shared ledger.
- Blocks may also be constructed to comprise a transaction report that reallocates commercially-valued credits from a first public key to a second public key, by signing the transaction report with a private key of the first public key.
- the location report submitted by the location determining network enabled device may contain an offer of commercially-valued credits that are allocated to a public key of the public-private key pair associated with the location determining network enabled device.
- the commercially-valued credits may then be claimed by the first of the plurality of network enabled devices to produce a block accepted into the public ledger, for example by including a transaction notification in the block that reallocates the commercially-valued credits to the public key of the first of the plurality of network enabled devices.
- FIG. 1 illustrates a peer-to-peer network with a location determining network enabled device and a plurality of network enabled devices connected to the peer-to-peer network, in accordance with an embodiment of the present invention.
- FIG. 2 illustrates a location determining network enabled device, in accordance with an embodiment of the present invention.
- FIG. 3 is a flowchart that shows how the decision to produce a location report by the location determining network enabled device may be made.
- FIG. 4 is a signal flow diagram providing a general overview of a method controlling the flow of location data from the location determining network enabled device to the plurality of network enabled devices connected via a peer-to-peer network for inclusion in the shared ledger.
- FIG. 5 is a flowchart that shows an example method for the first of the plurality of network enabled devices to generate and broadcast a validation computation result, according to one embodiment of the invention.
- FIG. 6 is a block diagram illustrating the structure of a possible embodiment of the blocks in shared ledger.
- FIG. 7 is a flowchart illustrating a method for including a block containing a location report and a commercially-valued credit allocation in a shared ledger, according to one embodiment of the invention.
- FIG. 8 is a block diagram illustrating a possible structure of a location report encrypted with a cryptographic key, and with the cryptographic key itself encrypted with a public key and appended to the location report.
- the peer-to-peer network 108 is embodied within a packet switched network 101 , through the interconnection of the plurality of network connected devices on the peer-to-peer network 108 .
- a location determining network enabled device 102 may connect to the peer-to-peer network, either through a wireless connection by association with a wireless access point 103 as depicted in FIG. 1 , or alternatively through a cellular base station, a Bluetooth connection, or other wireless connection that provides access to the packet switched network.
- the location determining device may be connected directly to the packet switched network through a wired connection.
- Other devices connected the peer-to-peer network may include network connected devices acting as a “node” 104 , 105 whose role is to maintain a list of other devices connected through the peer-to-peer network, and to forward on received network messages to those devices on the list, possibly independently, or possibly as a response to a request from another network connected device.
- no individual node is required to have a complete list of all devices, as the process of peer-to-peer networking only requires that a union of a set of all nodes contains a complete list of all devices on the peer-to-peer network, and for every pair of network connected devices there is a network route from one device to the other, possibly via a set of one or more nodes. Therefore, the only requirement to be a participant on the peer-to-peer network is to establish a connection to one or more of the nodes on said network.
- Further devices connected via the peer-to-peer network may include one or more network connected devices 106 , 107 acting as a “miner”, whose role is to receive or request location reports and other transaction messages from the peer-to-peer network, process them according to the methods and processes to be described further below, and transmitting the results of said processing back to the peer-to-peer network for inclusion in a shared ledger.
- network connected devices 106 , 107 acting as a “miner”, whose role is to receive or request location reports and other transaction messages from the peer-to-peer network, process them according to the methods and processes to be described further below, and transmitting the results of said processing back to the peer-to-peer network for inclusion in a shared ledger.
- the devices described above may each be implemented through a system comprising a one or a plurality of: general purpose microprocessors, digital signal processors (DSPs), application specific instruction set processors (ASIPs), field programmable gate arrays (FPGAs), dedicated application specific integrated chips (ASICs), or other equivalent integrated or discrete logic circuitry and peripheral circuitry, connected to a tangible storage medium containing instructions which when executed effect methods and techniques described below.
- DSPs digital signal processors
- ASIPs application specific instruction set processors
- FPGAs field programmable gate arrays
- ASICs dedicated application specific integrated chips
- the techniques additionally, or alternatively, may be realized at least in part by a computer-readable communication medium or record carrier, that carries or communicates code in the form of instructions or data structures and that can be accessed, read, and/or executed by a computer.
- the network connected location determining device 102 may comprise a CPU 240 capable of executing instructions stored in a memory 242 , and controlling other peripheral components through drivers 244 stored within the memory 242 . Further storage 246 may be present.
- the network connected location determining device 102 may also include an integrated location determining module, comprising one or more of a global navigation satellite system (GNSS) receiver 222 , an antenna 202 for said GNSS receiver 222 , and a sensor module 224 , connected to one or more of an altimeter 216 , a magnetometer 217 , a gyroscopic sensor 218 , and an accelerometer 219 .
- the integrated location determining module may determine a longitude, a latitude, a heading, a velocity, an acceleration, and an altitude of the network connected location determining device 102 to a degree of accuracy through the use of some or all of these components.
- the network connected location determining device 102 may also include wireless components comprising one or more wireless modules implemented in firmware or hardware, including a wireless local area network (WLAN) module 210 such as a Wi-Fi adapter utilizing an 802.11 protocol, a wireless wide area network (WWAN) module 212 such as GSM, LTE, or other cellular wireless data communication system, or a Bluetooth module 214 , each with one or more associated antennas 208 , 206 and 204 respectively. As desired, one or more antennas may be shared between the modules using switching techniques known to those skilled in the art.
- the wireless components may provide network connectivity to a packet switched network and hence to the peer-to-peer network for the network connected location determining device. Alternately the network connected location determining device may be connected to the packet switching network directly through a wired connection.
- the wireless components may also be employed to obtain, or help obtain, a location through techniques such as, but not limited to, time difference of arrival determination of data frames at the wireless component, signal strength determination, signal trilateration, and other wireless position techniques know to those skilled in the art. Furthermore, measurements from the wireless components can be used in conjunction with measurements from the GNSS module 222 , and the sensor module 224 , to provide a hybrid or combined location result.
- Components comprising the network connected location determining device may communicate through a bus 226 , which may be implemented as a peripheral component interconnect express (PCIe) bus, a universal serial bus (USB), a universal asynchronous receiver/transmitter (UART) serial bus, a suitable advanced micro-controller bus architecture (AMBA) interface, a serial digital input output (SDIO) bus, or other equivalent interface.
- PCIe peripheral component interconnect express
- USB universal serial bus
- UART universal asynchronous receiver/transmitter
- AMBA advanced micro-controller bus architecture
- SDIO serial digital input output
- Event 302 is an internal step and represents a timer event, in which a one-time timer or a repeat timer may be triggered after a pre-set time, causing step 318 to be executed, in which the network connected location determining device 102 generates and sends a location report.
- Event 304 may represent a request from an external entity over the packet switched network for step 318 to be executed.
- the external request may be issued by an owner of the network connected location determining device, or by a user or entity authorized by the owner, or the option to issue the request may be open to any entity.
- Event 306 may represent the network connected location determining device detecting that the accelerometer sensor 219 has experienced a change in output sensor data, reflecting a change in acceleration of the network connected location determining device, and may trigger step 318 to be executed.
- Event 308 may represent the network connected location determining device detecting that the magnetometer sensor 217 has experienced a change in output sensor data, reflecting a change in heading of the network connected location determining device or a movement through a varying magnetic field, and may trigger step 318 to be executed.
- Event 310 may represent the network connected location determining device detecting that the gyroscopic sensor 218 has experienced a change in output sensor data, reflecting a change in heading or a rotation about an internal or external axis of the network connected location determining device, and may trigger step 318 to be executed.
- Event 312 may represent the network connected location determining device detecting that the time difference of arrival of frame data in response to frame request data by the WLAN module 210 , the WWAN module 212 or the Bluetooth module 214 , has increased or decreased, possibly reflecting a change in the distance of the network connected location determining device from an associated WLAN access point, a WWAN base station or paired Bluetooth device, respectively, and may trigger step 318 to be executed.
- Event 314 may represent the network connected location determining device detecting that its position has changed due to a changing position report from the GNSS module 222 , and may trigger step 318 to be executed.
- Event 316 may represent the completion of some other internal computation result, and may trigger step 318 to be executed.
- FIG. 3 shows a logical OR 320 applied to events 302 , 304 , 306 , 308 , 310 , 312 , 314 and 316
- any other logical operator or combination or logical operators could be applied.
- the decision to execute step 318 could be undertaken with a logical AND, NOR, or NAND, and applied pairwise to any combination of the events.
- FIG. 4 A high level flow diagram illustrating one possible embodiment of the system and the steps taken therein is presented in FIG. 4 .
- the flow of a data comprising the location and other associated information determined by the location determining network enabled device through the location report, inclusion in the successfully generated block, and the appending of said block to the shared ledger is also illustrated through FIG. 4 .
- the network connected location determining device 102 may generate a location report 402 .
- the location report may then be encapsulated in a network message 404 and sent on to the peer-to-peer network 406 .
- the node may forward the message to other network connected devices on the peer-to-peer network 408 .
- Other network connected devices may also make requests to the node for network messages that they have not yet received. Through these means, the location report encapsulated in the network message is forwarded to all interested parties on the peer-to-peer network.
- the location report encapsulated in the network message may arrive at a network connected device acting as a miner 106 .
- the miner may then extract the location report from the network message as per step 410 .
- the miner may construct a block containing the location report, a nonce, and any other location reports that the miner has previously received and that have not yet been included in the shared ledger as noted in step 412 .
- the block may also contain other messages and elements, which will be detailed further below.
- the miner may then perform a validation computation on the block 414 , further details of which will be provided below. For now, it suffices to note that the validation computation will either return a correct result, or a failure as per step 416 .
- the miner may alter the nonce as per step 417 , for example if it is an integer by incrementing or decrementing the value of the number by a chosen amount, or by choosing a new random value, and may then repeat the validation computation on the new block as per step 414 . If the validation computation is correct, the block has been successfully verified and the miner may transmit it to the peer-to-peer network 418 .
- the block may arrive at another network connected device 107 , which may constitute another miner, or another node.
- the network connected device 107 may then repeat the same validation computation on the block 420 as previously performed by the miner 106 in step 414 , and the validation computation will return either a successful result or a failure 422 . If the computation result is a failure, the network connected device 107 may discard the block, as shown in step 424 . If the validation computation produces a successful result, then the network connected device 107 may add the block to a copy of the shared ledger 426 .
- FIG. 5 presents a flowchart providing further details for one possible embodiment of a miner, and provides a specification for the steps taken once a location report or a plurality of location reports have been received by a network connected device acting as a miner.
- step 502 the miner generates a header for a new block, which in one embodiment may contain data indicating the start of the block, and may contain a link back to the last accepted block in the shared ledger, for example through inclusion of a hash of the previous block.
- the header may also contain a time stamp.
- the miner may append a message to the block, commonly known to those skilled in the art as a “block reward”, which allocates a number of commercially-valued credits to a public key associated with a network connected device.
- the number of commercially-valued credits may be associated with one or more of: an email address, an IP address or a MAC address.
- the miner may append none, one, or a plurality of location reports received from the peer-to-peer network to the block.
- the miner may also append a count of the number of reports added to the block.
- the miner may insert a nonce into the block.
- the nonce may comprise a number, a string, or a binary data, and may be selected randomly or according to a predetermined algorithm, for example, the nonce may initially be the number 1 , and subsequently incremented by one until a successful result is returned from the validation computation.
- the miner may conduct a validation computation on the block in its current state.
- the validation computation may comprise applying a one or more hash functions to the block, and then possibly applying the one or more hash functions or a different one or more hash functions repeatedly one or more times to the output of the previous hash function applied.
- the hash functions used may include SHA, RIPEMD, Whirlpool, Scrypt, HAS-160, or other cryptographic hash function where a hash output cannot be determined from hash input other than by the application of the cryptographic hash function to the hash input.
- a final result of step 510 may be a number.
- the final result is compared to a target value.
- the target value may be a fixed value agreed upon by a plurality of participating devices in the peer-to-peer network, or it may be a dynamic value determined in one embodiment by the average time taken for the miners in the peer-to-peer network to produce the last K blocks, where K is a fixed value agreed upon by the plurality of participating devices in the peer-to-peer network.
- the result may be determined to be successful if the final result is greater than the target.
- the result may be determined to be successful if the final result is greater or equal to the target value, or less than the target value, or less than or equal to the target value, or by some other Boolean operation on the final result and the target value.
- step 514 may be executed.
- the miner may alter the nonce in the block, for example by incrementing its value if it is a number, or by selecting a new nonce at random, and may then proceed to step 510 again.
- the repeated cycle of step 510 , step 512 , and step 514 is often described in the art as a “proof of work” effort.
- step 516 may be executed.
- the miner may append a checksum or cryptographic hash to the block, which allows third parties to verify that the preceding data is correct and has not been altered or corrupted during data transfer.
- the miner may execute step 520 , by sending the completed block to the peer-to-peer network for inspection by other network connected devices, and subsequent inclusion in the shared ledger.
- FIG. 6 is a diagram defining one exemplary embodiment of a block in terms of elements generated through the process described previously in FIG. 5 . It should be noted that in although the elements for inclusion in the block are presented in a given order in the preferred embodiment detailed above, the chosen ordering within the block may be decided in an arbitrary manner, provided all participants on the peer-to-peer network agree to the same ordering.
- Element 602 is a header, and may comprise: an identifier indicating that the block is intended for a peer-to-peer geolocation system such as is described in this disclosure; a link to the preceding block, for example through a block number identifier or a cryptographic hash of the preceding block; a time stamp.
- Element 604 is an integer indicating the block size.
- Element 606 is a nonce.
- Element 608 is a commercially-valued credit allocation message, and may include a claim to a number of commercially-valued credits to be allocated.
- Element 610 is an integer indicating the number of location reports included in the block. It can be zero, or an integer greater than zero. In FIG. 6 an example is presented in which N location reports are included in the block.
- Element 612 is an example of a first location report received from the peer-to-peer network and included in the block.
- Element 614 is an example of a second location report received from the peer-to-peer network and included in the block.
- Element 616 is an example of an Nth location report received from the peer-to-peer network and included in the block.
- Element 618 is an integer indicating a number of transaction messages may be included in the block. It can be zero, or an integer greater than zero. In FIG. 6 an example is presented in which M transaction messages are included in the block.
- a transaction message may represent a transfer of commercially-valued credits from an allocation to a one public cryptographic key to an allocation to a second public cryptographic key, and may be signed with a private cryptographic key to authorize the transfer.
- Element 620 is an example of a first transaction message received from the peer-to-peer network or generated by the miner and included in the block.
- Element 622 is an example of a second transaction message received from the peer-to-peer network or generated by the miner and included in the block.
- Element 624 is an example of a Mth transaction message received from the peer-to-peer network or generated by the miner and included in the block.
- elements 602 through 624 may be cryptographically hashed during the validation computation in the proof of work activity to provide a final result for comparison with the target value.
- Element 626 is a checksum or cryptographic hash of elements 602 through 624 that may be included in the block, for example to allow third parties to verify that the preceding data is correct and has not been altered or corrupted during data transfer. In one embodiment it may be the result obtained from the proof of work activity during the validation computation.
- a network connected device for verifying a block submitted to the peer-to-peer network by a miner is presented in FIG. 7 .
- the network connected device may receive the block from the peer-to-peer network.
- step 704 the verifier may perform a same validation computation on the submitted block, as performed by the miner.
- step 706 the verifier may examine a result to determine if the block satisfies the validation computation. If the result is “no”, the network connected device may proceed to step 708 , in which the block is discarded. If the result is “yes”, the network connected device may proceed to step 710 , in which the shared ledger may be scanned for location reports or transaction messages matching those in the submitted block.
- step 710 may be evaluated by the verifier in step 712 . If the result of step 712 is “yes”, then duplicates have been found, and the verifier proceeds to step 708 , in which the block is discarded. If the result of step 712 is “no”, then no duplicates were found, and the verifier proceeds to step 714 , in which the block is added to the shared ledger.
- FIG. 8 presents a possible embodiment of a location report message.
- the location report header 802 may contain a marker indicating that the rest of the message contains a location report, and other header information such as the length of the report.
- the location report may contain the public key 804 , the network address 806 and the email address 808 of the network connected location determining device 102 that is to submit the location report.
- a data payload of the location report may comprise a longitude 812 , a latitude 814 , an altitude 816 , a time of position determination 818 , and a position accuracy 820 .
- the data payload may be encrypted with a cryptographic symmetric key 810 , for example to maintain the privacy of the location determined by the network connected location determining device.
- the location report may also comprise the symmetric key of 810 encrypted with a public key 822 of an alternate network connected device. This may allow the alternate network connected device to decrypt the symmetric key using its private key, and subsequently decrypt the data payload 812 - 820 , using the decrypted symmetric key.
- the location report may also comprise a digital signature 824 , generated with the private key of the network connected location determining device, in order to provide for the veracity of the submitted location report.
- an advantage of the systems and methods of this disclosure includes distributing effort required to maintain and extend a shared ledger, a file, or a database of location information pertaining to a plurality of network connected location determining devices, thereby providing protection from an existence of a single point of failure, and reducing cost to individual users of the system. Further, these techniques offer protection of the location data stored through use of cryptographic keys and digital signatures. Finally, the techniques also allow for rewarding of owners of network connected devices participating in the peer-to-peer network and charging of owners or users of network connected location determining devices providing location reports to the system.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Mobile Radio Communication Systems (AREA)
- Information Transfer Between Computers (AREA)
Abstract
Description
- The present application is a continuation of, and claims priority of, U.S. non-provisional application Ser. No. 15/885,456, filed Jan. 31, 2018, which is a continuation of U.S. non-provisional application Ser. No. 14/981,803, entitled “Peer-To-Peer Geolocation System”, filed Dec. 28, 2015. The aforementioned United States applications are hereby incorporated by reference in their entirety.
- The invention relates to computer systems and methods for reporting and recording device locations, and more specifically to the reporting of device locations to a shared file, distributed and maintained over a peer-to-peer network.
- An entity such as a parent of a child, a haulage company or delivery service, a prison system, or a car rental company, may need to track a location of users or assets, for example but not limited to: ensuring safety, for legal reasons, or in order to secure such assets.
- A common method for reporting and storing location data is in a database connected to a network such as are known from US2014074667.
- If a location data is recorded in a database maintained by the entity, there are high costs associated with installing and maintaining the hardware and network infrastructure.
- If the location is recorded in a facility maintained by a third party such as a data storage provider, then there is a risk that due to network failure or other technical issues the data storage facility will at some times not be available to be queried by the entity, or to be written to by a location aware device to be tracked by the entity. In extreme cases the location data may be irretrievably lost.
- Furthermore, if the database is maintained by the third party, there is a risk that the location data may be revealed to other parties, hacked, corrupted, or otherwise altered, without the knowledge of the entity or possibly the third party.
- It is the intention of the present invention to address the shortcomings of the prior art, i.e. the problems of establishing and maintaining a network enabled data storage system, ensuring the integrity of the stored data, and providing always-available data access for users of the system. Furthermore, if the method used is based on a distributed system, no individual maintenance costs arise, there is no single point of failure, and through an inherent cryptographic structure integrity is maintained.
- In accordance with the present invention, a solution is provided for reporting, storing and subsequently retrieving the locations of devices or objects in a distributed and secure manner. The problems are establishing and maintaining a network enabled data storage system, ensuring the integrity of the stored data, and providing always-available data access for users of the system. If the method used is based on a distributed system, no individual maintenance costs arise, there is no single point of failure, and through an inherent cryptographic structure integrity is maintained.
- Embodiments of the invention are based on the reporting of location in a location report by a network enabled location determining device communicating through a peer-to-peer network system to a plurality of network enabled devices. A first of the plurality of network enabled devices performs a validation computation on the location report and forwards a result of the validation computation to the plurality of network enabled devices for inclusion in a shared ledger of location reports.
- The network enabled location determining device may include a location module that may comprise a global navigation satellite system receiver (GNSS receiver), a magnetometer, an accelerometer, an altimeter, and a gyroscopic sensor for determining the location of the device. Further methods and apparatus for determining the location of the device may include trilateration or time difference of arrival calculations using a wireless local area network (WLAN), Bluetooth, or a wireless wide area network (WWAN) positioning method, position determination using fluctuations in a detected magnetic field, or a hybrid combination of all the aforementioned systems to produce an accurate location fix.
- The decision by the network enabled location determining device to determine and report a location may be triggered through: an external request over a communication network channel; on a regular timed basis, for example but not limited to one location determination every ten minutes; an external trigger detected by the network enabled device's sensors, for example due to a change in motion detected by the accelerometer or a change in orientation detected by the gyroscopic sensor or magnetometer; a completion of a computation on the network enabled location determining device; or some other internal or external event.
- In some embodiments of the invention the location report may be signed by the network enabled location determining device using an associated public-private key pair, for example using the ECDSA signature scheme, the ElGamal signature scheme, the DSA signature scheme, or some other asymmetric key infrastructure.
- In further embodiments of the invention at least part of the location report may be encrypted using an asymmetric or symmetric cryptographic key generated by the network enabled location determining device, to prevent unauthorized third parties from scanning the shared ledger and extracting the location of the location determining network enabled device at reported times. The cryptographic key may then be shared with selected parties in subsequent reports submitted for inclusion in the shared ledger, or the cryptographic key may be encrypted with the public key of a public-private key pair and appended to the location report.
- When the location report is submitted to the peer-to-peer network, a subset of the plurality of network enabled devices associated with the peer-to-peer network may forward copies of the location to a remainder of the plurality of network enabled devices. Network enabled devices on the peer-to-peer network may be standard nodes, in that they forward location reports on to other devices on the peer-to-peer network, or they may be “miners”, which are nodes that also perform validation computations on a submitted location report in order to solve a proof-of-work or other computationally difficult problem that confirms to other nodes and miners that the submitted location report should be added to the shared ledger.
- The first of the plurality of network enabled devices to successfully generate a validation computation result may submit this, together with the location report, to the peer-to-peer network. The remainder of plurality of network enabled devices may then check the validation computation. If it is correct, they may add it to the shared ledger. In this manner, the location report is stored in the shared ledger for future retrieval and examination.
- In order to provide an incentive for third parties to join the peer-to-peer network as miners, a commercially-valued credit system may be associated with the described system. When the validation computation result and location reports are submitted to the peer-to-peer network by the first of the plurality of network enabled devices, it may also submit a notification that a number of commercially-valued credits are to be credited to a public key of a private-public key pair generated by the first of the plurality of network enabled devices. When the remainder of the plurality of network enabled devices add the location report and the validation computation result to the shared ledger, they also add this notification to the shared ledger.
- A submission comprising one or more location reports, a validation computation result and a commercially-valued credit notification will henceforth be described as a “block”. The awarding of commercially-valued credits on successfully producing an accepted block provides third parties with a motivation to allocate computing resources and hardware to work on the production of blocks. Blocks may also be constructed to comprise a transaction report that reallocates commercially-valued credits from a first public key to a second public key, by signing the transaction report with a private key of the first public key.
- In another embodiment, the location report submitted by the location determining network enabled device may contain an offer of commercially-valued credits that are allocated to a public key of the public-private key pair associated with the location determining network enabled device. The commercially-valued credits may then be claimed by the first of the plurality of network enabled devices to produce a block accepted into the public ledger, for example by including a transaction notification in the block that reallocates the commercially-valued credits to the public key of the first of the plurality of network enabled devices.
- Those skilled in the art will further appreciate the advantages and superior features of the invention together with other important aspects thereof on reading the detailed description that follows in conjunction with the drawings.
- The components in the figures are not necessarily to scale, emphasis instead being placed upon illustrating the principles of the present invention. In the figures, like reference numerals designate corresponding parts throughout the different views.
-
FIG. 1 illustrates a peer-to-peer network with a location determining network enabled device and a plurality of network enabled devices connected to the peer-to-peer network, in accordance with an embodiment of the present invention. -
FIG. 2 illustrates a location determining network enabled device, in accordance with an embodiment of the present invention. -
FIG. 3 is a flowchart that shows how the decision to produce a location report by the location determining network enabled device may be made. -
FIG. 4 is a signal flow diagram providing a general overview of a method controlling the flow of location data from the location determining network enabled device to the plurality of network enabled devices connected via a peer-to-peer network for inclusion in the shared ledger. -
FIG. 5 is a flowchart that shows an example method for the first of the plurality of network enabled devices to generate and broadcast a validation computation result, according to one embodiment of the invention. -
FIG. 6 is a block diagram illustrating the structure of a possible embodiment of the blocks in shared ledger. -
FIG. 7 is a flowchart illustrating a method for including a block containing a location report and a commercially-valued credit allocation in a shared ledger, according to one embodiment of the invention. -
FIG. 8 is a block diagram illustrating a possible structure of a location report encrypted with a cryptographic key, and with the cryptographic key itself encrypted with a public key and appended to the location report. - Aspects of this disclosure will be described in the context of an exemplary system of a plurality of location determining network connected devices and a plurality of network connected devices communicating through the medium of a peer-to-
peer network system 100, as shown schematically inFIG. 1 . As depicted, the peer-to-peer network 108 is embodied within a packet switchednetwork 101, through the interconnection of the plurality of network connected devices on the peer-to-peer network 108. - A location determining network enabled
device 102 may connect to the peer-to-peer network, either through a wireless connection by association with awireless access point 103 as depicted inFIG. 1 , or alternatively through a cellular base station, a Bluetooth connection, or other wireless connection that provides access to the packet switched network. Alternatively, the location determining device may be connected directly to the packet switched network through a wired connection. - Other devices connected the peer-to-peer network may include network connected devices acting as a “node” 104, 105 whose role is to maintain a list of other devices connected through the peer-to-peer network, and to forward on received network messages to those devices on the list, possibly independently, or possibly as a response to a request from another network connected device. As one skilled in the art will be aware, no individual node is required to have a complete list of all devices, as the process of peer-to-peer networking only requires that a union of a set of all nodes contains a complete list of all devices on the peer-to-peer network, and for every pair of network connected devices there is a network route from one device to the other, possibly via a set of one or more nodes. Therefore, the only requirement to be a participant on the peer-to-peer network is to establish a connection to one or more of the nodes on said network.
- Further devices connected via the peer-to-peer network may include one or more network connected
devices - The devices described above may each be implemented through a system comprising a one or a plurality of: general purpose microprocessors, digital signal processors (DSPs), application specific instruction set processors (ASIPs), field programmable gate arrays (FPGAs), dedicated application specific integrated chips (ASICs), or other equivalent integrated or discrete logic circuitry and peripheral circuitry, connected to a tangible storage medium containing instructions which when executed effect methods and techniques described below. The techniques additionally, or alternatively, may be realized at least in part by a computer-readable communication medium or record carrier, that carries or communicates code in the form of instructions or data structures and that can be accessed, read, and/or executed by a computer.
- An embodiment of the network connected
location determining device 102 is presented inFIG. 2 , and is now discussed in further detail. The network connectedlocation determining device 102 may comprise aCPU 240 capable of executing instructions stored in amemory 242, and controlling other peripheral components throughdrivers 244 stored within thememory 242.Further storage 246 may be present. - Optionally, the network connected
location determining device 102 may also include an integrated location determining module, comprising one or more of a global navigation satellite system (GNSS)receiver 222, anantenna 202 for saidGNSS receiver 222, and asensor module 224, connected to one or more of analtimeter 216, amagnetometer 217, agyroscopic sensor 218, and anaccelerometer 219. The integrated location determining module may determine a longitude, a latitude, a heading, a velocity, an acceleration, and an altitude of the network connectedlocation determining device 102 to a degree of accuracy through the use of some or all of these components. - The network connected
location determining device 102 may also include wireless components comprising one or more wireless modules implemented in firmware or hardware, including a wireless local area network (WLAN)module 210 such as a Wi-Fi adapter utilizing an 802.11 protocol, a wireless wide area network (WWAN)module 212 such as GSM, LTE, or other cellular wireless data communication system, or aBluetooth module 214, each with one or more associatedantennas - The wireless components may also be employed to obtain, or help obtain, a location through techniques such as, but not limited to, time difference of arrival determination of data frames at the wireless component, signal strength determination, signal trilateration, and other wireless position techniques know to those skilled in the art. Furthermore, measurements from the wireless components can be used in conjunction with measurements from the
GNSS module 222, and thesensor module 224, to provide a hybrid or combined location result. - Components comprising the network connected location determining device may communicate through a
bus 226, which may be implemented as a peripheral component interconnect express (PCIe) bus, a universal serial bus (USB), a universal asynchronous receiver/transmitter (UART) serial bus, a suitable advanced micro-controller bus architecture (AMBA) interface, a serial digital input output (SDIO) bus, or other equivalent interface. - In
FIG. 3 an exemplary list of possible events, triggers, or occurrences is provided that may cause the network connected location determining device to perform a location determining operation, generate a location report, and send the location report to the peer-to-peer network.Event 302 is an internal step and represents a timer event, in which a one-time timer or a repeat timer may be triggered after a pre-set time, causingstep 318 to be executed, in which the network connectedlocation determining device 102 generates and sends a location report. -
Event 304 may represent a request from an external entity over the packet switched network forstep 318 to be executed. The external request may be issued by an owner of the network connected location determining device, or by a user or entity authorized by the owner, or the option to issue the request may be open to any entity. -
Event 306 may represent the network connected location determining device detecting that theaccelerometer sensor 219 has experienced a change in output sensor data, reflecting a change in acceleration of the network connected location determining device, and may triggerstep 318 to be executed. -
Event 308 may represent the network connected location determining device detecting that themagnetometer sensor 217 has experienced a change in output sensor data, reflecting a change in heading of the network connected location determining device or a movement through a varying magnetic field, and may triggerstep 318 to be executed. -
Event 310 may represent the network connected location determining device detecting that thegyroscopic sensor 218 has experienced a change in output sensor data, reflecting a change in heading or a rotation about an internal or external axis of the network connected location determining device, and may triggerstep 318 to be executed. -
Event 312 may represent the network connected location determining device detecting that the time difference of arrival of frame data in response to frame request data by theWLAN module 210, theWWAN module 212 or theBluetooth module 214, has increased or decreased, possibly reflecting a change in the distance of the network connected location determining device from an associated WLAN access point, a WWAN base station or paired Bluetooth device, respectively, and may triggerstep 318 to be executed. -
Event 314 may represent the network connected location determining device detecting that its position has changed due to a changing position report from theGNSS module 222, and may triggerstep 318 to be executed. -
Event 316 may represent the completion of some other internal computation result, and may triggerstep 318 to be executed. - It will be appreciated by those skilled in the art that although
FIG. 3 shows a logical OR 320 applied toevents step 318 could be undertaken with a logical AND, NOR, or NAND, and applied pairwise to any combination of the events. - A high level flow diagram illustrating one possible embodiment of the system and the steps taken therein is presented in
FIG. 4 . The interaction of the location determining network enableddevice 102 with the plurality of network connected devices, and specifically a network connected device functioning as anode 104, and a network connected device functioning as aminer 106, and finally another one of the plurality of network connecteddevices 107, is shown. The flow of a data comprising the location and other associated information determined by the location determining network enabled device through the location report, inclusion in the successfully generated block, and the appending of said block to the shared ledger is also illustrated throughFIG. 4 . - Once the network connected
location determining device 102 has determined a location and other associated data, it may generate alocation report 402. The location report may then be encapsulated in anetwork message 404 and sent on to the peer-to-peer network 406. - Once the location report encapsulated in the network message has been received by a network connected device acting as a
node 104, the node may forward the message to other network connected devices on the peer-to-peer network 408. Other network connected devices may also make requests to the node for network messages that they have not yet received. Through these means, the location report encapsulated in the network message is forwarded to all interested parties on the peer-to-peer network. - Through these network interactions, the location report encapsulated in the network message may arrive at a network connected device acting as a
miner 106. The miner may then extract the location report from the network message as perstep 410. After the location report has been obtained, the miner may construct a block containing the location report, a nonce, and any other location reports that the miner has previously received and that have not yet been included in the shared ledger as noted instep 412. The block may also contain other messages and elements, which will be detailed further below. The miner may then perform a validation computation on theblock 414, further details of which will be provided below. For now, it suffices to note that the validation computation will either return a correct result, or a failure as perstep 416. If the validation computation returns a failure, the miner may alter the nonce as perstep 417, for example if it is an integer by incrementing or decrementing the value of the number by a chosen amount, or by choosing a new random value, and may then repeat the validation computation on the new block as perstep 414. If the validation computation is correct, the block has been successfully verified and the miner may transmit it to the peer-to-peer network 418. - Through transmission to the peer-to-peer network, the block may arrive at another network connected
device 107, which may constitute another miner, or another node. The network connecteddevice 107 may then repeat the same validation computation on theblock 420 as previously performed by theminer 106 instep 414, and the validation computation will return either a successful result or afailure 422. If the computation result is a failure, the network connecteddevice 107 may discard the block, as shown instep 424. If the validation computation produces a successful result, then the network connecteddevice 107 may add the block to a copy of the sharedledger 426. -
FIG. 5 presents a flowchart providing further details for one possible embodiment of a miner, and provides a specification for the steps taken once a location report or a plurality of location reports have been received by a network connected device acting as a miner. - In
step 502 the miner generates a header for a new block, which in one embodiment may contain data indicating the start of the block, and may contain a link back to the last accepted block in the shared ledger, for example through inclusion of a hash of the previous block. The header may also contain a time stamp. - In
step 504 the miner may append a message to the block, commonly known to those skilled in the art as a “block reward”, which allocates a number of commercially-valued credits to a public key associated with a network connected device. In other embodiments the number of commercially-valued credits may be associated with one or more of: an email address, an IP address or a MAC address. - In
step 506 the miner may append none, one, or a plurality of location reports received from the peer-to-peer network to the block. The miner may also append a count of the number of reports added to the block. - In
step 508 the miner may insert a nonce into the block. The nonce may comprise a number, a string, or a binary data, and may be selected randomly or according to a predetermined algorithm, for example, the nonce may initially be thenumber 1, and subsequently incremented by one until a successful result is returned from the validation computation. - In
step 510 the miner may conduct a validation computation on the block in its current state. The validation computation may comprise applying a one or more hash functions to the block, and then possibly applying the one or more hash functions or a different one or more hash functions repeatedly one or more times to the output of the previous hash function applied. The hash functions used may include SHA, RIPEMD, Whirlpool, Scrypt, HAS-160, or other cryptographic hash function where a hash output cannot be determined from hash input other than by the application of the cryptographic hash function to the hash input. A final result ofstep 510 may be a number. - In
step 512 the final result is compared to a target value. The target value may be a fixed value agreed upon by a plurality of participating devices in the peer-to-peer network, or it may be a dynamic value determined in one embodiment by the average time taken for the miners in the peer-to-peer network to produce the last K blocks, where K is a fixed value agreed upon by the plurality of participating devices in the peer-to-peer network. When the final result is compared to the target value, the result may be determined to be successful if the final result is greater than the target. In other embodiments of the invention the result may be determined to be successful if the final result is greater or equal to the target value, or less than the target value, or less than or equal to the target value, or by some other Boolean operation on the final result and the target value. - If the result of
step 512 is “no”, then step 514 may be executed. The miner may alter the nonce in the block, for example by incrementing its value if it is a number, or by selecting a new nonce at random, and may then proceed to step 510 again. The repeated cycle ofstep 510,step 512, and step 514 is often described in the art as a “proof of work” effort. - If the result of
step 512 is “yes”, then step 516 may be executed. The miner may append a checksum or cryptographic hash to the block, which allows third parties to verify that the preceding data is correct and has not been altered or corrupted during data transfer. - Finally, the miner may execute step 520, by sending the completed block to the peer-to-peer network for inspection by other network connected devices, and subsequent inclusion in the shared ledger.
-
FIG. 6 is a diagram defining one exemplary embodiment of a block in terms of elements generated through the process described previously inFIG. 5 . It should be noted that in although the elements for inclusion in the block are presented in a given order in the preferred embodiment detailed above, the chosen ordering within the block may be decided in an arbitrary manner, provided all participants on the peer-to-peer network agree to the same ordering. -
Element 602 is a header, and may comprise: an identifier indicating that the block is intended for a peer-to-peer geolocation system such as is described in this disclosure; a link to the preceding block, for example through a block number identifier or a cryptographic hash of the preceding block; a time stamp. -
Element 604 is an integer indicating the block size. -
Element 606 is a nonce. -
Element 608 is a commercially-valued credit allocation message, and may include a claim to a number of commercially-valued credits to be allocated. -
Element 610 is an integer indicating the number of location reports included in the block. It can be zero, or an integer greater than zero. InFIG. 6 an example is presented in which N location reports are included in the block. -
Element 612 is an example of a first location report received from the peer-to-peer network and included in the block. -
Element 614 is an example of a second location report received from the peer-to-peer network and included in the block. -
Element 616 is an example of an Nth location report received from the peer-to-peer network and included in the block. -
Element 618 is an integer indicating a number of transaction messages may be included in the block. It can be zero, or an integer greater than zero. InFIG. 6 an example is presented in which M transaction messages are included in the block. A transaction message may represent a transfer of commercially-valued credits from an allocation to a one public cryptographic key to an allocation to a second public cryptographic key, and may be signed with a private cryptographic key to authorize the transfer. -
Element 620 is an example of a first transaction message received from the peer-to-peer network or generated by the miner and included in the block. -
Element 622 is an example of a second transaction message received from the peer-to-peer network or generated by the miner and included in the block. -
Element 624 is an example of a Mth transaction message received from the peer-to-peer network or generated by the miner and included in the block. - In a preferred embodiment of the invention,
elements 602 through 624 may be cryptographically hashed during the validation computation in the proof of work activity to provide a final result for comparison with the target value. -
Element 626 is a checksum or cryptographic hash ofelements 602 through 624 that may be included in the block, for example to allow third parties to verify that the preceding data is correct and has not been altered or corrupted during data transfer. In one embodiment it may be the result obtained from the proof of work activity during the validation computation. - One possible embodiment of a network connected device, henceforth referred to as a verifier, for verifying a block submitted to the peer-to-peer network by a miner is presented in
FIG. 7 . Instep 702 the network connected device may receive the block from the peer-to-peer network. - In
step 704 the verifier may perform a same validation computation on the submitted block, as performed by the miner. - In
step 706 the verifier may examine a result to determine if the block satisfies the validation computation. If the result is “no”, the network connected device may proceed to step 708, in which the block is discarded. If the result is “yes”, the network connected device may proceed to step 710, in which the shared ledger may be scanned for location reports or transaction messages matching those in the submitted block. - The result from
step 710 may be evaluated by the verifier instep 712. If the result ofstep 712 is “yes”, then duplicates have been found, and the verifier proceeds to step 708, in which the block is discarded. If the result ofstep 712 is “no”, then no duplicates were found, and the verifier proceeds to step 714, in which the block is added to the shared ledger. -
FIG. 8 presents a possible embodiment of a location report message. Thelocation report header 802 may contain a marker indicating that the rest of the message contains a location report, and other header information such as the length of the report. - The location report may contain the
public key 804, thenetwork address 806 and theemail address 808 of the network connectedlocation determining device 102 that is to submit the location report. - A data payload of the location report may comprise a
longitude 812, alatitude 814, analtitude 816, a time ofposition determination 818, and aposition accuracy 820. The data payload may be encrypted with a cryptographicsymmetric key 810, for example to maintain the privacy of the location determined by the network connected location determining device. - The location report may also comprise the symmetric key of 810 encrypted with a
public key 822 of an alternate network connected device. This may allow the alternate network connected device to decrypt the symmetric key using its private key, and subsequently decrypt the data payload 812-820, using the decrypted symmetric key. - The location report may also comprise a
digital signature 824, generated with the private key of the network connected location determining device, in order to provide for the veracity of the submitted location report. - As will be appreciated from the above discussion, an advantage of the systems and methods of this disclosure includes distributing effort required to maintain and extend a shared ledger, a file, or a database of location information pertaining to a plurality of network connected location determining devices, thereby providing protection from an existence of a single point of failure, and reducing cost to individual users of the system. Further, these techniques offer protection of the location data stored through use of cryptographic keys and digital signatures. Finally, the techniques also allow for rewarding of owners of network connected devices participating in the peer-to-peer network and charging of owners or users of network connected location determining devices providing location reports to the system.
Claims (20)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/996,830 US20200382904A1 (en) | 2015-12-28 | 2020-08-18 | Peer-to-peer geolocation system |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/981,803 US9894485B2 (en) | 2015-12-28 | 2015-12-28 | Peer-to-peer geolocation system |
US15/885,456 US10779120B2 (en) | 2015-12-28 | 2018-01-31 | Peer-to-peer geolocation system |
US16/996,830 US20200382904A1 (en) | 2015-12-28 | 2020-08-18 | Peer-to-peer geolocation system |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US15/885,456 Continuation US10779120B2 (en) | 2015-12-28 | 2018-01-31 | Peer-to-peer geolocation system |
Publications (1)
Publication Number | Publication Date |
---|---|
US20200382904A1 true US20200382904A1 (en) | 2020-12-03 |
Family
ID=59086810
Family Applications (6)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US14/981,803 Active 2036-03-28 US9894485B2 (en) | 2015-12-28 | 2015-12-28 | Peer-to-peer geolocation system |
US15/876,122 Abandoned US20180146338A1 (en) | 2015-12-28 | 2018-01-20 | Peer to peer geolocation system |
US15/876,160 Abandoned US20180146339A1 (en) | 2015-12-28 | 2018-01-21 | Peer-to-peer geolocation system |
US15/885,456 Active US10779120B2 (en) | 2015-12-28 | 2018-01-31 | Peer-to-peer geolocation system |
US16/996,830 Abandoned US20200382904A1 (en) | 2015-12-28 | 2020-08-18 | Peer-to-peer geolocation system |
US17/122,506 Abandoned US20210176596A1 (en) | 2015-12-28 | 2020-12-15 | Peer-to-peer geolocation system |
Family Applications Before (4)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US14/981,803 Active 2036-03-28 US9894485B2 (en) | 2015-12-28 | 2015-12-28 | Peer-to-peer geolocation system |
US15/876,122 Abandoned US20180146338A1 (en) | 2015-12-28 | 2018-01-20 | Peer to peer geolocation system |
US15/876,160 Abandoned US20180146339A1 (en) | 2015-12-28 | 2018-01-21 | Peer-to-peer geolocation system |
US15/885,456 Active US10779120B2 (en) | 2015-12-28 | 2018-01-31 | Peer-to-peer geolocation system |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US17/122,506 Abandoned US20210176596A1 (en) | 2015-12-28 | 2020-12-15 | Peer-to-peer geolocation system |
Country Status (1)
Country | Link |
---|---|
US (6) | US9894485B2 (en) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8874477B2 (en) | 2005-10-04 | 2014-10-28 | Steven Mark Hoffberg | Multifactorial optimization system and method |
US10677886B2 (en) * | 2015-01-05 | 2020-06-09 | Locatorx, Inc. | Mini blockchain in a chip device and methods of utilization |
US10135921B2 (en) * | 2016-09-20 | 2018-11-20 | Keir Finlow-Bates | System and method for announcing cryptographic keys on a blockchain |
US20200394652A1 (en) | 2017-03-08 | 2020-12-17 | Ip Oversight Corporation | A method for creating commodity assets from unrefined commodity reserves utilizing blockchain and distributed ledger technology |
US10698115B2 (en) | 2017-06-27 | 2020-06-30 | Here Global B.V. | Supporting an extended use of assistance data for Galileo |
US10694382B2 (en) * | 2017-06-27 | 2020-06-23 | Here Global B.V. | Authentication of satellite navigation system receiver |
US10732288B2 (en) | 2017-06-27 | 2020-08-04 | Here Global B.V. | Enhanced use of satellite navigation system related data |
WO2019054044A1 (en) * | 2017-09-14 | 2019-03-21 | ソニー株式会社 | Information processing device, information processing method, and program |
GB2566741A (en) * | 2017-09-26 | 2019-03-27 | Phm Associates Ltd | Integrity of data records |
US10313393B1 (en) | 2017-11-16 | 2019-06-04 | Capital One Services, Llc | Systems and methods for securely pairing a transmitting device with a receiving device |
CN111953842A (en) * | 2019-05-16 | 2020-11-17 | 北京小米移动软件有限公司 | Electronic equipment, safety protection method and device |
CN117560666B (en) * | 2024-01-11 | 2024-03-15 | 南京中科齐信科技有限公司 | Method for establishing point-to-point encryption communication network between intelligent network-connected automobile and cloud |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7904450B2 (en) * | 2008-04-25 | 2011-03-08 | Wilson Kelce S | Public electronic document dating list |
US20140074667A1 (en) | 2012-09-11 | 2014-03-13 | Michael D. Smith | System and Method for Inventory Control of Mobile Assets |
CA2947936C (en) * | 2013-05-04 | 2023-02-21 | Christopher Decharms | Mobile security technology |
US10340038B2 (en) | 2014-05-13 | 2019-07-02 | Nant Holdings Ip, Llc | Healthcare transaction validation via blockchain, systems and methods |
US20160086175A1 (en) * | 2014-09-22 | 2016-03-24 | Qualcomm Incorporated | Peer-to-peer transaction system |
WO2016128491A1 (en) * | 2015-02-11 | 2016-08-18 | British Telecommunications Public Limited Company | Validating computer resource usage |
US20160342977A1 (en) * | 2015-05-20 | 2016-11-24 | Vennd.io Pty Ltd | Device, method and system for virtual asset transactions |
CN106251144A (en) | 2015-06-05 | 2016-12-21 | 地气股份有限公司 | Electronic money management method and electronic money node apparatus |
US10402792B2 (en) * | 2015-08-13 | 2019-09-03 | The Toronto-Dominion Bank | Systems and method for tracking enterprise events using hybrid public-private blockchain ledgers |
US10621577B2 (en) * | 2015-09-11 | 2020-04-14 | Bank Of America Corporation | Controlling access to data |
US20170132625A1 (en) * | 2015-11-05 | 2017-05-11 | Mastercard International Incorporated | Method and system for use of a blockchain in a transaction processing network |
US11562353B2 (en) * | 2015-11-24 | 2023-01-24 | Mastercard International Incorporated | Method and system for gross settlement by use of an opaque blockchain |
GB2557556A (en) * | 2015-11-25 | 2018-06-20 | Walmart Apollo Llc | Unmanned aerial delivery to secure location |
-
2015
- 2015-12-28 US US14/981,803 patent/US9894485B2/en active Active
-
2018
- 2018-01-20 US US15/876,122 patent/US20180146338A1/en not_active Abandoned
- 2018-01-21 US US15/876,160 patent/US20180146339A1/en not_active Abandoned
- 2018-01-31 US US15/885,456 patent/US10779120B2/en active Active
-
2020
- 2020-08-18 US US16/996,830 patent/US20200382904A1/en not_active Abandoned
- 2020-12-15 US US17/122,506 patent/US20210176596A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
US20170188197A1 (en) | 2017-06-29 |
US9894485B2 (en) | 2018-02-13 |
US20210176596A1 (en) | 2021-06-10 |
US10779120B2 (en) | 2020-09-15 |
US20180146338A1 (en) | 2018-05-24 |
US20180146339A1 (en) | 2018-05-24 |
US20180160270A1 (en) | 2018-06-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10779120B2 (en) | Peer-to-peer geolocation system | |
US11025714B2 (en) | System and method for announcing cryptographic keys on a blockchain | |
US20200127825A1 (en) | Revocation of cryptographic keys in the absence of a trusted central authority | |
CN111386674B (en) | Terminal identity protection method in communication system | |
CN107659550B (en) | Vehicle-to-vehicle private communication | |
US10117096B2 (en) | Systems and methods to determine safe zones and safe routes of a device | |
KR101647430B1 (en) | Generic broadcast of location assistance data | |
KR101806061B1 (en) | Provable geo-location | |
Tan et al. | Secure certificateless authentication and road message dissemination protocol in VANETs | |
EP3895105A1 (en) | Communication network node, methods, and a mobile terminal | |
US11489822B2 (en) | Cloud key management for AFU security | |
US20180184253A1 (en) | Systems and methods to determine safe zones and safe routes of a device | |
US9530026B2 (en) | Privacy protection for participatory sensing system | |
JP7367032B2 (en) | Identification confirmation method and device | |
US11792644B2 (en) | Session key generation for autonomous vehicle operation | |
CN109039651A (en) | A kind of transmission method of location information, transmitting device and global position system | |
EP4097916A1 (en) | Communication network, communication network node, user equipment, method | |
CN117955649B (en) | Safe and efficient data transmission method and system for Internet of things and electronic equipment | |
Wang et al. | EPAF: An Efficient Pseudonymous-Based Inter-vehicle Authentication Framework for VANET |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
STPP | Information on status: patent application and granting procedure in general |
Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION |
|
AS | Assignment |
Owner name: OPEN INVENTION NETWORK LLC, NORTH CAROLINA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:FINLOW-BATES, KEIR;REEL/FRAME:054749/0675 Effective date: 20180625 |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NON FINAL ACTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NOTICE OF ALLOWANCE MAILED -- APPLICATION RECEIVED IN OFFICE OF PUBLICATIONS |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO PAY ISSUE FEE |
|
AS | Assignment |
Owner name: PHILIPS NORTH AMERICA LLC, MASSACHUSETTS Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:OPEN INVENTION NETWORK LLC;REEL/FRAME:061258/0318 Effective date: 20220811 |