Geohash-Based Rapid Query Method of Regional Transactions in Blockchain for Internet of Vehicles
Abstract
:1. Introduction
- 1.
- Based on the Merkle-Patricia Trie (MPT) [15] structure, we design a region state trie (RST), which uses Geohash code to index geolocations of the hierarchical region as an attribute of trading.
- 2.
- On top of the proposed RST, we design a branch query method to efficiently query the geolocations of the hierarchical region. Furthermore, we design an account location trie (ALT) storing the location changes of each vehicle account, to support the querying of the historical trading location of each vehicle.
2. Related Works
3. Structure Overview
- 1.
- Geolocation attributes are shown by blue in Figure 1. Each vehicle is associated with blockchain accounts. We add the geolocation attributes named to the account to meet the mobility of vehicles, where vehicle locations are recorded in chronological order to facilitate historical location queries. The geolocation is added in the transaction to achieve the purpose of adding geolocation attributes to the blockchain, which is also used to verify and update the account location of the transaction sender. The geolocation needs to be kept in the receipt as part of the transaction state information.
- 2.
- The root hash of the index structure of the geolocation attribute. Like the account balance, the account location trie reflects the change of account state. Therefore, its root hash does not need to be written into the block header, but to the account state. As shown by ALT in of Figure 1. The region state trie records the global changes within the geographic region, which has the same status as the global changes of account state. Its root hash needs to be written into the block header, as shown by of in Figure 1.
4. Design of the Proposed Structure
4.1. Account Location Trie (ALT)
- 1.
- Structure of ALT.As the core data structure of Ethereum, MPT is a tree structure of single value identification key/value pairs formed by the combination of Merkle Tree and Patricia Tree. The advantages of the MPT structure are the query efficiency brought by the compressed prefix and the fast location of differences brought by hash merging. Therefore, we use the MPT structure to build ALT to achieve fast query of geographic information.When a transaction happened, ALT takes the record time of the account geolocation as the index, where the account geolocation of the transaction sender verified by the miner node is stored in the leaf node of the trie. It then combines the hash values of two adjacent leaves into a string and stores the hash value of the string in the parent node of the trie. The adjacent parent node repeats the above hash calculation process until the root hash value is obtained. To this end, the change of the entire ALT can be identified by the root node.As shown in Figure 2, the storage of ALT consists of on-chain storage and index structure storage. The on-chain storage part is the hash value of the root node of the state trie in the block header. The dashed box is the index structure, and the node of the blockchain will maintain the latest index structure of ALT locally. The change of the account location will cause the change of the hash value of the root node of ALT in the account state , which will lead to the change of the hash value in the block header. It’s still shown in Figure 2, the blockchain adds a new block numbered . Since a new location record with a new time of 105 and a location of is added to ALT, the hash value of the root node of ALT changes from to , and the hash value of state tree root node changes from to .
- 2.
- Querying of the account location.The account location query can be divided into two types: the latest location query and the historical location query. Since the latest location of the account is an attribute of the account, it can be obtained directly. The historical location needs to be queried based on the specific time. First, it queries the latest account state, reads the root node of ALT from the account state, then queries ALT with the specified time as the index, and finally returns the index.
4.2. Region State Trie (RST)
4.2.1. Structural Design
4.2.2. Construction and Update of RST
- 1.
- Storage path planning. The storage path planning refers to the construction process of all branch nodes starting from the root node to the final leaf node of the RST in accordance with the geolocation encoding REL. The initial state of the RST is empty, and the first data is written to the root node. When there is an REL in the region to be planned, this REL is updated; otherwise, the geographic region encoding where the current blockchain is located is used as the common prefix to plan the storage path. The storage path planning process of the RST is summarized in Algorithm 1.
- 2.
- The node hash value merging process of the RST is consistent with that of ALT. Both of them need to start from the leaf node and combine the adjacent nodes to calculate the merging hash and pass it up until the root hash value is obtained.
Algorithm 1 Storage path planning algorithm of RST |
|
4.2.3. Prefix Query
- 1.
- RST query. A prefix matching method is designed to implement the prefix region query of the RST. We use to represent the encoding of the region to be queried, and to represent the encoding of the current key to be queried in the prefix matching process. The entire prefix matching process is a byte by byte comparison process from the first byte of the encoding and then getting the . When comparing with the root node of RST for the first time, is the . When the key of parent node is the prefix of , is the remainder of the parent node without prefix. If the leaf node is not reached after traversing , we take the key of the child node of parent node as , and traverse the child nodes one by one until all the leaf nodes of parent node are traversed.
- 2.
- Query state cache. Obtaining the regional geographic information of the IoV ultimately requires querying the REL. When the REL to be queried has not changed, caching the query state can improve the query efficiency of the REL. We design a query state cache method to temporarily save the query results of the REL. As shown in the blue part in Figure 4, we use to represent the query state cache list, is used as the key of region state cache to record the region encoding of the query request, stores the REL corresponding to the . is the hash value of the query state cache. When the region information is queried, we check whether the element exists in the query state cache list firstly. If not empty, the hash value of the query state cache is compared with the node of RST. If the hash value of the corresponding element of the RST is consistent with the hash value of the corresponding element in the query state cache list, the query state cache result is returned directly. If the element does not exist in the query state cache list or the element exists but is not the latest state, the query process of the RST needs to be completed, and then the hash value of the query state cache list and the query state cache in the cache should be updated.
4.2.4. Branch Query
- 1.
- Branch region cache. The contents of the branch region cache include the root node, the RST branch of the geographic region where the node is located, and the branch node prefix. In this paper, we define the branch node prefix as the encoding length of all parent node keys of the RST branch which is cached by the node in the global RST.Figure 5 shows a schematic diagram of the establishment and update of the branch query method. In the figure, the node whose geographic region encoding is empty adopts the global RST query method, and the node whose is adopts the branch query method. A blue dashed box in the figure is the storage state of the blockchain node at some point, including two parts: the orange box represents the state cache of the branch region of the current node, and the lower part represents the chain link relationship of the blockchain. The process of establishing branch region cache for node in Figure 5 is as follows: 1 read the root node of the global RST from the latest block ; 2 query the branch of in the global RST; 3 obtain the root node of current region, namely with key 11; 4 get the prefix-encoded bytes of the branch region node ; and 5 calculate the hash value of the root node of the branch of RST.After the node using the branch query method exits, its branch region cache is invalid, and the cache needs to be re-established when starting again. The algorithm for finding the root node of the branch region state and the prefix of the branch node is shown in Algorithm 2.
Algorithm 2 Branch Region State Cache |
|
- 2.
- Branch region update. When the region state branch corresponding to of the node using the branch query method changes, the local branch region state cache needs to be updated. As the structure of the RST will be changed, the hash value and prefix of the branch corresponding to will be changed, too. Therefore, both the hash value of the branch and the prefix of branch node need to be updated. As shown in Figure 5, after the node completes the synchronization process of the block , a new RST is generated (step ➅), and then the root node hash of the branch of RST needs to be calculated (step ➆). indicates that the branch has changed, re-search the branch of RST of the node (step ➇) and update the branch region state cache to and (step ➈ and ➉, respectively).
- 3.
- Branch query. If the Geohash encoding of the branch region and the Geohash encoding prefix of the region to be queried are the same, the fast query of the state of the branch region can be achieved by using the locally cached RST branch of the region. It is not necessary to start the query from the root node of the RST, but only from the branch node of the cache. As shown in Figure 5, the node of queries the region state of the range of or , which is the branch query. When the node does not set the region to be queried, or when the actual query region is the upper region of the node’s region or other regions that are not prefixed by the node’s current branch region, (because there is no corresponding region state cache), it needs to be queried in the global RST of the corresponding region state.
4.3. Discussion on Data Security
- 1.
- 2.
- Locations are written into blocks through transactions, which can achieve consistency and tamper-resistance according to the distributed consensus mechanism and synchronization mechanism.
- 3.
- The geolocation attribute is added in the core of the blockchain. Although there is a risk of exposing the location, the authenticity of the transaction is increased by adding the location attribute to the transaction, which provides security guarantee on the other hand.
- 1.
- Privacy. The original blockchain does not provide location information and there is no risk of exposing the location. We add location attributes inside the geolocation blockchain. Although the authenticity of the transaction can be proved by the location, if the location access is unrestricted, there is a risk of privacy leakage. Therefore, according to the application scenarios of location information, we divide location access rights into internal index usage and external usage depending on whether it is one of the two parties in the transaction. During the internal indexing of the blockchain, the access to location information is unlimited. In other cases, only the both parties can access the specific location information, so as to achieve the purpose of restricting the use of location information.
- 2.
- The input is non-repeatable. This is because only one transaction and one input of location can occur in the same account at one time, especially ALT takes time as the key, and the key is not repeated. That is, there will be no case that one time corresponds to two locations in ALT.
- 3.
- Query reliability. When querying the state of the same region, any two nodes return the same query results. Assume that there are two nodes that query the same region state information with different results. Since the honest nodes in the whole network account for the majority, the root node hash of the RST of all nodes are the same, so there will be no different branches. This contradicts with the assumption, which also proves the query reliability.
4.4. Discussion on Query Time
- 1.
- No-location index method.Existing blockchains such as Ethereum have no indexing method for geolocation, which we refer to as a no-location index. There are two ways to add location information to Ethereum. One is to use smart contracts to store locations, but they cannot be associated with ordinary transactions. If smart contracts are used to achieve storage and access data on-chain, the amount of data storage and storage cost will be increased. The other way is to store location information in the transaction in the form of extra data. The location data needs to be stored in the recursive length prefix encoding format and then written into ordinary transaction. The query process mainly includes a cyclic search process of block query and transaction query. When obtaining the transaction location, the recursive length prefix decoding process needs to be completed, and then compared with the range to be queried. We select the latter one for comparative analysis.Assuming the number of blocks is m, the transaction amount is n, the average transaction amount packaged in each block is , then the query time complexity is .
- 2.
- ALT method.The steps to query the region state with the help of ALT are as follows: First, get all account IDs. To get the state of the entire region from the perspective of ALT (mainly refers to the number of transactions), we first need to count all historical account information in the region. Second, get all transactions of the account. We need to get the start and end time of the query. The start time is when the account sends the first transaction, and the end time is when the account sends the latest transaction. Due to the randomness of the transaction, we can determine it from the block generation time. We choose block 0, i.e., the timestamp of the genesis block as the start time, because genesis block does not contain any transactions. We choose the timestamp of the latest block in the current blockchain as the end time to achieve full coverage in time. Third, transaction location filtering. In the process of step 2, it is also necessary to filter transactions according to the query region. According to Geohash encoding rules, it is only necessary to check whether the query region is the prefix of the transaction location.Assuming the number of blocks is m, the transaction amount is n, the number of accounts is a, then the average transaction amount of each account is . ALT is a Merkle tree, which has the query time complexity of , with N being the number of leaf nodes [37]. ALT takes time as the key, and each account has an independent ALT. Therefore, the number of leaf nodes is the transaction quantity of the account, so the query time complexity of each account is , and the overall query time complexity is . Thus, the query time complexity of ALT method is less than that of the no-location index method.
- 3.
- Global RST method.Since there is no loop process in the process of storage path planning process of the RST which is summarized in Algorithm 1, its time complexity is . The planning process is independent of the query process and will not affect the query time complexity of the Global RST method.The RST is also a Merkle tree, and the Merkle tree has the query time complexity of , where N is the number of leaf nodes. Since the RST is stored in bucket structure at the leaf node, we suppose the number of transactions stored in the REL at the leaf node in the RST is S. Then the number of leaf nodes in the RST is , and the query time complexity of the global RST is . Therefore the query time complexity of the global RST method is less than that of ALT method.
- 4.
- Branch query method.The time complexity of the algorithm for finding the root node of the branch region state and the prefix of the branch node which is summarized in Algorithm 2 depends on the encoding length of the branch region to be queried and the length of the common prefix in RST. In the worst case, if the coding length of each branch in RST is 1, the time complexity of Algorithm 2 is . Since this process is an action that can be completed when the node is started, it does not need to wait until the region information is queried, and it will not increase the query time of the region information.Supposing the number of leaf nodes of the Global RST method is , and there are at most L branches in each layer of RST. According to Algorithm 2, we assume that the length of the prefix region code cached in the branch region query method is P. Then the number of leaf nodes of the RST cached in the branch region query method is , which is less than that of the Global RST method. We can conclude that the query time complexity of the branch query method is , which is less than that of the Global RST method.
5. Experiments and Evaluation
5.1. Experimental Setup
- 1.
- Experimental environment. Our prototype framework is implemented on the basis of Ethereum version 1.9.12 (16 March 2020) which is written in Go language. The physical environment of the experiment is a desktop computer with 4-core Intel Core i5-4690k 3.5 GHz processor and 7.7 GB memory, running on Ubuntu 14.04.
- 2.
- Data generation. It is set that the vehicle sends a position transaction every 200 ms, and the speed limit of the general urban road is 30–50 km/h [7], so we set the average speed of 40 km/h as the vehicle speed. The vehicle trajectory is the position sequence represented by the 14-byte Geohash encoding continuously generated in the specified region according to the specified speed. The vehicle node writes the vehicle location into the transaction to record the movement of the vehicle. The no-location index blockchain stores location data into the blockchain in the form of additional data of ordinary transaction, and the geolocation blockchain structure stores it in the form of location attributes of the transaction. Each vehicle node sends a transaction to the blockchain every 200 ms.
- 3.
- Data acquisition. To evaluate the performance of the prototype framework, we mainly use three metrics: (1) Taking the time when the same content and the same number of transactions are written into the blockchain as the build time to compare the time cost when building different blockchains. (2) Taking the amount of on-chain data and local-data which are written into the blockchain with the same content and the same number of transactions as the data amount to compare the space cost when building different blockchains. Since the data content stored by different blockchain nodes is different, we make statistics from the data amount on-chain and the local data amount, respectively. Data amount on-chain: only the data amount of the block itself is counted. Local data amount: count the complete data amount saved locally, including state data. (3) Taking the query time of the amount of transactions in the same region as the query time to express the query efficiency of different types of query methods on regional information. For the statistics of the build time and the data amount, we calculate the situation separately when the amount of transactions is 8000, 16,000, 24,000, 32,000, 40,000. For the statistics of query time, we set the query node to complete the regional information query every 10 s, and take the average value for 200 consecutive queries.
- 4.
- Experimental scenario. Four vehicle nodes represent vehicles in four different regions, which generate vehicle location in their respective regions (the movement range of each node’s location is four 5-byte Geohash encoding regions, with a region of about 80 ), and send a transaction every 200 ms. One fixed node acts as a miner and is responsible for packaging transactions. One query node is responsible for the query work.
- 5.
- Comparison protocol. As in the previous section, our comparison protocol includes the original no index method, ALT method, global RST index method and branch region query method.Original no index method (ORG) is as discussed in the first paragraph of Section 4.4. In the original Ethereum, the location data of the transaction is stored in the form of additional information. Since there is no index for additional information in the blockchain, the query needs to be completed with blocks and intra-block transactions. This method with no dedicated location query is referred to as the original no index method.ALT index method (ALT) is as discussed in second paragraph of Section 4.4. In the geolocation blockchain, ALT is used to query the region state from the perspective of the account. This method is called ALT index method.Global RST index method (RST) is as discussed in Section 4.2.1, Section 4.2.2, Section 4.2.3. In the geolocation blockchain structure with RST, the nodes use a global query method to complete the region state query work, which is called the global RST index method.Branch region query method (BR) is as discussed in Section 4.2.4. In the geolocation blockchain structure with branch query method, the nodes use the branch query method to complete the query work for the cache of the current branch region state.
5.2. Experimental Results
- 1.
- Build time. We take the successful packaging time of the same number and the same content of transactions as the build time, and make statistics on the build time of five cases, such as 8000, 16,000, 24,000, 32,000, 40,000 transactions separately. Figure 6 shows the comparison of build time. The build time and time growth trend of the geolocation blockchain structure and the no-location index blockchain are basically the same, which both increase with the increase of the transaction amount on the whole. The build time of the geolocation blockchain structure increases about 0.31% on average compared with the no-location index blockchain, indicating that although the index structure is added to the geolocation blockchain structure, the build time does not increase significantly.Since our research did not modify the consensus mechanism, one miner and multiple miners had little impact on the test of construction time when the sending transaction speed was consistent, so we did not involve the multi miner experiment in this article.
- 2.
- Data amount. The experimental settings of data amount statistics are the same as that of building time statistics. The comparison results of data amount are shown in Figure 7.In terms of the data amount on-chain, as shown in Figure 7, the amount of on-chain data increases as the number of transactions increases in both cases. Compared with the no-location index blockchain, the on-chain data amount of the geolocation blockchain structure is slightly increased, with an average increase of about 0.27%. This is because the geolocation blockchain structure only adds the root nodes of ALT and RST in the block header, and the amount of data contained in the transactions included in the block body keeps the same. Therefore, the geolocation blockchain structure has no significant impact on the data on-chain.From the perspective of local data amount, roughly speaking, the data amount of the two methods increases with the increase of the number of transactions. The data amount of geolocation blockchain structure has increased significantly, which is about 3.2 times more than that of the no-location index blockchain on average, indicating that the data amount of database of the geolocation blockchain structure is significantly higher than that of the no-location index blockchain. The reasons are as follows: (1) the storage of ALT built for each account will continue to expand as the number of account transactions increases; and (2) the storage of RST will continue to expand according to the increase of the number of transactions in the region. The statistical results of the database data amount show that the index structure of the geolocation blockchain structure trades off space for time.
- 3.
- Query time. Query time refers to the time spent by different index methods to query the amount of transactions within the same geographic region when the amount of transactions on-chain is the same. Here we count the cumulative average value according to the fixed interval amount of transactions and count the query time of the transaction quantity in the geographic region with the query range of 3–6 byte Geohash encoding respectively. The statistical results are shown in Figure 8. The branch region selected by the region node of the branch query index in Figure 8 is the same as the Geohash range selected by the query region. And, in the four query result diagrams in Figure 8a–d, the query range of nodes corresponding to the branch region index is also different.Overall, when the query range is a 3-byte Geohash range, the amount of transactions contained in the region grows fast due to the large size of the region. Therefore, the query time of the four query methods increases greatly with the increase of the amount of transactions in this range. When the query range is a 6-byte Geohash range, the query time increases, but at a small rate, because the region is small and the amount of transactions contained within the region grows slowly.Comparing ALT index and original no index methods, when the query region is in the range of 3–6-byte Geohash, the average query time of original no index is 19 s–306 s, while the average query time of ALT index is 0.3 s–17 s. The average query time of ALT index is about 5.3% of original no index, which shows that ALT index has greatly improved the query efficiency compared with original no index on querying region state.Comparing global RST index and ALT index, when the query region is in the range of 3–6-byte Geohash, the query time of global RST index is 1.4 ms–9.2 ms on average, which is at least 99.8% less than that of ALT index, indicating that the global RST index of RST has better region query efficiency.Comparing branch region index and global RST index, when the query region is in the range of 3–6-byte Geohash and the query range of region index is also in the corresponding range of 3–6-byte Geohash, the average query time of branch region index is 1 ms–8.4 ms, which is about 21.7% less than that of global RST index, showing that the branch region index also improves the efficiency of RST.These experimental results have validated the discussion on query time in Section 4.4.
- 4.
- Analysis of branch region query method.We further evaluate the branch region index query method under the geographic region of different region nodes in the same query range. The statistical results are shown in Figure 9. The – in Figure 9 denote the length of Geohash encoding used to represent different regions during the region state information query process.When the amount of transactions is small (about 1200), the region query time of global RST index is the same as that of branch region index when the range is 3-byte Geohash encoding. With the increase of the amount of transactions, the query advantages of the branch region query method are gradually improved. It can also be seen from the results that the query time is greatly affected by the amount of transactions within the query range. When the amount of transactions within the query range changes little, the query time is almost the same. For example, when the amount of transactions in Figure 9b is 5600–10,400, the query time of is basically the same. Also, in Figure 9d, because of the small query range, the amount of transactions in the region is small and changes little, making the query time not change much.When the region of node is consistent with the query range, the query time of branch region query method is reduced by about 21.7% compared with that of the global RST index on average. When the query range is in the 4–6-byte Geohash encoding range and the range of region index is three byte, the query time of branch region query method is about 7.6% less than that of the global RST index on average. When the query region is in the range of 5–6-byte Geohash encoding and the range of branch region query method is four byte, the query time of region query method is about 16.2% less than that of the global RST index on average. When the query region is in the 6-byte Geohash encoding range and the range of branch region query method is in the 5-byte, the query time of region query method is reduced by about 21% on average compared with that of the global RST index. It shows that when the range of region query method is consistent, the branch region query method has higher query efficiency than global RST index and when the query range is about the same as the region range, the branch region query method efficiency is higher. This plays a guiding role in region state query and the region selection of the region node.
5.3. Discussion
6. Conclusions
Author Contributions
Funding
Institutional Review Board Statement
Informed Consent Statement
Data Availability Statement
Conflicts of Interest
References
- Kaul, A.; Altaf, I. Vanet-TSMA: A traffic safety management approach for smart road transportation in vehicular ad hoc networks. Int. J. Commun. Syst. 2022, 35, e5132. [Google Scholar] [CrossRef]
- Grover, J. Security of Vehicular Ad Hoc Networks using blockchain: A comprehensive review. Veh. Commun. 2022, 34, 100458. [Google Scholar] [CrossRef]
- Jingbang, W.; Xiyu, C.; Luyuan, Z.; Shufen, Z.; Daoshun, W. A Multi-Secret Reputation Adjustment Method in the Secret Sharing for Internet of Vehicles. Secur. Commun. Netw. 2022, 2022, 1413976. [Google Scholar]
- Maskey, S.R.; Badsha, S.; Sengupta, S.; Khalil, I. ALICIA: Applied Intelligence in blockchain based VANET: Accident Validation as a Case Study. Inf. Process. Manag. 2021, 58, 102508. [Google Scholar] [CrossRef]
- Chao, L.; Debiao, H.; Xinyi, H.; Neeraj, K.; Kim-Kwang Raymond, C. BCPPA: A Blockchain-Based Conditional Privacy-Preserving Authentication Protocol for Vehicular Ad Hoc Networks. IEEE Trans. Intell. Transp. Syst. 2020, 22, 7408–7420. [Google Scholar]
- Wu, J.; Lu, H.; Xiang, Y.; Wang, F.; Li, H. SATMAC: Self-Adaptive TDMA-Based MAC Protocol for VANETs. IEEE Trans. Intell. Transp. Syst. 2022, 23, 21712–21728. [Google Scholar] [CrossRef]
- Li, C.; Fu, Y.; Yu, F.R.; Luan, T.H.; Zhang, Y. Vehicle Position Correction: A Vehicular Blockchain Networks-Based GPS Error Sharing Framework. IEEE Trans. Intell. Transp. Syst. 2021, 22, 898–912. [Google Scholar] [CrossRef]
- Chukwuocha, C.; Thulasiraman, P.; Thulasiram, R.K. Trust and scalable blockchain-based message exchanging scheme on VANET. Peer-to-Peer Netw. Appl. 2021, 14, 3092–3109. [Google Scholar] [CrossRef]
- Kudva, S.; Badsha, S.; Sengupta, S.; Khalil, I.; Zomaya, A. Towards secure and practical consensus for blockchain based VANET. Inf. Sci. 2021, 545, 170–187. [Google Scholar] [CrossRef]
- Shrestha, R.; Nam, S.Y. Regional Blockchain for Vehicular Networks to Prevent 51% Attacks. IEEE Access 2019, 7, 95033–95045. [Google Scholar] [CrossRef]
- Yang, Z.; Yang, K.; Lei, L.; Zheng, K.; Leung, V.C.M. Blockchain-Based Decentralized Trust Management in Vehicular Networks. IEEE Internet Things J. 2019, 6, 1495–1505. [Google Scholar] [CrossRef]
- Kang, J.; Xiong, Z.; Niyato, D.; Ye, D.; Kim, D.I.; Zhao, J. Toward Secure Blockchain-Enabled Internet of Vehicles: Optimizing Consensus Management Using Reputation and Contract Theory. IEEE Trans. Veh. Technol. 2019, 68, 2906–2920. [Google Scholar] [CrossRef] [Green Version]
- Ahmed, W.; Di, W.; Mukathe, D. Privacy-preserving blockchain-based authentication and trust management in VANETs. IET Netw. 2022, 11, 89–111. [Google Scholar] [CrossRef]
- Nakamoto, S. Bitcoin: A Peer-to-Peer Electronic Cash System. Available online: http://bitcoin.org/bitcoin.pdf (accessed on 20 September 2022).
- Wood, G. Ethereum: A Secure Decentralised Generalised Transaction Ledger. 2014. Available online: https://ethereum.github.io/yellowpaper/paper.pdf (accessed on 20 September 2022).
- Meijers, J.; Michalopoulos, P.; Motepalli, S.; Zhang, G.; Zhang, S.; Veneris, A.; Jacobsen, H.A. Blockchain for V2X: Applications and Architectures. IEEE Open J. Veh. Technol. 2022, 3, 193–209. [Google Scholar] [CrossRef]
- Shrestha, R.; Bajracharya, R.; Shrestha, A.P.; Nam, S.Y. A new type of blockchain for secure message exchange in VANET. Digit. Commun. Netw. 2020, 6, 177–186. [Google Scholar] [CrossRef]
- Alladi, T.; Chamola, V.; Sahu, N.; Venkatesh, V.; Goyal, A.; Guizani, M. A Comprehensive Survey on the Applications of Blockchain for Securing Vehicular Networks. IEEE Commun. Surv. Tutor. 2022, 24, 1212–1239. [Google Scholar] [CrossRef]
- Jamil, F.; Ibrahim, M.; Ullah, I.; Kim, S.; Kahng, H.K.; Kim, D.H. Optimal smart contract for autonomous greenhouse environment based on IoT blockchain network in agriculture. Comput. Electron. Agric. 2022, 192, 106573. [Google Scholar] [CrossRef]
- Ibrahim, M.; Lee, Y.; Kahng, H.K.; Kim, S.; Kim, D.H. Blockchain-based parking sharing service for smart city development. Comput. Electr. Eng. 2022, 103, 108267. [Google Scholar] [CrossRef]
- Ibrahim, M.; Jamil, F.; Lee, Y.; Kim, D. Blockchain based secured load balanced task scheduling approach for fitness service. Comput. Mater. Contin. 2022, 71, 2599–2616. [Google Scholar] [CrossRef]
- Wang, H.; Xu, C.; Zhang, C.; Xu, J. vChain: A Blockchain System Ensuring Query Integrity. In Proceedings of the 2020 ACM SIGMOD International Conference on Management of Data, Portland, OR, USA, 14–19 June 2020; pp. 2693–2696. [Google Scholar]
- IBM. IBM Blockchain Solutions. Available online: https://www.ibm.com/blockchain/ (accessed on 10 September 2021).
- BigchainDB GmbH. Bigchaindb 2.0: The Blockchain Database. Available online: https://www.bigchaindb.com/whitepaper/bigchaindb-whitepaper.pdf (accessed on 10 September 2021).
- Oracle. Oracle Blockchain Platform. Available online: https://docs.oracle.com/en/cloud/paas/blockchain-cloud/usingoci/what-are-advantages-oracle-blockchain-platform.html (accessed on 10 September 2021).
- Schuster, A. SAP HANA Blockchain—A Technical Introduction. Available online: https://blogs.sap.com/2018/06/13/sap-hana-blockchain-technical-introduction/ (accessed on 10 September 2021).
- Fluree. Blockchain & Fluree’s Ledger. Available online: https://docs.flur.ee/guides/1.0.0/architecture/blockchain (accessed on 10 September 2021).
- Swarm. SWARM Writerpaper. Available online: https://docs.ethswarm.org/swarm-whitepaper.pdf (accessed on 10 September 2021).
- Gürsoy, G.; Brannon, C.M.; Gerstein, M. Using Ethereum blockchain to store and query pharmacogenomics data via smart contracts. BMC Med. Genom. 2020, 13, 74. [Google Scholar] [CrossRef]
- PeerSafe. ChainSQL Blockchain Write Paper v3.0. Available online: http://www.chainsql.net/PDF (accessed on 2 August 2022). (In Chinese).
- Wang, J.; Wang, H. Monoxide: Scale out Blockchains with Asynchronous Consensus Zones. In Proceedings of the 16th USENIX Symposium on Networked Systems Design and Implementation (NSDI 19), Boston, MA, USA, 26–28 February 2019; USENIX Association: Boston, MA, USA, 2019; pp. 95–112. [Google Scholar]
- Zhang, H.; Liu, J.; Zhao, H.; Wang, P.; Kato, N. Blockchain-Based Trust Management for Internet of Vehicles. IEEE Trans. Emerg. Top. Comput. 2021, 9, 1397–1409. [Google Scholar] [CrossRef]
- Zhou, C.; Lu, H.; Xiang, Y.; Wu, J.; Wang, F. GeohashTile: Vector Geographic Data Display Method Based on Geohash. Int. J. Geo-Inf. 2020, 9, 418. [Google Scholar] [CrossRef]
- Chen, X.; Chen, S.; Xu, T.; Yin, B.; Peng, J.; Mei, X.; Li, H. SMAPGAN: Generative Adversarial Network-Based Semisupervised Styled Map Tile Generation Method. IEEE Trans. Geosci. Remote Sens. 2021, 59, 4388–4406. [Google Scholar] [CrossRef]
- Niemeyer, G. Geohash. Available online: http://geohash.org/ (accessed on 2 August 2022).
- Zhang, C.; Zhu, L.; Xu, C.; Zhang, C.; Sharif, K.; Wu, H.; Westermann, H. BSFP: Blockchain-Enabled Smart Parking With Fairness, Reliability and Privacy Protection. IEEE Trans. Veh. Technol. 2020, 69, 6578–6591. [Google Scholar] [CrossRef]
- Szydlo, M. Merkle Tree Traversal in Log Space and Time. In Advances in Cryptology-EUROCRYPT 2004; Cachin, C., Camenisch, J.L., Eds.; Lecture Notes in Computer Science; Springer: Berlin/Heidelberg, Germany, 2004; Volume 3027, pp. 541–554. [Google Scholar]
Literature | Storage Location | Coding Scheme | Indexes Mode | Function |
---|---|---|---|---|
[7] | smart contract | longitude and latitude | - | cooperative positioning |
[8] | smart contract | hops between vehicles | - | credibility |
[36] | smart contract | longitude and latitude | horizontal inspection and vertical inspection | privacy location queries |
[9] | smart contract | longitude and latitude | - | improve the consensus efficiency |
[17] | transaction | longitude and latitude | - | reliability verification |
our scheme | transaction | Geohash | region state trie(RST) | regional information query |
Publisher’s Note: MDPI stays neutral with regard to jurisdictional claims in published maps and institutional affiliations. |
© 2022 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (https://creativecommons.org/licenses/by/4.0/).
Share and Cite
Zhou, C.; Lu, H.; Xiang, Y.; Wu, J.; Wang, F. Geohash-Based Rapid Query Method of Regional Transactions in Blockchain for Internet of Vehicles. Sensors 2022, 22, 8885. https://doi.org/10.3390/s22228885
Zhou C, Lu H, Xiang Y, Wu J, Wang F. Geohash-Based Rapid Query Method of Regional Transactions in Blockchain for Internet of Vehicles. Sensors. 2022; 22(22):8885. https://doi.org/10.3390/s22228885
Chicago/Turabian StyleZhou, Chang, Huimei Lu, Yong Xiang, Jingbang Wu, and Feng Wang. 2022. "Geohash-Based Rapid Query Method of Regional Transactions in Blockchain for Internet of Vehicles" Sensors 22, no. 22: 8885. https://doi.org/10.3390/s22228885
APA StyleZhou, C., Lu, H., Xiang, Y., Wu, J., & Wang, F. (2022). Geohash-Based Rapid Query Method of Regional Transactions in Blockchain for Internet of Vehicles. Sensors, 22(22), 8885. https://doi.org/10.3390/s22228885