Bluetooth® RF signature for effective security

A timer-based system with additional authentication measures secures vehicle-device pairing by determining the fastest connection time and verifying device authenticity, addressing unauthorized access and relay attacks in vehicle communication systems.

JP2025535765APending Publication Date: 2025-10-28TOYOTA MOTOR NORTH AMERICA INC
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
JP2025521062
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2022-10-13
Filing Date
2023-09-14
Publication Date
2025-10-28

AI Technical Summary

Technical Problem

Existing vehicle communication systems lack efficient and secure methods for pairing devices, particularly in scenarios where unauthorized access or malicious attempts to connect with vehicles are prevalent, such as relay attacks.

Method used

Implementing a timer-based system in vehicles to determine the fastest connection time for Bluetooth devices, combined with additional authentication measures like temperature sensing, movement analysis, and radio frequency signature comparison to ensure secure pairing.

Benefits of technology

Enhances the security of vehicle-device pairing by reducing the risk of unauthorized access and relay attacks, ensuring faster and more reliable connections while maintaining privacy and security.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025535765000001_ABST
    Figure 2025535765000001_ABST
Patent Text Reader

Abstract

Example operations include starting a timer by the vehicle when a pairing request is initiated; receiving by the vehicle a first response to the pairing request from the first device and a second response to the pairing request from the second device; recording the timers when each of the first and second responses is received; determining a first connection time for the first device from the recorded timers; determining a second connection time for the second device from the recorded timers; and connecting by the vehicle to the device having the fastest connection time among the first and second devices.
Need to check novelty before this filing date? Find Prior Art

Description

[Background technology]

[0001] Generally, vehicles or transportation means, such as cars, motorcycles, trucks, airplanes, trains, etc., provide transportation needs for passengers and / or goods in a variety of ways. Functionality associated with the transportation means may be identified and utilized by various computing devices, such as smartphones or computers, located on and / or remote from the transportation means. Summary of the Invention

[0002] One exemplary embodiment provides a method including one or more of: starting a timer by a vehicle when a pairing request is initiated; receiving by the vehicle a first response to the pairing request from a first device and a second response to the pairing request from a second device; recording the timers when each of the first response and the second response is received; determining a first connection time for the first device from the recorded timer; determining a second connection time for the second device from the recorded timer; and connecting by the vehicle to a device having the fastest connection time among the first device and the second device.

[0003] Another exemplary embodiment provides a system comprising a processor and a memory, the processor and the memory being communicatively connected, wherein the processor starts a timer by the vehicle when a pairing request is initiated, receives by the vehicle a first response to the pairing request from a first device and a second response to the pairing request from a second device, records the timer when each of the first response and the second response is received, determines from the recorded timer a first connection time for the first device, determines from the recorded timer a second connection time for the second device, and connects by the vehicle to a device having the fastest connection time among the first device and the second device.

[0004] A further exemplary embodiment provides a computer-readable storage medium comprising instructions that, when read by a processor, cause the processor to do one or more of: starting a timer by the vehicle when a pairing request is initiated; receiving by the vehicle a first response to the pairing request from the first device and a second response to the pairing request from the second device; recording the timers when each of the first and second responses is received; determining from the recorded timer a first connection time for the first device, determining from the recorded timer a second connection time for the second device; and connecting by the vehicle to the device having the fastest connection time among the first and second devices. [Brief explanation of the drawings]

[0005] [Figure 1A] FIG. 1 illustrates an exemplary system diagram according to an exemplary embodiment. [Figure 1B] FIG. 10 illustrates a further example of a system diagram according to an exemplary embodiment. [Figure 2A] FIG. 1 illustrates a transportation network diagram according to an exemplary embodiment. [Figure 2B] FIG. 10 illustrates another transportation network diagram according to an exemplary embodiment. [Figure 2C] FIG. 10 illustrates yet another transportation network diagram according to an illustrative embodiment. [Figure 2D] FIG. 10 illustrates a further transportation network diagram according to an exemplary embodiment. [Figure 2E] FIG. 10 illustrates an additional transportation network diagram according to an exemplary embodiment. [Figure 2F] FIG. 1 illustrates a diagram depicting powering of one or more elements according to an exemplary embodiment. [Figure 2G] FIG. 1 illustrates a diagram depicting interconnections between different elements according to an exemplary embodiment. [Figure 2H]FIG. 10 illustrates a further diagram depicting interconnections between different elements according to an exemplary embodiment. [Figure 2I] FIG. 10 illustrates yet another diagram depicting interconnections between elements according to an exemplary embodiment. [Figure 2J] 10A-10C illustrate additional views depicting a keyless entry system according to an exemplary embodiment. [Figure 2K] FIG. 10 illustrates an additional view depicting a CAN within a vehicle in accordance with an exemplary embodiment. [Figure 2L] FIG. 10 illustrates yet another diagram depicting an end-to-end communication channel according to an exemplary embodiment. [Figure 2M] FIG. 10 shows yet an additional diagram depicting an example vehicle using security certificates for secure V2V communication, according to an exemplary embodiment. [Figure 2N] 10A-10C show further diagrams depicting example vehicles interacting with security processors and wireless devices according to exemplary embodiments. [Figure 3A] FIG. 1 illustrates a flow diagram according to an exemplary embodiment. [Figure 3B] FIG. 10 illustrates another flow diagram according to an exemplary embodiment. [Figure 3C] FIG. 10 illustrates yet another flow diagram according to an exemplary embodiment. [Figure 4] FIG. 1 is a diagram illustrating a machine learning vehicle network diagram according to an exemplary embodiment. [Figure 5A] FIG. 1 illustrates an exemplary vehicle configuration for managing database transactions associated with a vehicle, according to an exemplary embodiment. [Figure 5B] FIG. 1 illustrates another exemplary vehicle configuration for managing database transactions between various vehicles, according to an exemplary embodiment. [Figure 6A] FIG. 1 illustrates a blockchain architecture configuration, according to an exemplary embodiment. [Figure 6B] FIG. 1 illustrates another blockchain configuration, according to an exemplary embodiment. [Figure 6C] FIG. 1 illustrates a blockchain configuration for storing blockchain transaction data, according to an exemplary embodiment. [Figure 6D] FIG. 2 illustrates an exemplary data block according to an exemplary embodiment. [Figure 7] FIG. 1 illustrates an exemplary system that supports one or more of the exemplary embodiments. DETAILED DESCRIPTION OF THE INVENTION

[0006] It will be readily understood that the components, as generally described herein and illustrated in the figures, could be arranged and designed in a wide variety of different configurations. Thus, the following detailed description of at least one embodiment of a method, apparatus, computer-readable storage medium, and system, as illustrated in the accompanying figures, is not intended to limit the scope of the claimed application but merely represents selected embodiments. The embodiments depicted herein are not intended to limit the scope of the solution. The computer-readable storage medium may be a non-transitory computer-readable medium or a non-transitory computer-readable storage medium.

[0007] Communications between a vehicle and particular entities, such as remote servers, other vehicles, and local computing devices (e.g., smartphones, personal computers, computers integrated into the vehicle, etc.), may be sent and / or received and processed by one or more “components,” which may be hardware, firmware, software, or a combination thereof. A component may be part of either the entity or computing device or some other computing device. In one example, consensus decisions related to blockchain transactions may be made by one or more computing devices or components associated with the vehicle (which may be any of the elements described and / or depicted herein) and by one or more components external to or remote from the vehicle.

[0008] The features, structures, or characteristics described herein may be combined in any suitable manner in one or more embodiments. For example, throughout this specification, the use of the phrase “exemplary embodiment,” “some embodiments,” or other similar terms indicates that a particular feature, structure, or feature described in connection with an embodiment may be included in at least one example. Thus, appearances of the phrase “exemplary embodiment,” “in some embodiments,” “in other embodiments,” or other similar terms throughout this specification do not necessarily refer to the same group of embodiments, and the described features, structures, or features may be combined in any suitable manner in one or more embodiments. In the figures, any connection between elements may enable one-way and / or two-way communication, even if the depicted connection is a one-way or two-way arrow. In this solution, the vehicle or transportation means may include one or more of a car, truck, pedestrian-area battery electric vehicle (BEV), e-Palette, fuel cell bus, motorcycle, scooter, bicycle, boat, recreational vehicle, airplane, and any object that can be used to transport people and / or goods from one place to another.

[0009] Additionally, although the term "message" may be used in describing the embodiments, other types of network data may be used, such as packets, frames, datagrams, etc. Furthermore, although particular types of messages and signaling may be depicted in preferred embodiments, they are not limited to particular types of messages and signaling.

[0010] Exemplary embodiments provide methods, systems, components, non-transitory computer-readable media, devices, and / or networks for providing at least one of a transportation means (also referred to herein as a vehicle or passenger vehicle), a data collection system, a data monitoring system, a verification system, an authorization system, and a vehicle data distribution system. Vehicle status status data received in the form of communication messages, such as wireless data network communications and / or wired communication messages, can be processed to identify vehicle / vehicle status conditions and provide feedback regarding the status and / or changes of the transportation means. In one example, a user profile can be applied to a particular transportation means / vehicle to authorize current vehicle events, service outages at service stations, authorize subsequent vehicle rental services, and enable vehicle-to-vehicle communications.

[0011] Within a communications infrastructure, a distributed database is a distributed storage system that includes multiple nodes communicating with each other. A blockchain is an example of a distributed database that includes an append-only, immutable data structure (i.e., a distributed ledger) that allows records to be maintained among untrusted parties. The untrusted parties are referred to herein as peers, nodes, or peer nodes. Each peer maintains a copy of the database record, and no peer can modify the database record without reaching consensus among the distributed peers. For example, peers may execute a consensus protocol to validate blockchain storage entries, organize the storage entries into blocks, and build a hash chain through the blocks. This process forms a ledger by ordering the storage entries as necessary for consistency. In a public or permissionless blockchain, anyone can participate without specific identity. Public blockchains are involved in cryptocurrencies and may use consensus based on various protocols, such as proof-of-work (PoW). Conversely, a permissioned blockchain database can ensure interactions between groups of entities that share a common goal but do not or cannot fully trust each other, such as entities exchanging funds, goods, information, and the like. The solution can function in permissioned and / or permissionless blockchain settings.

[0012] Smart contracts are trusted decentralized applications that leverage the tamper-resistant properties of a shared or distributed ledger (which may be in the form of a blockchain) and an underlying agreement between member nodes called an endorsement or endorsement policy. Generally, blockchain entries are "approved" before being committed to the blockchain, while entries that are not endorsed are ignored. A typical endorsement policy allows the smart contract executable code to specify an endorser for the entry in the form of a set of peer nodes required for endorsement. When a client sends an entry to a peer specified in the endorsement policy, the policy is executed to validate the entry. After validation, the entry enters an ordering phase, during which a consensus protocol generates an ordered sequence of endorsed entries organized into blocks.

[0013] A node is a communicating entity in a blockchain system. A "node" may perform a logical function, in the sense that multiple nodes of different types can run on the same physical server. Nodes are grouped together within a trust domain and associated with logical entities that control the node in various ways. Nodes may include different types, such as client or submitting client nodes, which submit entry calls to endorsers (e.g., peers) and broadcast entry proposals to an ordering service (e.g., ordering node). Another type of node is a peer node, which may receive client-submitted entries, commit the entries, and maintain a ledger state and copy of the blockchain entries. A peer may also have the role of an endorser. An ordering service node, or orderer, is a node that performs communication services for all nodes and implements delivery guarantees, such as broadcasting to each of the peer nodes in the system, when committing entries and modifying the blockchain's world state. The world state may constitute the initial blockchain entry, which typically includes control and configuration information.

[0014] A ledger is an ordered, tamper-resistant record of all state transitions of a blockchain. A state transition may result from an invocation (i.e., an entry) of smart contract executable code submitted by a participating party (e.g., client node, ordering node, endorser node, peer node, etc.). An entry may result in a set of key-value pairs of assets being committed to the ledger as one or more operands, such as creation, update, deletion, and the like. A ledger includes a blockchain (also called a chain) that stores immutably ordered records in blocks. A ledger also includes a state database that maintains the current state of the blockchain. There is typically one ledger per channel. Each peer node maintains a copy of the ledger for each channel in which it is a member.

[0015] A chain is an entry log structured as hash-linked blocks, where each block contains a sequence of N entries, where N is 1 or greater. The block header contains a hash of the block's entries and a hash of the previous block's header. In this way, all entries in the ledger are ordered and can be cryptographically bound together. Therefore, it is impossible to tamper with the ledger data without breaking the hash links. The hash of the most recently added blockchain block represents all entries on the chain that came before it, ensuring that all peer nodes are in a consistent and trusted state. The chain can be stored in the peer node file system (i.e., locally, on attached storage, in the cloud, etc.) to efficiently support the append-only nature of blockchain workloads.

[0016] The current state of the immutable ledger represents the most recent values ​​for all keys contained in the chain's entry log. Because the current state represents the most recent key values ​​known to the channel, it is sometimes referred to as the world state. Invocations of smart contract executable code execute entries against the ledger's current state data. To streamline interactions with the smart contract executable code, the most recent values ​​of keys may be stored in a state database. The state database may simply be an indexed view into the chain's entry log, and therefore may be regenerated from the chain at any time. The state database may be automatically restored (or generated if necessary) upon peer node startup and before entries are accepted.

[0017] Blockchains differ from traditional databases in that they are not centralized storage, but rather distributed, immutable, and secure storage, where nodes must share changes to records in storage. Some properties inherent in blockchains and that aid in their implementation include, but are not limited to, immutable ledgers, smart contracts, security, privacy, decentralization, consensus, endorsement, accessibility, and the like.

[0018] Exemplary embodiments provide service for a particular vehicle and / or a user profile applied to the vehicle. For example, a user may be the owner of the vehicle or an operator of a vehicle owned by another party. The vehicle may require service at specific intervals, and service requests may require approval before service is permitted. A service center may also provide service to vehicles in a nearby area based on the vehicle's current route plan and the relative level of service requirement (e.g., urgent, critical, moderate, minor, etc.). Vehicle requests may be monitored via one or more vehicle and / or roadway sensors or cameras that report sensed data to a central controller computing device within the vehicle and / or remote from the vehicle. This data is forwarded to a management server for review and action. Sensors may be located on one or more of the interior of the vehicle, the exterior of the vehicle, on fixed objects remote from the vehicle, and on another vehicle near the vehicle. Sensors may also be associated with vehicle speed, vehicle braking, vehicle acceleration, fuel level, requests for service, vehicle gear shifting, vehicle maneuvering, and the like. Sensors as described herein may also be devices, such as wireless devices, within and / or near the vehicle. Sensor information may also be used to identify whether the vehicle is operating safely and whether the occupant has engaged in any unexpected vehicle conditions, such as during vehicle access and / or usage. Vehicle information collected before, during, and / or after vehicle operation may be identified and stored in transactions on a shared / distributed ledger, which may be created and committed to an immutable ledger as determined in a "decentralized" manner by a permission-granting consortium, such as a blockchain membership group.

[0019] Each interested party (i.e., owner, user, company, agency, etc.) may want to limit the exposure of private information, and therefore, blockchain and its immutability can be used to manage permissions for each specific user-vehicle profile. Smart contracts can be used to provide compensation, quantify user profile scores / ratings / reviews, apply vehicle event permissions, determine when service is needed, identify collision events and / or degradation events, identify events that pose safety concerns, identify event participants, and distribute the vehicle event data to registered entities seeking access to the event data. Results can also be identified, and necessary information can be shared among registered companies and / or individuals based on a consensus method associated with the blockchain. This method could not be implemented with traditional centralized databases.

[0020] To create maps of terrain and roads that the vehicle can use for navigation and other purposes, the various driving systems of the present solution may utilize software, sensor arrays, and machine learning capabilities, light detection and ranging (LiDAR) projectors, radar, ultrasonic sensors, etc. In some embodiments, instead of LiDAR, GPS, maps, cameras, sensors, and the like may also be used in autonomous vehicles.

[0021] In certain embodiments, the solution includes authorizing a vehicle for service through an automated, rapid authentication scheme. For example, driving to a charging station or fuel pump can be performed by the vehicle operator or autonomous vehicle, and authorization to receive charge or fuel can occur without any delay once authorization is received by the service and / or charging station. The vehicle can provide a communication signal providing the vehicle's identity, which can later be modified by compensation, with a currently active profile linked to the account authorized to receive service. Additional measures can be used to provide further authentication, for example, another identifier can be wirelessly transmitted from the user's device to the service center to replace or supplement the first authorization between the vehicle and the service center with the additional authorization.

[0022] The shared and received data may be stored in a database, which generally maintains the data in a specific location within a single database (e.g., a database server). This location is often a central computer, such as a desktop central processing unit (CPU), a server CPU, or a mainframe computer. Information stored in a centralized database is typically accessible from multiple different points. Centralized databases are easy to manage, maintain, and control, and are particularly suitable for security purposes because the centralized database is in a single location. In a centralized database, having all data in a single storage location also means that a given data set has only one primary record, thereby minimizing data redundancy. Blockchains can be used to store data and transactions related to transportation means.

[0023] Any of the operations described herein may be performed by one or more processors (e.g., microprocessors, sensors, electronic control units (ECUs), head units, and the like) with or without memory that may be located onboard the vehicle and / or offboard the vehicle (e.g., servers, computers, mobile / wireless devices, etc.). The one or more processors may communicate with other memory and / or other processors onboard or offboard in other vehicles to utilize data being transmitted by and / or to the vehicle. The one or more processors and other processors may transmit data, receive data, and utilize this data to perform one or more of the operations described or depicted herein.

[0024] 1A shows a system diagram 100 in one set of embodiments. In some embodiments, the solution executes, completely or partially, in memory of a processor 108 associated with the vehicle 102, memory of the data authentication server 103, and / or memory of one or more other processors associated with the devices and / or entities mentioned herein. In some embodiments, the processor 108 may be or include a microcontroller including one or more central processing unit (CPU) cores along with program memory and programmable input / output peripherals. The program memory may be provided, for example, in the form of flash memory.

[0025] In some embodiments, the processor 108 starts the timer 105 when a pairing request is initiated by the vehicle transceiver 107. For example, the vehicle transceiver 107 may be a Bluetooth transceiver. Bluetooth pairing establishes a communication link between two Bluetooth-enabled devices through an exchange of registration information between the two devices. For example, the two devices may include the vehicle transceiver 107 and a first device 121, or the vehicle transceiver 107 and a second device 122. In some embodiments, the first device 121 and the second device 122 are both key fobs.

[0026] In some embodiments, the vehicle transceiver 107 receives a first response to the pairing request from the first transceiver 123 of the first device 121. The vehicle transceiver 107 also receives a second response to the pairing request from the second transceiver 125 of the second device 122. The processor 108 may record the timer 105 when each of the first and second responses is received. The processor 108 may determine a first connection time for the first device 121 from the recorded timer 105 and a second connection time for the second device 123 from the recorded timer 105. The processor 108 instructs the vehicle transceiver 107 to connect to the device having the fastest connection time among the first device 121 and the second device 123. For example, the vehicle transceiver 107 pairs with either the first device 121 or the second device 123, whichever has the fastest connection time.

[0027] In some embodiments, a first temperature is sensed by a first temperature sensor 124 at the first device 121. A second temperature is sensed by a sensor 111 within the vehicle 102. A difference between the first temperature and the second temperature may be determined. Connection of the vehicle transceiver 107 to the first transceiver 123 of the first device 121 occurs in response to the determined difference not exceeding a threshold. In some embodiments, the first temperature sensor 124 is configured to measure the ambient temperature at the first device 121. For example, a typical relay attack involves a first accomplice being located outside along an exterior wall of a residence where a key fob, such as the first device 121, resides. A second accomplice is also located outside in close proximity to the vehicle 102. Both accomplices are typically located in uncovered locations where the ambient temperature will be significantly different from that observed within the isolated interior of the vehicle 102 and / or within the residence containing the first device 121. In some embodiments, the second device 122 includes a second temperature sensor 126.

[0028] In some embodiments, a first plurality of movements of a first person associated with the first device 121 are detected by a camera 109 operatively connected to the processor 108. The first plurality of movements are analyzed by the processor 108 to identify at least one pattern within the first plurality of movements. The first plurality of movements may include detecting the first person's walking style and / or the first person's arm movements. A second plurality of movements of a subsequent person are detected by the camera 109. The second plurality of movements may include detecting the subsequent person's walking style and / or the subsequent person's arm movements. The subsequent person may be the first person with the first device 121 or a second person with the second device 123. The first person may be the authorized owner or lessee of the vehicle 102, while the second person may be a malicious individual attempting to steal the vehicle 102.

[0029] In some embodiments, when the second plurality of movements matches the identified at least one pattern, the processor 108 determines that the subsequent person is the first person and connects the vehicle transceiver 107 to the first device 121. When the second plurality of movements does not match the identified at least one pattern, the processor 108 determines that the subsequent person is not the first person and the processor 108 requires authentication before connecting.

[0030] Authentication is the process of determining whether someone or something is, in fact, who or what they say they are. Authentication may be used to provide access control to systems such as vehicle 102. For example, processor 108 may establish a communications link to data authentication server 103 over network 104. Data authentication server 103 may check authorized user database 113 to see if the prospective user's credentials match any of the authorized user's credentials in authorized user database 113. If data authentication server 103 locates the match, the prospective user is granted access to vehicle 102. If authentication server 103 does not locate the match, the prospective user is denied access to vehicle 102.

[0031] According to one example, if a first person walks with a shuffling gait while a second person walks without a shuffling gait, processor 108 may determine that the first person is not the second person. In contrast, if the first person walks with a shuffling gait while a second person also walks with a shuffling gait, processor 108 may determine that the first person is the second person. When the second person is not the first person, it is possible that the second person is a malicious individual attempting to steal vehicle 102. Processor 108 may require an authentication step to prevent malicious individuals from accessing vehicle transceiver 107 and potentially stealing vehicle 102.

[0032] In some embodiments, a first wireless signal, such as a Bluetooth® signal having a first radio frequency emission signature, is received at vehicle transceiver 107. A second wireless signal, such as a Bluetooth® signal having a second radio frequency emission signature, is also received at vehicle transceiver 107. The first radio frequency emission signature is based on a first carrier frequency offset and / or a first I / Q (in-phase / quadrature) offset from a reference Bluetooth® transmission. The second radio frequency emission signature is based on a second carrier frequency offset and / or a second I / Q offset from the reference Bluetooth® transmission. Different Bluetooth® devices may exhibit slightly different carrier frequency and / or I / Q component offsets. Using the offsets, it may be possible to identify a particular device, e.g., a Bluetooth® device, e.g., first device 121 and / or second device 122.

[0033] In some embodiments, the processor 108 compares a first radio frequency emission signature received by the vehicle transceiver 107 with a second radio frequency emission signature received by the vehicle transceiver 107. In response to the first radio frequency emission signature matching the second radio frequency emission signature, the processor 108 instructs the vehicle transceiver 107 to connect to the device from which the first radio frequency emission signature and the second radio frequency emission signature were received. For example, the first and second radio frequency emission signatures may both have been received by the vehicle transceiver 107 from the first device 121. Thus, the vehicle transceiver 107 may pair with the first device 121. In response to the first radio frequency emission signature not matching the second radio frequency emission signature, the processor 108 requires authentication before instructing the vehicle transceiver 107 to connect to the first device 121 or the second device 122. For example, a first radio frequency emission signature may have been received from a first device 121 operated by an authorized user, while a second radio frequency emission signature may have been received from a second device 122 operated by a malicious person. Thus, until either the first device 121 or the second device 122 is authenticated by the processor 108 and / or the data authentication server 103, the processor 108 will not implement a connection to the first device 121, and the processor 108 will not implement a connection to the second device 122.

[0034] 1B shows a diagram of system 150 in one set of embodiments. In some embodiments, the solution executes, completely or partially, in memory of processor 108 associated with vehicle 102, memory of data authentication server 103, and / or memory of one or more other processors associated with devices and / or entities mentioned herein. In some embodiments, processor 108 may be or include a microcontroller including one or more central processing unit (CPU) cores along with program memory and programmable input / output peripherals. The program memory may be provided, for example, in the form of flash memory.

[0035] In some embodiments, a first location is determined for the first device 121 using a first radio frequency signal received by the vehicle transceiver 107 from the first device 121. A second location is determined for the second device 122 using a second radio frequency signal received by the vehicle transceiver 107 from the second device 122. For example, the strength of the first radio frequency signal may be used to determine the first location of the first device 121, and the strength of the second radio frequency signal may be used to determine the second location of the second device 122. Alternatively, or in addition, the first device 121 may include a processor 131 that receives a location identification signal from a first global positioning system (GPS) receiver 127 and forwards the location identification signal to the vehicle transceiver 107 using the first transceiver 123. Similarly, the second device 122 may include a processor 135 that receives a location identification signal from the second GPS receiver 128 and forwards the location identification signal to the vehicle transceiver 107 using the second transceiver 125. In an embodiment, other methods are used to determine the first location and the second location without departing from the scope of the present solution.

[0036] In some embodiments, the processor 108 provides a prioritization scheme to identify a highest priority location among the first location of the first device 121 and the second location of the second device 122. The processor 108 instructs the vehicle transceiver 107 to connect to the device in the highest priority location among the first device 121 and the second device 122.

[0037] In some embodiments, a location is determined for vehicle 102 using vehicle GPS 129. Processor 108 and / or processor 131 may receive a location identification signal from vehicle GPS 129. In some embodiments, a required level of authentication for first device 121 and / or second device 122 is determined by processor 108 and / or processor 131 based on the determined location. For example, memory of processor 108 and / or memory of processor 131 may include a lookup table that associates each of a plurality of location identifiers with a corresponding authentication level of a plurality of authentication levels. Similarly, location identifiers associated with high-risk and / or high-crime locations may be associated with higher authentication levels, while location identifiers associated with low-risk and / or low-crime locations may be associated with lower authentication levels.

[0038] In some embodiments, processor 108 and / or processor 131 (via network 104) instructs vehicle transceiver 107 to make the connection in response to providing the required level of authentication. In some embodiments, the required level of authentication may be selected by processor 108 and / or processor 131 from multiple levels of authentication. A first level of authentication may include single-level authentication, for example, processor 131 receiving from the user a username and password entered at input device 133, such as a keypad, where the password matches the username. A second level of authentication may include two-factor authentication, for example, receiving from input device 133 a unique code provided to the user on a mobile device or numeric key fob, and / or receiving from input device 133 a biometric signature, such as a face scan, retina scan, thumbprint, or fingerprint. A third level of authentication may include receiving from the user three or more identity verification factors, for example, three or more of a username, password, biometric signature, and / or personal questions that the user must answer. In other embodiments, additional and / or different levels of authentication may be part of the solution.

[0039] In some embodiments, multiple locations for the first device 121 are determined in response to the vehicle transceiver 107 receiving multiple pairing requests from the first device 121. For example, the multiple locations may be determined for the vehicle 102 using the vehicle GPS 129. The processor 108 and / or processor 131 may receive a location identification signal from the vehicle GPS 129. The processor 108 and / or processor 131 may identify a location pattern from the multiple locations. A subsequent pairing request may be received by the vehicle transceiver 107. A location of occurrence is determined for the subsequent pairing request using, for example, location information collected by the first GPS receiver 127. The location information may be forwarded to the processor 108 by the processor 131 over the network 104. The processor 108 and / or processor 131 compares the location of occurrence with the location pattern. When the location of occurrence is within the location pattern, the processor 108 and / or processor 131 instructs the vehicle transceiver 107 to make a connection. When the location of origin is not within the location pattern, processor 108 and / or processor 131 require authentication by the user before making the connection.

[0040] The flow diagrams depicted herein, such as Figures 1A, 1B, 2C, 2D, 2E, 3A, 3B, and 3C, are separate examples that may be the same or different embodiments. Any of the operations in one flow diagram may be employed in and shared with another flow diagram. The example operations are not intended to limit the subject matter of any embodiment or corresponding claims.

[0041] It is important to note that all flow diagrams and corresponding processes derived from Figures 1A, 1B, 2C, 2D, 2E, 3A, 3B, and 3C may be part of the same process or may share sub-processes with each other, thus making the diagrams combinable into a single preferred embodiment that does not require any one specific operation, but performs specific operations from one exemplary process and one or more additional processes. All exemplary processes relate to the same physical system and may be used separately or interchangeably.

[0042] FIG. 2A illustrates a vehicle network diagram 200 according to an exemplary embodiment. The network includes elements including a vehicle 202 including a processor 204 and a vehicle 202' including a processor 204'. Vehicles 202, 202' communicate with each other via processors 204, 204' and other elements (not shown) including transceivers, transmitters, receivers, storage, sensors, and other elements capable of providing communication. Communication between vehicles 202, 202' may occur directly, via private and / or public networks (not shown), or via other vehicles and elements comprising one or more processors, memory, and software. While depicted as a single vehicle and processor, multiple vehicles and processors may be present. One or more of the applications, functions, steps, solutions, etc. described and / or depicted herein may be utilized and / or provided by the elements.

[0043] FIG. 2B shows another vehicle network diagram 210 according to an exemplary embodiment. The network comprises elements including a vehicle 202 including a processor 204 and a vehicle 202' including a processor 204'. Vehicles 202, 202' communicate with each other via processors 204, 204' and other elements (not shown) including transceivers, transmitters, receivers, storage, sensors, and other elements capable of providing communication. Communication between vehicles 202, 202' may occur directly, via private and / or public networks (not shown), or via other vehicles and elements comprising one or more of a processor, memory, and software. Processors 204, 204' may further communicate with one or more elements 230 including sensors 212, wired devices 214, wireless devices 216, databases 218, mobile phones 220, vehicle 222, computers 224, I / O devices 226, and voice applications 228. The processor 204, 204' may further communicate with elements comprising one or more of a processor, memory, and software.

[0044] Although depicted as a single vehicle, processor, and element, there may be multiple vehicles, processors, and elements. Information or communication may occur to and / or from any of processors 204, 204′ and element 230. For example, mobile phone 220 may provide information to processor 204, which may cause vehicle 202 to initiate an action, may further provide information or further information to processor 204′, which may cause vehicle 202′ to initiate an action, may further provide information or further information to mobile phone 220, vehicle 222, and / or computer 224. One or more of the applications, functions, steps, solutions, etc. described and / or depicted herein may be utilized and / or provided by the elements.

[0045] 2C illustrates yet another vehicle network diagram 240, according to an exemplary embodiment. The network comprises elements including a vehicle 202, a processor 204, and a non-transitory computer-readable medium 242C. The processor 204 is communicatively coupled to the computer-readable medium 242C and to element 230 (depicted in FIG. 2B). The vehicle 202 may be a vehicle, a server, or any device having a processor and memory. The processor 204 performs one or more of: starting a timer by the vehicle when the pairing request is initiated 244C; receiving by the vehicle a first response to the pairing request from the first device and a second response to the pairing request from the second device 246C; recording the timers when each of the first and second responses is received 248C; determining a first connection time for the first device from the recorded timers and determining a second connection time for the second device from the recorded timers 250C; and connecting by the vehicle to the device having the fastest connection time among the first and second devices 252C.

[0046] 2D shows a further vehicle network diagram 250 according to an exemplary embodiment. The network comprises elements including a vehicle 202, a processor 204, and a non-transitory computer-readable medium 242D. The processor 204 is communicatively coupled to the computer-readable medium 242D and to element 230 (depicted in FIG. 2B). The vehicle 202 may be a vehicle, a server, or any device having a processor and memory.

[0047] The processor 204 determines a first location for the first device using a first radio frequency signal received from the first device, determines a second location for the second device using a second radio frequency signal received from the second device, applies a prioritization scheme to identify a highest priority location among the first and second locations, and makes a connection using the highest priority location 244D; senses a first temperature at the first device, senses a second temperature within the vehicle, determines a difference between the first temperature and the second temperature, and determines if the determined difference does not exceed a threshold. and in response, making the connection 245D; determining a location relative to the vehicle, and determining a required level of authentication for the connection based on the determined location; and in response to the required level of authentication being provided, making the connection 246D; detecting a first plurality of movements of a first person associated with the first device, analyzing the first plurality of movements to identify at least one pattern among the first plurality of movements, detecting a second plurality of movements of a subsequent person, and determining that the subsequent person is the first person when the second plurality of movements matches the identified at least one pattern; and making the connection; receiving a first Bluetooth® signal having a first radio frequency emission signature from the first device; receiving a second Bluetooth® signal having a second radio frequency emission signature from the second device; comparing the first radio frequency emission signature with the second emission signature; and performing the connection in response to the first radio frequency emission signature matching the second radio frequency emission signature; and requiring authentication before making a connection in response to the line frequency emission signature not matching the second radio frequency emission signature; and determining, by the vehicle, in response to receiving a plurality of pairing requests from the first device, a plurality of locations for the first device, identifying a location pattern from the plurality of locations, receiving a subsequent pairing request by the vehicle, determining an originating location for the subsequent pairing request, comparing the originating location to the location pattern, and making the connection when the originating location is within the location pattern, and when the originating location is not within the location pattern.and requiring authentication before a connection can be made.

[0048] 2E illustrates yet another vehicle network diagram 260 according to an exemplary embodiment. Referring to FIG. 2E, network diagram 260 includes a vehicle 202 connected to other vehicles 202′ and an update server node 203 in a blockchain network 206. Vehicles 202 and 202′ may represent vehicles / vehicles. Blockchain network 206 may have a ledger 208 that stores software update verification data and sources of verification 207 for future use (e.g., in audits).

[0049] While this example details only one vehicle 202, multiple such nodes may be connected to the blockchain 206. It should be understood that vehicle 202 may include additional components, and that some of the components described herein may be removed and / or modified without departing from the scope of the present application. Vehicle 202 may comprise a computing device or server computer, or the like, and may include a processor 204, which may be a semiconductor-based microprocessor, a central processing unit (CPU), an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), and / or another hardware device. While a single processor 204 is depicted, it should be understood that vehicle 202 may include multiple processors, multiple cores, or the like without departing from the scope of the present application. Vehicle 202 may be a vehicle, a server, or any device having a processor and memory.

[0050] The processor 204 performs one or more of: receiving 244E a confirmation of an event from one or more elements described or depicted herein, the confirmation comprising a blockchain consensus between peers represented by any of the elements; and executing 246E a smart contract to record the confirmation in the blockchain based on the blockchain consensus. The consensus is formed among any of the elements 230 and / or one or more of the elements described or depicted herein, including a vehicle, a server, a wireless device, etc. In another example, the vehicle 202 can be any of the elements 230 and / or one or more of the elements described or depicted herein, including a server, a wireless device, etc.

[0051] The processor and / or computer-readable medium 242E may reside, completely or partially, inside or outside the vehicle. The steps or functions stored in the computer-readable medium 242E may be performed, completely or partially, in any order by any of the processors and / or elements. Furthermore, one or more steps or functions may be added, omitted, combined, performed later, etc.

[0052] 2F shows a diagram 265 depicting the powering of one or more elements. In one example, a vehicle 266 may provide power stored in its batteries to one or more elements, including other vehicles 268, charging stations 270, and an electrical grid 272. The electrical grid 272 may be connected to one or more of the charging stations 270, which may be connected to one or more of the vehicles 268. This configuration allows for the distribution of electricity / power received from the vehicle 266. The vehicle 266 may also communicate with the other vehicles 268 via vehicle-to-vehicle (V2V) technology, cellular communication, Wi-Fi, the like, etc. The vehicle 266 may also communicate with the other vehicles 268, charging stations 270, and / or electrical grid 272 wirelessly and / or via wired connections. In one example, vehicle 266 is routed (or routes itself) to electric grid 272, charging stations 270, or other vehicles 268 in a safe and efficient manner. Using one or more embodiments of the present solution, vehicle 266 may provide energy to one or more of the elements depicted herein in various advantageous ways as described and / or depicted herein. Additionally, vehicle safety and efficiency may be enhanced, and environmental impacts may be positively impacted as described and / or depicted herein.

[0053] The term "energy" may be used to refer to any form of energy received, stored, used, shared, and / or lost by a vehicle. Energy may refer to a voltage source of electrical charge and / or current supply provided from an entity to a vehicle during charging / use operations. Energy may also be in the form of fossil fuels (e.g., for use in hybrid vehicles) or from alternative power sources, including, but not limited to, lithium-based, nickel-based, hydrogen fuel cells, atomic / nuclear energy, fusion-based energy sources, and energy generated in situ during energy sharing and / or use operations that increase or decrease the energy level of one or more vehicles at a given time.

[0054] In one example, charging station 270 manages the amount of energy transferred from vehicle 266 so that vehicle 266 has enough charge remaining to reach its destination. In one example, a wireless connection is used to wirelessly direct the amount of energy transfer between vehicles 268, and both vehicles may be moving. In one embodiment, wireless charging may occur via a stationary charger (such as a charging mat in a garage or parking space) and the vehicle's battery aligned with each other. In one example, an idle vehicle, such as vehicle 266 (which may be autonomous), is instructed to provide an amount of energy to charging station 270 and return to its original location (e.g., its original location or a different destination). In one example, a mobile energy storage unit (not shown) is used to collect excess energy from at least one other vehicle 268 and transfer the stored excess energy at charging station 270. In one example, factors such as distance, time, and traffic conditions, road conditions, environmental / weather conditions, vehicle condition (e.g., weight), schedules of occupants using the vehicle, and anticipated schedules of occupants waiting for the vehicle determine the amount of energy transferred to charging station 270. In one example, vehicle 268, charging station 270, and / or electrical grid 272 may provide energy to vehicle 266.

[0055] In one embodiment, a location, such as a building, residence, or the like (not depicted), is communicatively connected to one or more of an electric grid 272, a vehicle 266, and / or a charging station 270. The rate at which electricity flows to the location, vehicle 266, and / or other vehicle 268 is modified in response to external conditions, such as weather. For example, if the external temperature is very hot or very cold, increasing the likelihood of a power outage, the flow of electricity to connected vehicles 266 / 268 is slowed to help minimize the likelihood of a power outage.

[0056] In one example, the solutions described and depicted herein may be used to determine load impacts on a vehicle and / or system, provide energy to a vehicle and / or system based on future demand and / or priority, provide information between a device including a module and a vehicle, and enable a processor of the device to wirelessly communicate with a vehicle regarding the amount of energy stored in the vehicle's battery. In one example, the solutions may also be used to provide charge from a vehicle to a location based on factors such as the temperature of the location, the cost of energy, and the power level of the location. In one example, the solutions may also be used to manage the amount of energy remaining in a vehicle after a portion of the charge has been transferred to a charging station. In one example, the solutions may also be used to notify a vehicle to provide an amount of energy in the vehicle's battery, the amount of energy to transfer being based on the vehicle's distance to the energy-receiving module.

[0057] In one example, the solution may also be utilized to use a mobile energy storage unit that travels to a vehicle with excess energy using a determined route and deposits the stored energy into the electric grid. In one example, the solution may also be utilized to determine the priority of a vehicle's decision regarding demand to provide energy to the grid and the priority of current demands on the vehicle, such as passengers or future passengers or current or future cargo. In one example, the solution may also be utilized to determine when a vehicle is not being used, to maneuver to a location to discharge excess energy into the energy grid, and then return to the previous location. In one example, the solution may also be utilized to determine the amount of energy a vehicle needs based on one or more conditions, such as weather, traffic, road conditions, vehicle status, and occupants and / or goods in the other vehicle, to provide needed energy to another vehicle via energy transfer between the vehicles, and to instruct the vehicle to route and provide energy to the other vehicle. In one example, the solution may also be utilized to transfer energy from one moving vehicle to another moving vehicle. In one example, the solution may also be used to extract energy by a vehicle based on the energy consumed by the vehicle to reach and provide service at a meeting point with another vehicle and the estimated energy consumed to return to the original location. In one example, the solution may also be used to provide a remaining distance required to a charging station, where the charging station determines the amount of energy to extract from the vehicle, and the amount of remaining charge is based on the remaining distance. In one example, the solution may also be used to manage a vehicle being charged at more than one point simultaneously, such as by both a charging station via a wired connection and another vehicle via a wireless connection.In one example, the solution may also be utilized to apply priorities to the distribution of energy to vehicles, with priority being given to vehicles that provide a portion of their stored charge to another entity, such as the electric grid, homes, and the like.

[0058] In one embodiment, vehicles 266 and 268 may be utilized as bidirectional vehicles. Bidirectional vehicles may function as mobile microgrids that can assist in providing power to grid 272 and / or reduce power consumption when the grid is stressed. In addition to receiving charge for the vehicle, bidirectional vehicles may incorporate bidirectional charging, where the vehicle takes energy from the vehicle and “push” the energy back to grid 272, otherwise referred to as “V2G.” In bidirectional charging, electricity flows both to and from the vehicle. When the vehicle is charging, alternating current (AC) electricity from grid 272 is converted to direct current (DC). This may be done by one or more converters on the vehicle itself or in charger 270. Energy stored in the vehicle's battery may be sent back to the grid in the opposite direction. Energy is converted from DC to AC through a converter, usually located in charger 270, otherwise referred to as a bidirectional charger. Moreover, the solution as described and depicted with respect to FIG. 2F may be utilized in this network and / or system, as well as other networks and / or systems.

[0059] FIG. 2G is a diagram 275 illustrating the interconnections between different elements. The solution may be stored and / or executed, in whole or in part, on and / or by one or more computing devices 278′, 279′, 281′, 282′, 283′, 284′, 276′, 285′, 287′, and 277′ associated with various entities, all communicatively coupled to communicate with a network 286. A database 287 is communicatively coupled to the network and enables data storage and retrieval. In one example, the database is an immutable ledger. One or more of the various entities may be a vehicle 276, one or more service providers 279, one or more public buildings 281, one or more transportation infrastructure 282, one or more residential buildings 283, an electric grid / charging station 284, a microphone 285, and / or another vehicle 277. Other entities and / or devices, such as one or more private users using a smartphone 278, a laptop 280, an augmented reality (AR) device, a virtual reality (VR) device, and / or any wearable device, may also interact with the solution. The smartphone 278, the laptop 280, the microphone 285, and other devices may be connected to one or more of the connected computing devices 278′, 279′, 281′, 282′, 283′, 284′, 276′, 285′, 287′, and 277′. The one or more public buildings 281 may include various institutions. The one or more public buildings 281 may utilize computing devices 281′. The one or more service providers 279 may include dealerships, tow truck services, collision centers, or other repair shops. The one or more service providers 279 may utilize computing devices 279′. These various computing devices may be directly and / or communicatively connected to one another via wired networks, wireless networks, blockchain networks, and the like. In one example, the microphone 285 may be utilized as a virtual assistant.In one example, the one or more traffic infrastructures 282 may include one or more traffic signals, one or more sensors including one or more cameras, vehicle speed sensors, or traffic sensors, and / or other traffic infrastructure. The one or more traffic infrastructures 282 may utilize a computing device 282'.

[0060] In one embodiment, whenever charge is provided to or received from a charging station and / or the electrical grid, the entities that enable this to occur are one or more of the vehicle, the charging station, a server, and a network communicatively connected to the vehicle, the charging station, and the electrical grid.

[0061] In one example, vehicles 277 / 276 may transport people, objects, permanently or temporarily attached equipment, and the like. In one example, vehicles 277 may communicate with vehicles 276 via V2V communications through computers 276′ and 277′ associated with each vehicle and may be referred to as vehicles, cars, vehicles, automobiles, and the like. Vehicles 276 / 277 may be self-propelled, wheeled vehicles such as cars, sport utility vehicles, trucks, buses, vans, or other motor- or battery-powered or fuel-cell-powered vehicles. For example, vehicles 276 / 277 may be electric vehicles, hybrid vehicles, hydrogen fuel cell vehicles, plug-in hybrid vehicles, or any other type of vehicle having a fuel cell stack, motor, and / or generator. Other examples of vehicles include bicycles, scooters, trains, airplanes, boats, and any other form of vehicle capable of transportation. Vehicles 276 / 277 may be semi-autonomous or autonomous. For example, the vehicle 276 / 277 may be self-piloted and operated without human input. An autonomous vehicle may have and use one or more sensors and / or navigation units to drive autonomously.

[0062] In one example, the solutions described and depicted herein may be utilized to determine access to a vehicle via blockchain consensus. In one example, the solutions may also be utilized to perform profile verification before allowing a vehicle occupant to use the vehicle. In one example, the solutions may also be utilized to have the vehicle indicate (visually, but in another example, verbally, etc.) on or from the vehicle an action (which may be pre-recorded) that the user needs to perform and confirm that the action is the correct action. In one example, the solutions may also be utilized to bifurcate data and provide the vehicle with the ability to decide, based on the risk level associated with the data and the driving environment, how to distribute a portion of the bifurcation data to the occupant with a lower risk level in a safe driving environment and later distribute the remaining portion of the bifurcation data with a higher risk level to the occupant after the occupant has left the vehicle. In one example, the solutions may also be utilized to address vehicle movement across (country / state / etc.) borders and apply new area rules to the vehicle using blockchain and / or smart contracts.

[0063] In one example, the solution may also be utilized to allow a vehicle to continue operating outside a boundary when a consensus is reached by the vehicle based on the vehicle's behavior and the vehicle's occupant characteristics. In one example, the solution may also be utilized to analyze the vehicle's available data upload / download rate, file size, and the speed / direction the vehicle is traveling to determine the distance required to complete the data upload / download and assign a secure area boundary for the data upload / download to be performed. In one example, the solution may also be utilized to instruct the subject vehicle and other nearby vehicles to safely perform a normally dangerous maneuver to allow the subject vehicle to exit in a safe manner, such as when the system determines that an exit is approaching or when the vehicle does not appear ready to exit (e.g., is in the wrong lane or traveling at a speed inappropriate for the upcoming exit). In one example, the solution may also be utilized to verify the diagnosis of another vehicle using one or more vehicles while both the one or more vehicles and the other vehicle are traveling.

[0064] In one example, the solution may also be used to detect lane usage at a certain location and time and notify or instruct a vehicle occupant to recommend or not recommend a lane change. In one example, the solution may also be used to eliminate the need to send information via email and the need for the driver / occupant to respond by making payments via email or in person. In one example, the solution may also be used to provide services to vehicle occupants, where the services provided are subscription-based and permissions are obtained from other vehicles connected to the occupant's profile. In one example, the solution may also be used to record changes in the state of rented objects. In one example, the solution may also be used to seek blockchain consensus from other vehicles near the damaged vehicle. In one example, the solution may also be used to receive media from a server, such as an insurance entity server, or from a vehicle computer that may be related to the accident. The server accesses one or more media files to access the damage to the vehicle and stores the damage assessment on the blockchain. In one example, the solution may also be utilized to obtain consensus to determine the severity of an event from several devices at various times prior to the vehicle-related event.

[0065] In one example, the solution may also be utilized to solve the problem of a lack of video evidence for vehicle-related accidents. The solution details inquiries by vehicles involved in the accident for media related to the accident from other vehicles that may have been near the accident. In one example, the solution may also be utilized to record specific portions of the damaged vehicle using vehicles and other devices (e.g., pedestrian cell phones, street light cameras, etc.).

[0066] In one example, the solution may also be utilized to alert occupants when a vehicle is maneuvering toward a dangerous area and / or event, and to enable the vehicle to notify occupants or a central controller of possible dangerous areas on or near the current vehicle path. In one example, the solution may also be utilized to detect when a vehicle is traveling at a high speed and to use at least one other vehicle to assist in slowing the vehicle so that impacts on traffic are minimized. In one example, the solution may also be utilized to identify a dangerous driving situation, where media is captured by a vehicle involved in the dangerous driving situation. A geofence is established based on the distance of the dangerous driving situation, and additional media is captured by at least one other vehicle within the established geofence. In one example, the solution may also be utilized to send a notification to one or more occupants of a vehicle that the vehicle is approaching a traffic control sign on a road, and then receive an indication of poor driving from other nearby vehicles if the vehicle passes the sign. In one example, the solution may also be utilized to partially disable a vehicle by (in certain embodiments) limiting speed, limiting the ability to approach another vehicle, limiting speed to a maximum, and only allowing a given number of miles (approximately 1.609 km) per time period.

[0067] In one example, the solution may also be utilized to correct issues with a vehicle when it is not operating correctly, overcoming the need to rely on software updates. Through observations of other vehicles along a route, a server receives data from multiple other vehicles that may be observing unsafe or erroneous operation of the vehicle. Through analysis, the observations may result in notification to the vehicle when the data suggests unsafe or erroneous operation. In one example, the solution may also be utilized to notify between the vehicle and a dangerous situation that may involve persons unrelated to the vehicle. In one example, the solution may also be utilized to transmit data to a server by either a device associated with a vehicle incident or a device near the incident. Based on the severity of the incident or near the incident, the server notifies the sender of the data. In one example, the solution may also be utilized to provide recommendations for vehicle operation to either the driver or passengers of the vehicle based on data analysis. In one example, the solution may also be utilized to establish geofences associated with physical structures to determine payment liability for the vehicle. In one example, the solution may also be utilized to coordinate the ability to drop off a vehicle at a location using both the current state and proposed future state of the location and the navigation destination of other vehicles. In one example, the solution may also be utilized to coordinate the ability to automatically arrange for a vehicle to be dropped off at a location, such as a transportation rental entity.

[0068] In one example, the solution may also be utilized to move a vehicle to a different location based on a user event. More specifically, the system tracks the user's device and modifies the vehicle to move closer to the user based on the results of the original event or a modified event. In one example, the solution may also be utilized to enable verification of available locations within an area through vehicles present in the area. An approximate time when a location may be available is also determined based on verification from the vehicles present. In one example, the solution may also be utilized to move a vehicle to a closer parking space if a parking space becomes available and the elapsed time since initial parking is less than the average event time. Furthermore, the vehicle is moved to a final parking space upon completion of the event or depending on the location of a device associated with at least one occupant of the vehicle. In one example, the solution may also be utilized to plan parking in advance of an upcoming congestion. The system may interact with vehicles to offer services below the regular rate and / or guide vehicles to alternative parking locations based on the vehicle's priority, thereby improving pre-arrival optimization of parking conditions.

[0069] In one example, the solution may also be used to sell fractional ownership of a vehicle or determine pricing and availability for ride-sharing applications. In one example, the solution may also be used to provide accurate and timely reporting of a dealer's sales activity, far superior to what is currently available. In one example, the solution may also be used to enable a dealer to request assets on the blockchain. By using the blockchain, consensus is obtained before any asset is transferred. Furthermore, the process may be automated and payments may be initiated on the blockchain. In one example, the solution may also be used to prepare agreements to be made with multiple entities (such as service centers), consensus is obtained, and actions (such as diagnostics) are performed. In one example, the solution may also be used to associate digital keys with multiple users. A first user may be the operator of the vehicle, and a second user is the party responsible for the vehicle. The key is authorized by a server, where the proximity of the key is verified against the location of the service provider. In one example, the solution may also be used to determine services needed at the destination of the vehicle. One or more service locations that can provide the required service are located within an area on the route to the destination and are available to perform the service. Navigation of the vehicle is updated with the determined service locations. A smart contract containing a compensation value for the service is identified, and a blockchain transaction is stored on the distributed ledger for the transaction.

[0070] In one example, the solution may also be used to link service provider vehicles with vehicle occupant profiles to determine services and goods that may be of interest to the occupants in the vehicle. The services and goods are determined by the occupants' backgrounds and / or preferences. The vehicle then receives offers from the service provider vehicles, or in another example, meets with the vehicle offering the service / goods. In one example, the solution may also be used to detect vehicles within a certain range and send service offers (such as maintenance offers, product offers, or the like) to the vehicle. An agreement is made between the system and the vehicle, and a service provider is selected by the system to provide the agreement. In one example, the solution may also be used to assign one or more vehicles as road managers, who assist in regulating traffic. Road managers may generate road indicators (such as signal lights, displays, and sounds) to assist traffic flow. In one example, the solution may also be used to alert the vehicle driver via a device, which may be a traffic light or near an intersection. An alert is sent upon an event such as when a traffic light turns green and the vehicle ahead in the list of vehicles does not move.

[0071] FIG. 2H is another block diagram 290 illustrating the interconnections between different elements in one example. A vehicle 276 is depicted, including ECUs 295, 296 and a head unit (otherwise known as an infotainment system) 297. An electronic control unit (ECU) is a system embedded within automotive electronics that controls one or more of the electrical systems or subsystems within the vehicle. ECUs may include, but are not limited to, managing the vehicle's engine, braking system, transmission system, door locks, dashboard, airbag system, infotainment system, electronic differential, and active suspension. The ECU is connected to the vehicle's controller area network (CAN) bus 294. The ECU may also communicate with a vehicle computer 298 via the CAN bus 294. The vehicle's processor / sensors 298 (e.g., vehicle computer) may communicate with external elements, such as a server 293, via a network 292 (e.g., the Internet). Each ECU 295, 296 and head unit 297 may contain its own security policy, which defines the allowable processes that may be executed in the appropriate context. In one example, the security policy may be provided partially or entirely in the vehicle computer 298.

[0072] ECUs 295, 296 and head unit 297 may each include custom security function elements 299 that define approved processes and the contexts in which they are allowed to operate. Context-based authorization, which determines whether a process can be executed, allows the ECU to maintain secure operation and prevent unauthorized access from elements such as the vehicle's controller area network (CAN bus). If the ECU encounters an unauthorized process, the ECU may prevent the process from operating. Automotive ECUs may use various contexts to determine whether a process is operating within its permitted boundaries, such as proximity contexts, such as nearby objects, distance to approaching objects, speed, and trajectory relative to other moving objects; operational contexts, such as an indication of whether the vehicle is moving or parked, the vehicle's current speed, transmission status, devices connected to the vehicle via wireless protocols, user-related contexts, such as infotainment usage, cruise control, parking assistance, driving assistance, location-based contexts, and / or other contexts.

[0073] In one example, the solution described and depicted herein may be utilized to partially disable a vehicle by (in certain embodiments) limiting its speed, limiting its ability to approach another vehicle, limiting its speed to a maximum, and only allowing a given number of miles per time period. In one example, the solution may also be utilized to facilitate vehicle ownership exchanges using blockchain, where data is transmitted to a server by either a device associated with an incident with the vehicle or a device near the incident. Based on the severity of the incident or near the incident, the server notifies the sender of the data. In one example, the solution may also be utilized to help a vehicle avoid an accident, such as when the vehicle is involved in an accident, by the server querying other vehicles near the incident. The server attempts to obtain data from other vehicles, allowing the server to understand the nature of the incident from multiple perspectives. In one example, the solution may also be utilized to determine that a sound from the vehicle is abnormal and transmit data related to the sound and possible source locations to a server, which may determine possible causes and avoid a potentially dangerous situation. In one example, the solution may also be utilized to establish a location boundary through the system when a vehicle is involved in an accident. This boundary is based on decibels associated with the accident. Multimedia content for devices within the boundary is captured to assist in further understanding the unfolding of the accident. In one example, the solution may also be utilized to associate a vehicle with the accident and then capture media captured by devices near the location of the accident. The captured media is saved as media segments. The media segments are transmitted to another computing device that builds a sound profile of the accident. This sound profile may assist in understanding further details surrounding the accident.

[0074] In one example, the solution may also be utilized to record areas where a potential event occurred, such as when a vehicle comes into or may come into contact with another vehicle (whether moving or parked), using sensors to record audio, video, motion, etc., and the system captures data from sensors that may be on one or more of the vehicles and / or fixed or movable objects. In one example, the solution may also be utilized to determine that a vehicle has been damaged by using sensor data to identify the new condition of the vehicle during a vehicle event and comparing that condition to a vehicle condition profile, thereby enabling the safe and secure capture of important data from a vehicle that is about to be involved in an adverse event.

[0075] In one example, the solution may also be utilized to alert a vehicle occupant when the vehicle determines via one or more sensors that the vehicle is approaching or traveling in the wrong direction on a one-way road. The vehicle has sensors / cameras / maps that interact with the solution's system. The system recognizes the geographic location of the one-way road. The system may audibly notify the occupant, for example, "approaching a one-way road." In one example, the solution may also be utilized to enable vehicles to earn rewards, allowing autonomous vehicle owners to monetize the data collected and stored by their vehicle sensors, creating incentives for vehicle owners to share their data and provide further data to entities that will improve future vehicle performance, provide services to vehicle owners, etc.

[0076] In one example, the solution may also be utilized to increase or decrease vehicle functionality depending on the vehicle's operation over a period of time. In one example, the solution may also be utilized to assign fractional ownership to a vehicle. Sensor data associated with one or more vehicles and devices proximate to the vehicle is used to determine the vehicle's status. Fractional ownership of the vehicle is determined based on the status, and new vehicle responsibility is established. In one example, the solution may also be utilized to provide data to a replacement / upfitting part, where the data attempts to destroy the replacement / upfitting part's authorized functionality and, in response to the unauthorized destruction of the authorized functionality, allows the part to use the replacement / upfitting part's authorized functionality.

[0077] In one example, the solution may also be used to allow an individual to assure themselves that they are in the vehicle and should reach a specific destination. Furthermore, the system ensures that the driver (in the case of a non-autonomous vehicle) and / or other vehicle occupants are authorized to interact with the vehicle. Pickup, drop-off, and location are also mentioned. All of the above are immutably stored on the blockchain. In one example, the solution may also be used to determine driver characteristics through analysis of driving style and other factors to take action if the driver is not driving as they normally would, such as if the driver has previously driven in certain conditions, such as during the day, at night, in rain, or in snow. Furthermore, vehicle attributes may also be taken into account. Attributes include weather, whether headlights are on, whether navigation is in use, whether a HUD is in use, whether media is playing at a certain volume, etc. In one example, the solution may also be used to notify vehicle occupants of dangerous situations when items in the vehicle indicate that the occupants may not be aware of the dangerous situation.

[0078] In one example, the solution may also be utilized to attach a calibration device to equipment fixed to the vehicle, and various sensors on the vehicle may automatically self-calibrate based on what should be detected by the calibration device compared to what is actually detected. In one example, the solution may also be utilized to enable remote diagnostic capabilities, using blockchain to require consensus from multiple service centers when a vehicle requiring service transmits malfunction information, and consensus is required from other service centers regarding what the severity threshold is for the data. Once consensus is received, the service center may transmit the malfunction security level to the blockchain to be stored. In one example, the solution may also be utilized to determine the difference between sensor data external to the vehicle and sensor data on the vehicle itself. The vehicle then requests software from a server to correct the problem. In one example, the solution may also be utilized to enable messaging for vehicles that are near or within an area when an event (e.g., a collision) occurs.

[0079] Referring to FIG. 21, a connected vehicle operating environment 290A is shown, according to some embodiments. As depicted, vehicle 276 includes a controller area network (CAN) bus 291A connecting vehicle elements 292A-299A. Other elements may be connected to the CAN bus but are not depicted herein. Depicted elements connected to the CAN bus include a sensor set 292A, an electronic control unit 293A, an autonomous function or advanced driver assistance system (ADAS) 294A, and a navigation system 295A. In some embodiments, vehicle 276 includes a processor 296A, memory 297A, a communication unit 298A, and an electronic display 299A.

[0080] Processor 296A may include an arithmetic logic unit, microprocessor, general purpose controller, and / or similar processor array to perform calculations and provide electronic display signals to display unit 299A. Processor 296A processes data signals and may include a variety of computing architectures, including complex instruction set computer (CISC) architecture, reduced instruction set computer (RISC) architecture, or architectures implementing a combination of instruction sets. Vehicle 276 may include one or more processors 296A. Other processors, operating systems, sensors, displays, and physical configurations (not depicted) communicatively coupled to each other may be used in the present solution.

[0081] Memory 297A is non-transitory memory that stores instructions or data that can be accessed and executed by processor 296A. The instructions and / or data may include code for performing the techniques described herein. Memory 297A may be a dynamic random access memory (DRAM) device, a static random access memory (SRAM) device, flash memory, or another memory device. In some embodiments, memory 297A may also include non-volatile memory or similar permanent storage devices and media, which may include a hard disk drive, a floppy disk drive, a CD-ROM device, a DVD-ROM device, a DVD-RAM device, a DVD-RW device, a flash memory device, or any other mass storage device that permanently stores information. A portion of memory 297A may be reserved for use as a buffer or virtual random access memory (virtual RAM). Vehicle 276 may include one or more memories 297A without departing from the present solution.

[0082] The memory 297A of the vehicle 276 may store one or more of the following types of data: navigation route data 295A and autonomous function data 294A. In some embodiments, the memory 297A stores data that may be necessary for the navigation application 295A to provide functionality.

[0083] Navigation system 295A may represent at least one navigation route including a start point and an end point. In some embodiments, navigation system 295A of vehicle 276 receives a request from a user for a navigation route, the request including a start point and an end point. Navigation system 295A may query a real-time data server 293 (via network 292), such as a server providing driving directions, for navigation route data corresponding to the navigation route including the start point and the end point. Real-time data server 293 transmits the navigation route data to vehicle 276 via wireless network 292, and communication system 298A stores navigation data 295A in memory 297A of vehicle 276.

[0084] ECU 293A controls the operation of multiple systems of vehicle 276, including ADAS system 294A. ECU 293A may disable any unsafe and / or unselected autonomous functions during a journey controlled by ADAS system 294A in response to instructions received from navigation system 295A. In this manner, navigation system 295A may control whether ADAS system 294A is activated or enabled so that ADAS system 294A can operate on a given navigation route.

[0085] Sensor set 292A may include any sensor in vehicle 276 that generates sensor data. For example, sensor set 292A may include short-range sensors and long-range sensors. In some embodiments, sensor set 292A of vehicle 276 may include one or more of the following vehicle sensors: a camera, a LiDAR sensor, an ultrasonic sensor, an automobile engine sensor, a radar sensor, a laser altimeter, a manifold absolute pressure sensor, an infrared detector, a motion detector, a thermostat, a sound detector, a carbon monoxide sensor, a carbon dioxide sensor, an oxygen sensor, a mass airflow sensor, an engine coolant temperature sensor, a throttle position sensor, a crankshaft position sensor, a valve timer, an air-fuel ratio meter, a blind spot meter, a curb feeler, a fault detector, a Hall effect sensor, a parking sensor, a speed gun, a speedometer, a speed sensor, a tire pressure monitoring sensor, a torque sensor, a transmission fluid temperature sensor, a turbine speed sensor (TSS), a variable reluctance sensor, a vehicle speed sensor (VSS), a moisture sensor, a wheel speed sensor, a GPS sensor, a mapping function, and any other type of automotive sensor. The navigation system 295A may store the sensor data in memory 297A.

[0086] Communications unit 298A transmits and receives data to and from network 292 or to another communications channel. In some embodiments, communications unit 298A may include a DSRC transceiver, a DSRC receiver, and other hardware or software necessary to make vehicle 276 a DSRC-equipped device.

[0087] Vehicle 276 may communicate with other vehicles 277 via V2V technology. In one example, V2V communication includes detecting radar information corresponding to a relative distance to an external object, receiving GPS information of the vehicle, setting an area as an area where other vehicle 277 is located based on the detected radar information, calculating a probability that the GPS information of a target vehicle is located in the set area, and identifying the vehicle and / or object corresponding to the radar information and GPS information of the target vehicle based on the calculated probability.

[0088] In one example, the solutions described and depicted herein may be utilized to manage emergency deployment and vehicle functionality when a vehicle is determined to be entering an area without network access. In one example, the solutions may also be utilized to manage and provide functionality (such as audio, video, and navigation) in a vehicle without network connectivity. In one example, the solutions may also be utilized to determine when a profile of a person near the vehicle matches profile attributes of a profile of at least one occupant within the vehicle. A notification is sent from the vehicle to establish communication.

[0089] In one example, the solution may also be utilized to analyze the availability of occupants in each vehicle where voice communication is available based on the amount of time remaining in the vehicle and the context of the communication. In one example, the solution may also be utilized to determine two threat levels for obstacles in a roadway and receive gestures that may indicate that the obstacle does not reach a threshold warning and proceed along the roadway by the vehicle. In one example, the solution may also be utilized to delete sensitive data from a vehicle when the vehicle suffers damage that renders the vehicle unusable.

[0090] In one example, the solution may also be utilized to verify that customer data to be removed is truly removed from all necessary locations within a company demonstrating GDPR compliance. In one example, the solution may also be utilized to offer compensation from one vehicle to another vehicle in exchange for safety-related data, important notifications, etc., to enhance the autonomy capabilities of lower-level autonomous vehicles. In one example, the solution may also be utilized to provide the vehicle with the ability to receive data based on a first biometric associated with the occupant. The vehicle then decrypts the encrypted data based on verification of a second biometric, the second biometric being continuum with the first biometric. The vehicle provides the decrypted data to the occupant only when the occupant is able to receive the decrypted data, deletes the sensitive portion of the decrypted data when the sensitive portion is provided, and deletes the non-sensitive portion after a period associated with the biometric has elapsed. In one example, the solution may also be utilized to provide the vehicle with the ability to verify an individual based on weight and grip pressure applied to the steering wheel of the vehicle. In one example, the solution may also be utilized to provide existing but not currently enabled features to a passenger vehicle, presenting features to vehicle occupants that reflect their characteristics.

[0091] In one example, the solution may also be utilized to enable the reflection of modifications regarding the vehicle, particularly the interior of the vehicle and the exterior of the vehicle, to assist at least one occupant in one example. In another example, the recreation of a occupant's work environment and / or home environment is disclosed. If the vehicle determines that the user is in "work mode" or "home mode," the system may attempt to "recreate" the user's work / home environment while the user is within the vehicle. All data regarding the interior and exterior of the vehicle and the various occupants using the vehicle is stored on a blockchain and executed via smart contracts. In one example, the solution may also be utilized to detect occupant gestures and assist in communication with nearby vehicles, so that the vehicle can be steered accordingly. In one example, the solution may also be utilized to provide the vehicle with the ability to detect intended gestures using a gesture definition data store. In one example, the solution may also be utilized to provide the vehicle with the ability to take various actions based on gait and user gestures. In one example, the solution may also be utilized to ensure that a vehicle driver currently engaged in various activities (e.g., driving while navigating and talking) does not exceed a number of risky activities before allowing a gesture.

[0092] In one example, the solution may also be utilized to assign a status to each occupant in a vehicle and validate gestures from the occupants based on the occupant's status. In one example, the solution may also be utilized to collect and provide to a system details of sounds associated with a collision (where, what direction, whether it's getting louder or quieter, from which device, data associated with the device, such as type, manufacturer, owner, and the number of sounds occurring simultaneously and the time the sounds were emitted) if analysis of the data assists in determining details about the collision. In one example, the solution may also be utilized to determine whether operation of the vehicle is unsafe. A vehicle includes multiple components that interact to control the vehicle, each associated with a separate component key. An encryption key is transmitted to the vehicle to reduce the functionality of the vehicle. In response to receiving the encryption key, the vehicle disables one or more of the component keys. Disabling one or more component keys results in one or more of restricting the vehicle from moving faster than a given speed, restricting the vehicle from moving closer than a certain distance to another vehicle, and restricting the vehicle from moving farther than a threshold distance.

[0093] In one example, the solution may also be utilized to provide an indication from one particular vehicle (trying to vacate) to another particular vehicle (trying to occupy), with blockchain being used to authenticate and reconcile. In one example, the solution may also be utilized to determine partial responsibility for a vehicle, such as when multiple people own a single vehicle and vehicle use may change over time, with the system being used to update fractional ownership. Other embodiments are included in applications including minimum vehicle ownership based on vehicle availability and vehicle driver determination, as well as other factors, rather than vehicle use.

[0094] In one example, the solution may also be utilized in transportation to allow users to authorize their subscriptions with a closed group of people, such as family or friends. For example, a user may want to share a membership, in which case the associated transaction is stored in a blockchain or traditional database. When subscription materials are requested by a user who is not the primary subscriber, the blockchain node (i.e., the transportation) may verify that the person requesting the service is an authorized person with whom the subscriber shared their profile. In one example, the solution may also be utilized to allow a person to reach an intended destination using paratransit. Functional relationship values ​​(e.g., values ​​indicating various parameters and their importance in determining what type of alternative transportation to use) are used in determining the paratransit. In one example, the solution may also be utilized to allow occupants in an accident to access other transportation to continue to their original destination.

[0095] In one example, the solution may also be utilized to communicate software / firmware uploads to a first subset of vehicles. This first set of vehicles tests the update, and if the test is successful, the update is communicated to additional sets of vehicles. In one example, the solution may also be utilized to communicate software / firmware updates from a master vehicle to vehicles, where the update is communicated through a network of vehicles from the first subset, then a larger subset, and so on. A portion of the update may be sent first, and then the remaining portion may be sent from the same vehicle or another vehicle. In one example, the solution may also be utilized to provide updates for the vehicle's computer to the vehicle and the vehicle operator's / occupant's devices. The update may be approved by all drivers and / or all occupants. The software update is provided to the vehicle and device. The user does not need to do anything other than go near the vehicle; the functionality occurs automatically. A notification is sent to the device indicating the software update is complete. In one example, the solution may also be utilized to verify that an OTA software update is performed by an authorized technician, and that circumstances related to the origin of the verification code, the procedure for receiving the software update over the air, the information contained in the software update, and the results of the verification are generated by one or more vehicle components.

[0096] In one example, the solution may also be utilized to provide the ability for a second component to parse software updates located in a first component, then identify a first portion of critical updates and a second portion of non-critical updates, assign the identified first portion to a process in the vehicle, operate the identified first portion in the process for a certain period of time, and, depending on a positive outcome based on the period of time, operate the identified first portion in another process after the period of time. In one example, the solution may also be utilized to provide a selection of services to a vehicle occupant, where the services are based on a profile of the vehicle occupant and a shared profile shared with the occupant's profile. In one example, the solution may also be utilized to store user profile data on a blockchain and intelligently present offers and recommendations to a user based on the user's automatically collected purchase history and preferences obtained from the user profile on the blockchain.

[0097] To be sufficiently secure, a vehicle must be protected from unauthorized physical access and unauthorized remote access (e.g., cyber threats). In one example, to prevent unauthorized physical access, the vehicle is equipped with a secure access system, such as keyless entry, while in one example, security protocols are added to the vehicle's computers and computer networks to facilitate secure remote communications to and from the vehicle.

[0098] Electronic control units (ECUs) are nodes within a vehicle that control tasks ranging from windshield wiper operation to anti-lock braking systems. ECUs are often connected to one another through a central vehicle network, which may be referred to as a Controller Area Network (CAN). Cutting-edge features such as autonomous driving heavily rely on the implementation of new and complex ECUs, such as advanced driver assistance systems (ADAS), sensors, and the like. While these new technologies are helping to improve vehicle safety and the driving experience, they also increase the number of external communication units within the vehicle, making them more vulnerable to attack. Below are some examples of securing vehicles from physical and remote intrusions:

[0099] FIG. 2J illustrates a keyless entry system 290B for preventing unauthorized physical access to a vehicle 291B, according to an exemplary embodiment. Referring to FIG. 2J, in one example, a key fob 292B transmits commands to the vehicle 291B using radio frequency signals. In this example, the key fob 292B includes a transmitter 2921B having an antenna capable of transmitting short-range radio wave signals. The vehicle 291B includes a receiver 2911B having an antenna capable of receiving the short-range radio signals transmitted from the transmitter 2921B. The key fob 292B and the vehicle 291B also include CPUs 2922B and 2913B, respectively, that control the respective devices, where there is memory in (or accessible to) the CPUs 2922B and 2913B. In one example, the key fob 292B and the vehicle 291B each include a power supply 2924B and 2915B that powers the respective devices.

[0100] When a user presses button 293B on key fob 292B (or otherwise activates the fob, etc.), CPU 2922B activates within key fob 292B and transmits a data stream to transmitter 2921B, which outputs the data stream via the antenna. In other embodiments, the user's intent is recognized in key fob 292B through other means, such as a microphone for accepting audio, a camera for capturing images and / or video, or other sensors commonly employed in the art for detecting intent from a user, including receiving gestures, movements, eye movements, and the like. The data stream can be a signal between 64 and 128 bits in length, including one or more of a preamble, a command code, and a rolling code. The signal can be transmitted at a rate between 2 KHz and 20 KHz, although embodiments are not limited thereto. In response, receiver 2911B of vehicle 291B captures the signal from transmitter 2921B, demodulates the signal, and sends the data stream to CPU 2913B, which decodes the signal and sends a command (e.g., lock door, unlock door, etc.) to command module 2912B.

[0101] If the key fob 292B and the vehicle 291B use a fixed code between them, a replay attack may be possible. In this case, if an attacker can capture / discover the fixed code during short-range communication, the attacker can replay this code to gain access to the vehicle 291B. To improve security, the key fob and the vehicle 291B may use a rolling code that changes after each use. Here, the key fob 292B and the vehicle 291B are synchronized with an initial seed 2923B (e.g., a random or pseudo-random number). This is called pairing. The key fob 292B and the vehicle 291B also contain a shared algorithm that modifies the initial seed 2914B each time the button 293B is pressed. The next key press takes the result of the previous key press as input and converts it into the next number in the sequence. In some cases, vehicle 291B may store multiple next codes (e.g., 255 next codes) in the event that a key press on key fob 292B is not detected by vehicle 291B. Thus, multiple key presses on key fob 292B that are not recognized by vehicle 291B do not prevent the vehicle from becoming unsynchronized.

[0102] In addition to rolling codes, key fob 292B and vehicle 291B may employ other methods to make attacks even more difficult. For example, various frequencies may be used to transmit the rolling codes. As another example, two-way communication between transmitter 2921B and receiver 2911B may be used to establish a secure session. As another example, the code may have a limited expiration or timeout. Furthermore, the solution as described and depicted with respect to FIG. 2J may be utilized in this and other networks and / or systems, including those described and depicted herein.

[0103] FIG. 2K illustrates a controller area network (CAN) 290C within a vehicle, according to an exemplary embodiment. Referring to FIG. 2K, CAN 290C includes a CAN bus 297C having high and low terminals and multiple electronic control units (ECUs) 291C, 292C, 293C, etc., connected to CAN bus 297C via wired connections. CAN bus 297C is designed to allow microcontrollers and devices in applications to communicate with each other without the use of a host computer. CAN bus 297C implements a message-based protocol (i.e., the ISO 11898 standard) that allows ECUs 291C-293C to send commands to each other at the root level. Meanwhile, ECUs 291C-293C represent controllers that control electrical systems or subsystems within the vehicle. Examples of electrical systems include power steering, anti-lock braking, air conditioning, tire pressure monitoring, cruise control, and numerous other functions.

[0104] In this example, ECU 291C includes a transceiver 2911C and a microcontroller 2912C. The transceiver may be used to send and receive messages to and from CAN bus 297C. For example, transceiver 2911C may convert data from microcontroller 2912C into a format for CAN bus 297C and convert data from CAN bus 297C into a format for microcontroller 2912C. Meanwhile, in one example, microcontroller 2912C interprets messages and determines which messages to send using ECU software installed on microcontroller 2912C.

[0105] Various security protocols can be implemented to protect CAN 290C from cyber threats. For example, subnetworks (e.g., subnetworks A and B) can be used to divide CAN 290C into smaller sub-CANs to limit an attacker's ability to remotely access the vehicle. In the example of FIG. 2K, ECUs 291C and 292C can be part of the same subnetwork, while ECU 293C is part of a separate subnetwork. Additionally, a firewall 294C (or gateway, etc.) can be added to prevent messages from crossing subnetworks and traversing CAN bus 297C. If an attacker gains access to one subnetwork, the attacker does not have access to the entire network. In one example, to further secure the subnetworks, the most critical ECUs are not placed in the same subnetwork.

[0106] Although not shown in FIG. 2K, other examples of security controls within the CAN include an intrusion detection system (IDS), which may be added to each subnetwork to read all passing data and detect malicious messages. If a malicious message is detected, the IDS may notify the vehicle user. Other possible security protocols include encryption / security keys that may be used to obfuscate messages. As another example, an authentication protocol may be implemented that allows messages to authenticate themselves.

[0107] In addition to protecting a vehicle's internal network, the vehicle may also be protected when communicating with external networks, such as the Internet. One advantage of having a vehicle's connection to a data source, such as the Internet, is that information from the vehicle can be transmitted over the network to a remote location for analysis. Examples of vehicle information include GPS, on-board diagnostics, tire pressure, and the like. Because these communication systems involve a combination of telecommunications and informatics, the communication systems are often referred to as telematics. Furthermore, the present solution, such as that described and depicted with respect to FIG. 2K, may be utilized with this and other networks and / or systems, including those described and depicted herein.

[0108] FIG. 2L illustrates a secure end-to-end vehicle communication channel according to an exemplary embodiment. Referring to FIG. 2L, telematics network 290D includes vehicle 291D and host server 295D located at a remote location (e.g., a web server, cloud platform, database, etc.) and connected to vehicle 291D via a network such as the Internet. In this example, device 296D associated with host server 295D may be located within vehicle 291D within the network. Additionally, although not shown, device 296D may be connected to other elements of vehicle 291D, such as a CAN bus, an on-board diagnostics (ODBII) port, a GPS system, a SIM card, a modem, and the like. Device 296D may collect data from any of these systems and transmit the data to server 295D over the network.

[0109] The secure management of data begins with the vehicle 291D. In some embodiments, the device 296D may collect information before, during, and after a trip. The data may include GPS data, movement data, passenger information, diagnostic data, fuel data, speed data, and the like. However, the device 296D may simply communicate collected information back to the host server 295D upon the vehicle ignition and completion of a trip. Furthermore, communications may only be initiated by the device 296D, not by the host server 295D. Thus, in one example, the device 296D does not accept communications initiated by external sources.

[0110] To communicate, the device 296D may establish a secure private network between the device 296D and the host server 295D. Here, the device 296D may include a tamper-resistant SIM card that provides secure access to the carrier network 294D via radio tower 292D. When preparing to send data to the host server 295D, the device 296D may establish a one-way secure connection with the host server 295D. The carrier network 294D may communicate with the host server 295D using one or more security protocols. As a non-limiting example, the carrier network 294D may communicate with the host server 295D through a VPN tunnel that allows access through the host server's 295D firewall 293D. As another example, the carrier network 294D may use data encryption (e.g., AES encryption) when sending data to the host server 295D. In some cases, the system may use multiple security measures, such as both VPN and encryption, to further secure the data.

[0111] In addition to communicating with external servers, vehicles may also communicate with each other. In particular, vehicle-to-vehicle (V2V) communication systems enable vehicles to communicate with each other, roadside infrastructure (e.g., traffic lights, signs, cameras, parking meters, etc.), and the like through wireless networks. The wireless networks may include one or more of a Wi-Fi network, a cellular network, a dedicated short-range communications (DSRC) network, and the like. Vehicles may use V2V communications to provide other vehicles with information regarding the vehicle's speed, acceleration, braking, and direction, to name a few. Thus, vehicles may receive insight into conditions ahead before those conditions become visible, thus significantly reducing collisions. Furthermore, the present solution, as described and depicted with respect to FIG. 2L, may be utilized in this and other networks and / or systems, including those described and depicted herein.

[0112] FIG. 2M illustrates example 290E of vehicles 293E and 292E using security certificates to secure V2V communication, according to an exemplary embodiment. Referring to FIG. 2M, vehicles 293E and 292E may communicate via V2V communication over a short-range network, a cellular network, or the like. Prior to sending a message, vehicles 293E and 292E may sign the message using their respective public key certificates. For example, vehicle 293E may sign a V2V message using public key certificate 294E. Similarly, vehicle 292E may sign a V2V message using public key certificate 295E. In one example, public key certificates 294E and 295E are associated with vehicles 293E and 292E, respectively.

[0113] Upon receiving communications from each other, the transport means may verify the signature with a certificate authority 291E or the like. For example, the transport means 292E may verify with the certificate authority 291E that the public key certificate 294E used by the transport means 293E to sign the V2V communication is authenticated. If the transport means 292E successfully verifies the public key certificate 294E, the transport means knows that the data is from a legitimate source. Similarly, the transport means 293E may verify with the certificate authority 291E that the public key certificate 295E used by the transport means 292E to sign the V2V communication is authenticated. Furthermore, the solution as described and depicted with respect to FIG. 2M may be utilized in this and other networks and / or systems, including those described and depicted herein.

[0114] 2N shows yet another diagram 290F depicting an example vehicle interacting with a security processor and a wireless device, according to an exemplary embodiment. In some embodiments, the computer 224 shown in FIG. 2B may include a security processor 292F as shown in example process 290F of FIG. 2N. In particular, the security processor 292F may perform authorization, authentication, cryptography (e.g., encryption), and the like, for data transmissions sent between the ECU and other devices on the vehicle's CAN bus, and for data messages sent between different vehicles.

[0115] In the example of FIG. 2N , security processor 292F may include authorization module 293F, authentication module 294F, and cryptography module 295F. Security processor 292F may be implemented within a vehicle computer and may communicate with other vehicle elements, such as ECU / CAN network 296F, wired and wireless devices 298F, such as wireless network interfaces, input ports, and the like. Security processor 292F may ensure that data frames (e.g., CAN frames, etc.) transmitted internally within the vehicle (e.g., via ECU / CAN network 296F) are secure. Similarly, security processor 292F may ensure that messages transmitted between different vehicles and devices attached or connected via wires to the vehicle computer are also secure.

[0116] For example, the authorization module 293F may store passwords, usernames, PIN codes, biometric scans, and the like for various vehicle users. The authorization module 293F may determine whether a user (or technician) has permission to access certain settings, such as the vehicle's computer. In some embodiments, the authorization module may communicate with a network interface to download any necessary authorization information from an external server. When a user requests to make a change to the vehicle's settings or modify the vehicle's technical details through a console or GUI within the vehicle or through an attached / connected device, the authorization module 293F may require the user to identify themselves in some way before the settings are changed. For example, the authorization module 293F may require a username, password, PIN code, biometric scan, a predefined line drawing or gesture, and the like. In response, the authorization module 293F may determine whether the user has the necessary permission (e.g., access) being requested.

[0117] The authentication module 294F may be used to authenticate internal communications between ECUs in a vehicle's CAN network. As an example, the authentication module 294F may provide information for authenticating communications between ECUs. As an example, the authentication module 294F may send a bit signature algorithm to the ECUs in the CAN network. The ECUs may use the bit signature algorithm to insert authentication bits into the CAN field of a CAN frame. All ECUs on the CAN network typically receive each CAN frame. Each time a new CAN frame is generated by one of the ECUs, the bit signature algorithm may dynamically change the position, amount, etc. of the authentication bits. The authentication module 294F may also provide a list of ECUs that are exempt (safe list) and do not need to use authentication bits. The authentication module 294F may communicate with a remote server to retrieve updates to the bit signature algorithm and the like.

[0118] The encryption module 295F may store asymmetric key pairs used by the vehicle to communicate with other external user devices and vehicles. For example, the encryption module 295F may provide a private key used by the vehicle to encrypt / decrypt communications, while a corresponding public key may be provided to other user devices and vehicles to enable them to decrypt / encrypt communications. The encryption module 295F may communicate with a remote server to receive new keys, updates to keys, new vehicle or user keys, and the like. The encryption module 295F may also send any updates to the local private / public key pair to the remote server.

[0119] 3A shows a flow diagram 300 according to an example embodiment. Referring to FIG. 3A, the flow includes one or more of: starting 302 a timer by the vehicle when a pairing request is initiated; receiving 304 a first response to the pairing request from the first device and a second response to the pairing request from the second device; recording 306 the timers when each of the first and second responses is received; determining 308 a first connection time for the first device from the recorded timers; and connecting 310 by the vehicle to the device having the fastest connection time among the first and second devices.

[0120] 3B shows another flow diagram 320 according to an exemplary embodiment. Referring to FIG. 3B, the flow includes determining a first location for the first device using a first radio frequency signal received from a first device, determining a second location for the second device using a second radio frequency signal received from a second device, applying a prioritization scheme to identify a highest priority location among the first and second locations, and making a connection using the highest priority location 322; sensing a first temperature at the first device, sensing a second temperature in the vehicle, determining a difference between the first temperature and the second temperature, and determining if the determined difference is and performing 323 a connection in response to the threshold not being exceeded; determining a location for the vehicle, determining a required level of authentication for the connection based on the determined location, and performing 324 a connection in response to the required level of authentication being provided; detecting a first plurality of movements of a first person associated with the first device, analyzing the first plurality of movements to identify at least one pattern among the first plurality of movements, detecting a second plurality of movements of a subsequent person, and determining that the subsequent person is the first person when the second plurality of movements matches the identified at least one pattern. determining whether the first plurality of movements matches the identified at least one pattern, and performing the connection; and requiring authentication before performing the connection when the second plurality of movements does not match the identified at least one pattern; receiving a first Bluetooth® signal from the first device having a first radio frequency emission signature; receiving a second Bluetooth® signal from the second device having a second radio frequency emission signature; comparing the first radio frequency emission signature with the second emission signature; and determining whether the first radio frequency emission signature matches the second radio frequency emission signature. and performing a connection in response to the first radio frequency emission signature matching the second radio frequency emission signature; and requiring authentication before performing the connection in response to the first radio frequency emission signature not matching the second radio frequency emission signature; and determining, by the vehicle, a plurality of locations for the first device in response to receiving a plurality of pairing requests from the first device, identifying a location pattern from the plurality of locations; receiving, by the vehicle, subsequent pairing requests, determining an originating location for the subsequent pairing request, comparing the originating location to the location pattern; and when the originating location is within the location pattern;and requiring authentication before making the connection when the location of origin is not within the location pattern 327.

[0121] 3C illustrates yet another flow diagram 340 according to an example embodiment. Referring to FIG. 3C, the flow diagram includes one or more of receiving a confirmation of an event from one or more elements described or depicted herein, where the confirmation comprises a blockchain consensus between peers represented by any of the elements 342, and executing a smart contract to record the confirmation in the blockchain based on the blockchain consensus 344.

[0122] 4 illustrates a machine learning vehicle network diagram 400 according to an example embodiment. Network 400 includes a vehicle 402 coupled with a machine learning subsystem 406. The vehicle includes one or more sensors 404.

[0123] The machine learning subsystem 406 includes a learning model 408, which is a mathematical artifact produced by a machine learning training system 410 that generates predictions by finding patterns in one or more training datasets. In some embodiments, the machine learning subsystem 406 resides within the vehicle 402. In other embodiments, the machine learning subsystem 406 resides external to the vehicle 402.

[0124] The vehicle 402 sends data from one or more sensors 404 to a machine learning subsystem 406. The machine learning subsystem 406 provides the data from the one or more sensors 404 to a learning model 408, which returns one or more predictions. The machine learning subsystem 406 sends one or more instructions to the vehicle 402 based on the predictions from the learning model 408.

[0125] In further embodiments, vehicle 402 may transmit data from one or more sensors 404 to machine learning training system 410. In yet another example, machine learning subsystem 406 may transmit data from sensors 404 to machine learning subsystem 410. One or more of the applications, functions, steps, solutions, etc. described and / or depicted herein may utilize machine learning network 400 as described herein.

[0126] FIG. 5A illustrates an example vehicle configuration 500 for managing database transactions associated with a vehicle, according to an exemplary embodiment. Referring to FIG. 5A , when a particular vehicle / vehicle 525 is involved in a transaction (e.g., vehicle service, dealership transaction, delivery / pickup, transportation service, etc.), the vehicle may receive (510) assets and / or issue / transfer (512) assets according to the transaction. A vehicle processor 526 resides within the vehicle 525, and communication exists between the vehicle processor 526, database 530, vehicle processor 526, and transaction module 520. The transaction module 520 may record information such as assets, parties, credits, service descriptions, dates, times, locations, results, notifications, unexpected events, etc. The transaction in the transaction module 520 may be replicated in database 530. The database 530 may be one of an SQL database, an RDBMS, a relational database, a non-relational database, a blockchain, a distributed ledger, and may be on-board the vehicle, off-board the vehicle, accessed directly and / or through a network, or accessible to the vehicle.

[0127] FIG. 5B illustrates an exemplary vehicle configuration 550 that manages database transactions between various vehicles, according to an exemplary embodiment. When a vehicle reaches a situation where services need to be shared with another vehicle, the vehicle 525 may engage with another vehicle 508 to perform various operations, such as sharing, transmitting, or obtaining a service request. For example, the vehicle 508 may be due for battery charging and / or may have a tire problem and may be on route to pick up a delivery package. A vehicle processor 528 resides within the vehicle 508, and communication exists between the vehicle processor 528, the database 554, and the transaction module 552. The vehicle 508 may notify another vehicle 525 within its network and operating on its blockchain member services. A vehicle processor 526 resides within the vehicle 525, and communication exists between the vehicle processor 526, the database 530, the vehicle processor 526, and the transaction module 520. The vehicle 525 may then receive information via a wireless communication request to pick up the package from the vehicle 508 and / or from a server (not shown). The transaction is logged in transaction modules 552 and 520 of both vehicles. Credits are transferred from vehicle 508 to vehicle 525, and a record of the transferred service is logged in database 530 / 554, assuming the blockchains are different from each other, or logged in the same blockchain used by all members. Database 554 may be one of an SQL database, an RDBMS, a relational database, a non-relational database, a blockchain, a distributed ledger, may be onboard the vehicle, may be offboard the vehicle, and may be accessible directly and / or through a network.

[0128] FIG. 6A illustrates a blockchain architecture configuration 600 according to an example embodiment. Referring to FIG. 6A, the blockchain architecture 600 may include a group of blockchain member nodes 602-606 as part of a particular blockchain element, e.g., a blockchain group 610. In an example embodiment, a permissioned blockchain is accessible only to members who have permission to access the blockchain data, rather than all parties. Blockchain nodes participate in numerous activities, such as the addition and validation process (consensus) of blockchain entries. One or more of the blockchain nodes may approve entries based on an endorsement policy and provide an ordering service for all blockchain nodes. Blockchain nodes may initiate blockchain operations (e.g., authentication) and attempt to write to the blockchain immutable ledger stored in the blockchain, a copy of which may also be stored on the underlying physical infrastructure.

[0129] Once a transaction is received and approved by a consensus model determined by the member nodes, the blockchain transaction 620 is stored in the computer's memory. Approved transactions 626 are stored in the blockchain's current block and committed to the blockchain via a commit procedure, which involves hashing the data content of the transaction in the current block and referencing a previous hash in the previous block. Within the blockchain, one or more smart contracts 630 may exist that define the terms of transaction agreement and operation, such as registered recipients, vehicle capabilities, requirements, permissions, and sensor thresholds, contained within smart contract executable application code 632. The code may be configured to identify whether a requesting entity is registered for vehicle service, which service features the entity is eligible / required to receive given the entity's profile status, and whether to monitor the entity's behavior at a later time. For example, when a service event occurs and a user is in the vehicle, monitoring of sensor data may be triggered and a certain parameter, such as the vehicle's charge level, may be identified as being above / below a certain threshold for a certain period of time, which may then result in a change in the current situation, necessitating the sending of an alert to a controlling party (i.e., vehicle owner, vehicle operator, server, etc.), so that a service can be identified and stored for reference. The vehicle sensor data collected may be based on the type of sensor data used to gather information about the vehicle's status. The sensor data may also be the basis for vehicle event data 634, such as where to travel, average speed, maximum speed, acceleration, whether there have been any collisions, whether the expected route has been taken, where the next destination is, whether safety measures have been implemented, whether the vehicle has sufficient charge / fuel, etc. All such information may be the basis for smart contract terms 630, which are then stored on the blockchain.For example, sensor thresholds stored in a smart contract can be used as the basis for whether a service needs to be detected and when and where the service should be performed.

[0130] FIG. 6B illustrates a shared ledger configuration, according to an example embodiment. Referring to FIG. 6B, example blockchain logic 640 includes a blockchain application interface 642 as an API or plug-in application that couples to computing devices and execution platforms for specific transactions. The blockchain configuration 640 may include one or more applications coupled to the application programming interface (API) to access and execute stored program / application code (e.g., smart contract executable code, smart contracts, etc.), which may be created according to customized configurations desired by participants, maintain their own state, control their own assets, and receive external information. This may be deployed and installed as an entry by appending it to the distributed ledger on all blockchain nodes.

[0131] Smart contract application code 644 provides the basis for blockchain transactions by establishing application code that, when executed, enables transaction conditions and states. Smart contracts 630, when executed, result in the creation of specific approved transactions 626, which are then forwarded to a blockchain platform 652. The platform includes security / authorization 658, a computing device 656 that performs transaction management, and a storage unit 654 as memory for storing transactions and smart contracts in the blockchain.

[0132] A blockchain platform may include various layers of blockchain data and services (e.g., cryptographic trust services, virtual execution environments, etc.), as well as an underlying physical computer infrastructure that can be used to receive and store new entries and provide access to auditors seeking to access data entries. The blockchain may expose interfaces that provide access to the virtual execution environments necessary to process program code and interact with the physical infrastructure. Cryptographic trust services may be used to verify entries, such as asset exchange entries, and keep information private.

[0133] The blockchain architecture configurations of Figures 6A and 6B may process and execute program / application code through one or more interfaces exposed and services provided by the blockchain platform. As a non-limiting example, smart contracts may be created to implement reminders, updates, and / or other notifications of changes, updates, etc. The smart contract itself may be used to identify authorization and access requirements and rules associated with use of the ledger. For example, information may include new entries that may be processed by one or more processing entities (e.g., processors, virtual machines, etc.) included in the blockchain layer. Results may include decisions to reject or approve new entries based on criteria defined in the smart contract and / or peer consensus. Physical infrastructure may be utilized to retrieve any of the data or information described herein.

[0134] Within smart contract executable code, smart contracts may be authored via high-level application and programming languages ​​and then written into blocks within a blockchain. Smart contracts may include executable code that is registered, stored, and / or replicated using a blockchain (e.g., a decentralized network of blockchain peers). Entry may occur upon execution of smart contract code, which may occur in response to conditions associated with the smart contract being met. Execution of a smart contract may trigger trusted modifications to the state of a digital blockchain ledger. Modifications to the blockchain ledger resulting from smart contract execution may be automatically replicated throughout the decentralized network of blockchain peers via one or more consensus protocols.

[0135] A smart contract may write data to the blockchain in the format of key-value pairs. Additionally, smart contract code may read values ​​stored in the blockchain and use those values ​​during application operation. Smart contract code may write the output of various logical operations into the blockchain. The code may be used to create temporary data structures within a virtual machine or other computing platform. Data written to the blockchain may be public and / or encrypted and kept private. The temporary data used / generated by the smart contract is kept in memory by the provided execution environment and then deleted once the data needed by the blockchain is identified.

[0136] The smart contract executable code may include a code interpretation of the smart contract along with additional functions. As described herein, the smart contract executable code may be program code deployed on a computational network, where the program code is executed and verified by a chain validator together during a consensus process. The smart contract executable code receives a hash and retrieves a hash from the blockchain associated with a data template created by using a previously stored function extractor. If the hash of the hash identifier and the hash created from the stored identifier template data match, the smart contract executable code sends an authorization key to the requested service. The smart contract executable code may write data associated with cryptographic details to the blockchain.

[0137] FIG. 6C illustrates a blockchain configuration for storing blockchain transaction data, according to an exemplary embodiment. Referring to FIG. 6C, the exemplary configuration 660 provides a vehicle 662, a user device 664, and a server 666 that share information with a distributed ledger (i.e., blockchain) 668. In the event that a known, established user profile attempts to rent a vehicle with an established rating profile, the server may represent a service provider entity that queries a vehicle service provider to share user profile rating information. The server 666 may receive and process data related to the vehicle's service requirements. When a service event occurs, such as vehicle sensor data indicating a need for fuel / charge or maintenance service, a smart contract may be used to invoke rules, thresholds, sensor information collection, etc., that may be used to invoke a vehicle service event. Blockchain transaction data 670 is stored for each transaction, such as an access event, subsequent updates to the vehicle's service status, and event updates. The transaction may include the parties, requirements (e.g., age 18, eligible candidate for service, valid driver's license, etc.), coverage level, distance traveled during the event, registered recipients authorized to access the event and provide vehicle service, rights / permissions, sensor data retrieved during vehicle event operation to log details of the upcoming service event and identify vehicle condition status, and thresholds used to make decisions regarding whether the service event is completed and whether the vehicle condition status has changed.

[0138] FIG. 6D illustrates a blockchain block 680 and the contents of block structures 682A-682n that may be added to a distributed ledger, according to an example embodiment. Referring to FIG. 6D , a client (not shown) may submit entries to a blockchain node to perform activities on the blockchain. As an example, a client may be an application that acts on behalf of a requester, such as a device, person, or entity, to propose entries to the blockchain. Multiple blockchain peers (e.g., blockchain nodes) may maintain copies of the blockchain network state and the distributed ledger. Various types of blockchain nodes / peers may exist in a blockchain network, including endorsing peers that simulate and approve entries proposed by clients, and committing peers that confirm the endorsements, validate the entries, and commit the entries to the distributed ledger. In this example, a blockchain node may act as an endorser node, a committer node, or both.

[0139] The system includes a blockchain that stores immutably ordered records in blocks and a state database (current world state) that maintains the current state of the blockchain. One distributed ledger may exist per channel, with each peer maintaining its own copy of the distributed ledger for each channel in which it is a member. The blockchain is an entry log structured as hash-linked blocks, where each block contains a sequence of N entries. Blocks may contain various components, such as those shown in Figure 6D. Block combinations may be generated by appending a hash of the previous block's header to the current block's block header. In this way, all entries in the blockchain are ordered and cryptographically linked, preventing tampering with blockchain data without breaking the hash link. Furthermore, because they are linked, the latest block in the blockchain represents all entries that occurred before it. The blockchain may be stored on a peer file system (local or attached storage) to support append-only blockchain workloads.

[0140] The current state of the blockchain and distributed ledger may be stored in a state database, where the current state data represents the most recent values ​​for all keys to date contained in the blockchain's on-chain entry log. Invocations of smart contract executable code execute entries against the current state in the state database. To make interactions with the smart contract executable code highly efficient, the most recent values ​​for all keys are stored in the state database. The state database may contain an indexed view into the blockchain's entry log, so it can be regenerated off-chain at any time. The state database may be automatically restored (or generated if necessary) at peer startup before entries are accepted.

[0141] The endorsing node receives entries from clients and approves the entries based on the simulated results. The endorsing node holds a smart contract that simulates the entry proposal. When the endorsing node approves an entry, it creates an entry endorsement, which is a signed response from the endorsing node to the client application indicating the endorsement of the simulated entry. The manner in which an entry is approved depends on an endorsement policy, which may be specified in the smart contract executable code. An example of an endorsement policy is "a majority of endorsing peers must approve the entry." Different channels may have different endorsement policies. The approved entry is forwarded by the client application to the ordering service.

[0142] The ordering service accepts approved entries, orders the entries into blocks, and distributes the blocks to committing peers. For example, the ordering service may initiate a new block when a threshold number of entries is reached, a timer times out, or another condition. In this example, a blockchain node is a committing peer that receives data block 682A for storage on the blockchain. The ordering service may consist of a cluster of orderers. The ordering service does not process entries or smart contracts, nor does it maintain a shared ledger. Rather, the ordering service may accept approved entries and specify the order in which the entries are committed to the distributed ledger. The architecture of a blockchain network may be designed so that specific implementations of "ordering" (e.g., Solo, Kafka, BFT, etc.) are pluggable components.

[0143] Entries are written to the distributed ledger in a consistent order. The order of entries is established to ensure that updates to the state database are valid when the entries are committed to the network. Unlike cryptocurrency blockchain systems (e.g., Bitcoin) where ordering occurs through solving cryptographic puzzles or through mining, in this example, the parties to the distributed ledger can choose the ordering mechanism that best suits their network.

[0144] Referring to FIG. 6D , block 682A (also referred to as a data block) stored on a blockchain and / or distributed ledger may include multiple data segments, such as block headers 684A-684n, transaction-specific data 686A-686n, and block metadata 688A-688n. It should be understood that the various blocks and their contents depicted, such as block 682A and its contents, are for illustrative purposes only and are not meant to limit the scope of the illustrative embodiments. In some cases, both block header 684A and block metadata 688A may be smaller than transaction-specific data 686A, which stores entry data, although this is not a requirement. Block 682A may store transaction information for N entries (e.g., 100, 500, 1000, 2000, 3000, etc.) in block data 690A-690n. Block 682A may also include a link to a previous block (e.g., on the blockchain) in block header 684A. In particular, the block header 684A may include a hash of the previous block's header. The block header 684A may also include a unique block number, a hash of the block data 690A of the current block 682A, and the like. The block numbers of the blocks 682A may be unique and assigned in increasing / consecutive order starting from zero. The first block in a blockchain may be referred to as the genesis block, which contains information about the blockchain, its members, the data stored therein, etc.

[0145] The block data 690A may store entry information for each entry recorded in the block. For example, the entry data may include one or more of the following: entry type, version, timestamp, distributed ledger channel ID, entry ID, epoch, payload visibility, smart contract executable path (deployment transmission), smart contract executable name, smart contract executable version, inputs (smart contract executable and functions), client (creator) identification such as public key and certificate, client signature, endorser identification, endorser signature, proposal hash, smart contract executable event, response status, namespace, read set (e.g., list of keys and versions read by the entry), write set (e.g., list of keys and values), start key, end key, list of keys, Merkle tree query summary, and the like. Entry data may be stored for each of the N entries.

[0146] In some embodiments, block data 690A may also store transaction-specific data 686A that adds further information to the block's hash-linked chain in the blockchain. Thus, data 686A may be stored in an immutable log of blocks in the distributed ledger. Some of the advantages of storing such data 686A are reflected in various embodiments disclosed and depicted herein. Block metadata 688A may store multiple fields of metadata (e.g., as a byte array, etc.). The metadata fields may include a signature at the creation of the block, a reference to the last constituent block, an entry filter that identifies valid and invalid entries in the block, the last surviving offset of the ordering service that ordered the block, and the like. The signature, last constituent block, and orderer metadata may be added by the ordering service. Alternatively, the block's committer (e.g., a blockchain node) may add valid / invalid information based on endorsement policies, validation of the read / write set, and the like. The entry filter may include a byte array of a size equal to the number of entries in the block data 610A and a verification code that identifies whether the entry was valid / invalid.

[0147] The other blocks 682B-682n in the blockchain also have headers, files, and values. However, unlike the first block 682A, each of the headers 684A-684n in the other blocks includes a hash value of the immediately preceding block. The hash value of the immediately preceding block may simply be a hash of the previous block's header, or it may be a hash value of the entire previous block. By including the hash value of the previous block in each of the remaining blocks, tracking may be performed block by block, from the Nth block back to the genesis block (and associated original files), as shown by arrow 692, establishing an auditable and immutable chain of custody.

[0148] The above embodiments may be implemented in hardware, a computer program executed by a processor, firmware, or a combination of the above. The computer program may be embodied on a computer-readable medium, such as a storage medium. For example, the computer program may reside in random access memory ("RAM"), flash memory, read-only memory ("ROM"), erasable programmable read-only memory ("EPROM"), electrically erasable programmable read-only memory ("EEPROM"), registers, a hard disk, a removable disk, a compact disk read-only memory ("CD-ROM"), or any other form of storage medium known in the art.

[0149] A suitable storage medium may be coupled to the processor such that the processor can read information from, and write information to, the storage medium. Alternatively, the storage medium may be integrated into the processor. The processor and the storage medium may reside in an application-specific integrated circuit ("ASIC"). Alternatively, the processor and the storage medium may reside as discrete components. For example, FIG. 7 shows an exemplary computer system architecture 700 that may represent or be integrated with any of the components described above.

[0150] 7 is not intended to suggest any limitation as to the scope of use or functionality of the embodiments of the present application described herein, although the computational node 700 may nonetheless implement and / or perform any of the functions described herein.

[0151] Within computing node 700 is computer system / server 702, which is capable of operating in many other general-purpose or special-purpose computing system environments or configurations. Examples of well-known computing systems, environments, and / or configurations that may be suitable for use with computer system / server 702 include, but are not limited to, personal computer systems, server computer systems, thin clients, thick clients, handheld or laptop devices, multiprocessor systems, microprocessor-based systems, set-top boxes, programmable consumer electronics, network PCs, minicomputer systems, mainframe computer systems, distributed cloud computing environments that include any of the above systems or devices, and the like.

[0152] The computer system / server 702 may be described in the general context of computer system-executable instructions, such as program modules, being executed by a computer system. Generally, program modules may include routines, programs, objects, components, logic, data structures, etc. that perform particular tasks or implement particular abstract data types. The computer system / server 702 may also be implemented in a distributed cloud computing environment where tasks are performed by remote processing devices that are coupled through a communications network. In a distributed cloud computing environment, program modules may be located in both local and remote computer system storage media, including memory storage devices.

[0153] 7, a computer system / server 702 in a cloud computing node 700 is shown in the form of a general-purpose computing device. Components of the computer system / server 702 may include, but are not limited to, one or more processors or processing units 704, a system memory 706, and a bus connecting various system components including the system memory 706 to the processor 704.

[0154] The bus represents any one or more of several types of bus structures, including a memory bus or memory controller, a peripheral bus, an accelerated graphics port, and a processor or local bus using any of a variety of bus architectures, including, by way of example and not limitation, an Industry Standard Architecture (ISA) bus, a Micro Channel Architecture (MCA) bus, an Enhanced ISA (EISA) bus, a Video Electronics Standards Association (VESA) local bus, and a Peripheral Component Interconnect (PCI) bus.

[0155] Computer system / server 702 typically includes a variety of computer system-readable media. Such media may be any available media accessible by computer system / server 702, including both volatile and nonvolatile media, removable and non-removable media. In one example, system memory 706 implements the flow diagrams of other figures. System memory 706 may include computer system-readable media in the form of volatile memory, such as random access memory (RAM) 708 and / or cache memory 710. Computer system / server 702 may further include other removable / non-removable, volatile / non-volatile computer system storage media. By way of example only, memory 706 may be provided for reading from and writing to non-removable, non-volatile magnetic media (not shown, typically referred to as a "hard drive"). Although not shown, a magnetic disk drive that reads from and writes to a removable, non-volatile magnetic disk (e.g., a "floppy disk"), and an optical disk drive that reads from and writes to a removable, non-volatile optical disk, such as a CD-ROM, DVD-ROM, or other optical media, may be provided. In such cases, each may be connected to the bus by one or more data media interfaces. As further depicted and described below, memory 706 may include at least one program product having a set (e.g., at least one) program module configured to perform the functions of various embodiments of the present application.

[0156] A program / utility having a set of program modules (at least one) may be stored in memory 706, as well as, by way of example and not limitation, an operating system, one or more application programs, other program modules, and program data. Each of the operating system, one or more application programs, other program modules, and program data, or any combination thereof, may include an implementation aspect of a network environment. The program modules generally perform the functions and / or methods of various embodiments of the present application as described herein.

[0157] As will be appreciated by one skilled in the art, aspects of the present application may be embodied as a system, method, or computer program product. Accordingly, aspects of the present application may take the form of an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, microcode, etc.), or an embodiment combining software and hardware aspects, all of which may be generally referred to herein as a "circuit," "module," or "system." Furthermore, aspects of the present application may take the form of a computer program product embodied in one or more computer-readable medium(s) having computer-readable program code embodied therein.

[0158] The computer system / server 702 may also communicate with one or more external devices via I / O devices 712 (such as I / O adapters), which may include a keyboard, a pointing device, a display, a voice recognition module, etc., one or more devices that allow a user to interact with the computer system / server 702, and / or any device (e.g., a network card, a modem, etc.) that allows the computer system / server 702 to communicate with one or more other computing devices. Such communication may occur through I / O interfaces of the devices 712. Furthermore, the computer system / server 702 may communicate with one or more networks, such as a local area network (LAN), a general wide network (WAN), and / or a public network (e.g., the Internet), via a network adapter. As depicted, the devices 712 communicate with the other components of the computer system / server 702 via a bus. Although not shown, it should be understood that other hardware and / or software components may be used with the computer system / server 702. Examples include, but are not limited to, microcode, device drivers, redundant processing units, external disk drive arrays, RAID systems, tape drives, and data archival storage systems.

[0159] At least one preferred embodiment of the system, method, and non-transitory computer-readable medium is illustrated in the accompanying drawings and described in the foregoing detailed description. However, it will be understood that the present application is not limited to the disclosed embodiments, but is capable of many rearrangements, modifications, and substitutions as set forth and defined by the following claims. For example, the functions of the various illustrated systems may be performed by one or more of the modules or components described herein, or in a distributed architecture, including pairs of transmitters, receivers, or both. For example, all or part of the functions performed by individual modules may be performed by one or more of these modules. Furthermore, the functions described herein may be performed at various times and in conjunction with various events internal or external to the modules or components. Furthermore, information transmitted between the various modules may be transmitted between the modules via at least one of a data network, the Internet, a voice network, an Internet Protocol network, a wireless device, a wired device, and / or multiple protocols. Furthermore, messages sent or received by any of the modules may be transmitted or received directly and / or via one or more of the other modules.

[0160] Those skilled in the art will appreciate that the "system" may be embodied as a personal computer, a server, a console, a personal digital assistant (PDA), a mobile phone, a tablet computing device, a smartphone, or any other suitable computing device or combination of devices. Presenting the above-described functions as being performed by the "system" is not intended to limit the scope of the present application in any way, but rather to provide one example of many embodiments. Indeed, the methods, systems, and apparatuses disclosed herein may be implemented in both local and distributed fashions consistent with computing technology.

[0161] It should be noted that some of the system functionality described herein has been presented as modules to more specifically emphasize their implementation independence. For example, a module may be implemented as a hardware circuit comprising custom very large scale integrated (VLSI) circuits or gate arrays, off-the-shelf semiconductors such as logic chips, transistors, or other discrete components. A module may also be implemented in programmable hardware devices such as field programmable gate arrays, programmable array logic, programmable logic devices, graphics processing units, or the like.

[0162] Modules may also be implemented at least partially in software for execution by various types of processors. For example, an identified unit of executable code may comprise one or more physical or logical blocks of computer instructions, which may be organized, for example, as an object, procedure, or function. Nevertheless, the executable files of an identified module need not be physically located together, but may comprise different instructions stored in different locations that, when logically combined, comprise the module and achieve the specified purpose for the module. Furthermore, modules may be stored on a computer-readable medium, which may be, for example, a hard disk drive, a flash device, a random access memory (RAM), a tape, or any other such medium used to store data.

[0163] Indeed, a module of executable code may be a single instruction or many instructions, and may even be distributed in several different code segments, among different programs, and across several memory devices. Similarly, computational data may be identified and depicted herein in modules, and may be embodied in any suitable form and organized within any suitable type of data structure. Computational data may be collected as a single data set or distributed among different locations, including different storage devices, and may exist at least in part as simple electronic signals over a system or network.

[0164] It will be readily understood that the components of the present application, as generally described and illustrated in the figures herein, could be arranged and designed in a wide variety of different configurations. Thus, the detailed description of the embodiments is not intended to limit the scope of the present application as claimed, but is merely representative of selected embodiments of the present application.

[0165] Those skilled in the art will readily appreciate that the foregoing may be performed in a different order of steps and / or with hardware elements in different configurations than those disclosed. Thus, while the present application has been described based on these preferred embodiments, certain modifications, variations, and alternative constructions will be apparent to those skilled in the art.

[0166] While preferred embodiments of the present application have been described, it should be understood that the described embodiments are exemplary only, and that the scope of the present application should be determined solely by the appended claims when considered in light of the full range of equivalents and modifications (e.g., protocols, hardware devices, software platforms, etc.) to which the claims apply.

Claims

1. starting a timer by the vehicle when a pairing request is initiated; receiving, by the vehicle, a first response to the pairing request from a first device and a second response to the pairing request from a second device; recording the timer when each of the first response and the second response is received; determining a first connection time for the first device from the recorded timer and a second connection time for the second device from the recorded timer; connecting, by the vehicle, to a device having the fastest connection time among the first device and the second device; A method comprising:

2. determining a first location for the first device using a first radio frequency signal received from the first device; determining a second location for the second device using a second radio frequency signal received from the second device; and applying a prioritization scheme to identify a highest priority location among the first location and the second location; making the connection using the highest priority location; The method of claim 1 , comprising:

3. sensing a first temperature at the first device; sensing a second temperature within the vehicle; determining a difference between the first temperature and the second temperature; performing the connection in response to the determined difference not exceeding a threshold value; The method of claim 1 , comprising:

4. determining a location for the vehicle; determining a required level of authentication for the connection based on the determined location; and making the connection in response to providing the required level of authentication; The method of claim 1 , comprising:

5. Detecting a first plurality of movements of a first person associated with the first device; analyzing the first plurality of movements to identify at least one pattern among the first plurality of movements; Detecting a second plurality of movements of the trailing person; determining that the subsequent person is the first person when the second plurality of movements matches the identified at least one pattern and making the connection; requiring authentication before making the connection when the second plurality of movements does not match the identified at least one pattern; The method of claim 1 , comprising:

6. receiving a first Bluetooth® signal from the first device, the first Bluetooth® signal having a first radio frequency emission signature; receiving a second Bluetooth® signal from the second device, the second Bluetooth® signal having a second radio frequency emission signature; comparing the first radio frequency emission signature to the second emission signature; making the connection in response to the first radio frequency emission signature matching the second radio frequency emission signature; requiring authentication before making the connection in response to the first radio frequency emission signature not matching the second radio frequency emission signature; The method of claim 1 , comprising:

7. determining, by the vehicle, a plurality of locations for the first device in response to receiving a plurality of pairing requests from the first device; identifying a location pattern from the plurality of locations; receiving a subsequent pairing request by the vehicle; determining a location of origin for the subsequent pairing request; comparing said location of occurrence to a pattern of said locations; making the connection when the location of occurrence is within the location pattern; requiring authentication before making the connection when the location of origin is not within the location pattern; The method of claim 1 , comprising:

8. 1. A system comprising: a processor; Memory and the processor and the memory are communicatively coupled, and the processor starting a timer by the vehicle when a pairing request is initiated; receiving, by the vehicle, a first response to the pairing request from a first device and a second response to the pairing request from a second device; recording the timer when each of the first response and the second response is received; determining a first connection time for the first device from the recorded timer; and determining a second connection time for the second device from the recorded timer; The system connects, by the vehicle, to a device having the fastest connection time among the first device and the second device.

9. The processor: determining a first location for the first device using a first radio frequency signal received from the first device; determining a second location for the second device using a second radio frequency signal received from the second device; applying a prioritization scheme to identify a highest priority location among the first location and the second location; The system of claim 8 , wherein the highest priority location is used to make the connection.

10. The processor: sensing a first temperature at the first device; sensing a second temperature within the vehicle; determining a difference between the first temperature and the second temperature; The system of claim 8 , wherein the connection is made in response to the determined difference not exceeding a threshold value.

11. The processor: determining a location for the vehicle; determining a required level of authentication for the connection based on the determined location; The system of claim 8 , wherein the connection occurs in response to the required level of authentication being provided.

12. The processor: Detecting a first plurality of movements of a first person associated with the first device; analyzing the first plurality of movements to identify at least one pattern among the first plurality of movements; detecting a second plurality of movements of the person; determining that the subsequent person is the first person when the second plurality of movements matches the identified at least one pattern and making the connection; The system of claim 8 , wherein when the second plurality of movements does not match the identified at least one pattern, authentication is required before the connection is made.

13. The processor: receiving a first Bluetooth® signal from the first device, the first Bluetooth® signal having a first radio frequency emission signature; receiving a second Bluetooth® signal from the second device, the second Bluetooth® signal having a second radio frequency emission signature; comparing the first radio frequency emission signature to the second emission signature; making the connection in response to the first radio frequency emission signature matching the second radio frequency emission signature; The system of claim 8 , wherein, in response to the first radio frequency emission signature not matching the second radio frequency emission signature, authentication is required before the connection can occur.

14. The processor: determining, by the vehicle, a plurality of locations for the first device in response to receiving a plurality of pairing requests from the first device; identifying a location pattern from the plurality of locations; receiving a subsequent pairing request by the vehicle; determining a location of origin for the subsequent pairing request; comparing said location of occurrence to a pattern of said locations; making the connection when the location of occurrence is within the location pattern; 9. The system of claim 8, wherein when the location of origin is not within the location pattern, authentication is required before the connection can occur.

15. 1. A computer-readable storage medium comprising instructions that, when read by a processor, cause the processor to: starting a timer by the vehicle when a pairing request is initiated; receiving, by the vehicle, a first response to the pairing request from a first device and a second response to the pairing request from a second device; recording the timer when each of the first response and the second response is received; determining a first connection time for the first device from the recorded timer and a second connection time for the second device from the recorded timer; connecting, by the vehicle, to a device having the fastest connection time among the first device and the second device; A computer-readable storage medium that causes the

16. instructions for determining a first location for the first device using a first radio frequency signal received from the first device; instructions for determining a second location for the second device using a second radio frequency signal received from the second device; instructions for applying a prioritization scheme to identify a highest priority location among the first location and the second location; instructions to make the connection using the highest priority location; The computer-readable storage medium of claim 15 further comprising:

17. instructions to sense a first temperature at the first device; instructions to sense a second temperature within the vehicle; instructions for determining a difference between the first temperature and the second temperature; instructions for making the connection in response to the determined difference not exceeding a threshold; The computer-readable storage medium of claim 15 further comprising:

18. instructions for determining a location for the vehicle; instructions for determining a required level of authentication for the connection based on the determined location; instructions for making the connection in response to the required level of authentication being provided; The computer-readable storage medium of claim 15 further comprising:

19. instructions for detecting a first plurality of movements of a first person associated with the first device; instructions for analyzing the first plurality of movements to identify at least one pattern among the first plurality of movements; instructions for detecting a second plurality of movements of the trailing person; instructions for determining that the subsequent person is the first person and making the connection when the second plurality of movements matches the identified at least one pattern; instructions for requiring authentication before making the connection when the second plurality of movements does not match the identified at least one pattern; The computer-readable storage medium of claim 15 further comprising:

20. instructions, by the vehicle, to determine a plurality of locations for the first device in response to receiving a plurality of pairing requests from the first device; instructions for identifying a location pattern from the plurality of locations; instructions for receiving, by the vehicle, a subsequent pairing request; instructions for determining a location of origin for the subsequent pairing request; instructions for comparing said location of occurrence with said location patterns; instructions for making the connection when the location of occurrence is within the location pattern; instructions for requiring authentication before making the connection when the location of origin is not within the location pattern; The computer-readable storage medium of claim 15 further comprising: