4.1. Blockchain Technology Implementation Specifications
Vehicle-to-network technology has become an important area of research over the past few years. This type of network is created based on the concept of a car network for a specific need or situation. Today, vehicle-to-network can establish reliable networks that vehicles use to communicate on highways or in urban environments. Such systems support a wide range of applications, from simple transmission of information to neighboring nodes such as mass alert messages, to the distribution of messages with multiple hops over vast distances.
Within the IEEE Communications Society, there is the Vehicular Networks and Telematics Applications (VNTA) Technical Commission, which promotes technical activities in the areas of automotive networking, V2V, V2R and V2I communication, standards, road safety, and real-time vehicle communication [
38]. Examples of VANET applications include electronic brake lights that allow the vehicle to respond quickly to emergency situations, the formation of an automobile column, obstacle alerts, acceleration of rescue operations, and distribution of advertising notices. Good vehicle connectivity (V2V), infrastructure (V2I), and vulnerable road users will bring substantial benefits in terms of safety and comfort.
Along with the benefits of vehicle-to-network, many problems can arise. Currently, the telecommunications industry is showing significant progress in its development and offers many modern technologies that can cope with a wide range of tasks. Within vehicle-to-network, one such task is to ensure data security while not degrading the quality of service.
When vehicles communicate with infrastructure facilities, various types of information are transmitted, including vehicle identification data, speed, location, request content, and others. If the confidentiality and integrity of such data are violated, users may be harmed. An intelligent transportation system includes a huge amount of dynamic, critical data in real time, so its security is a major concern. Due to the urgent need to ensure the immutability and integrity of data, the use of special mechanisms that are available in blockchain technology solutions is proposed.
An example vehicle-to-network network is illustrated in
Figure 2.
The critical problems in the implementation of blockchain technology in V2N are low computing resources on vehicles, frequent changes in their location in space, and limited communication resources. Devices located on vehicles are expected to have limited memory and energy.
Since the topology of the vehicle-to-network network must change dynamically in response to the high mobility of the vehicle, it is expedient to use full nodes on road infrastructure facilities (road side units (RSUs)), and light nodes on vehicles (on-board units (OBUs)). In this solution, full nodes verify the correctness of the PoW solution and the transactions contained, and store a complete copy of the ledger. Light nodes take block headers and define a list of events in which they are interested. The architecture of such a network is shown in
Figure 3.
However, even if the blockchain technology is used at OBU and RSU facilities, the system will not be completely decentralized, since the transmission, processing, and storage of information on the server will adhere to a centralized nature.
The emergence of blockchain-based applications for V2N prompts research into their communication system requirements and RSU, OBU, and other devices. It is necessary to consider the impact on the system due to the large number of transactions, since during the exchange, the blockchain generates additional traffic to update the registries on all involved nodes, and the increased volume of service traffic that appears during data encryption significantly reduces the share of useful traffic.
Loading of vehicle-to-network will depend on the following:
where n is the number of nodes in the blockchain network (units), α
n is the rate of formation of transactions (transactions per second), d is the block size (bytes), and m is the interval between blocks.
Blockchain technology is characterized by the transfer of information in sharp bursts. Such spikes occur with synchronization between nodes at primary connections or solutions after a cryptographic problem. An elaborate study of the characteristics of the parameters presented in the dependencies of Equation (1) allows us to assess the impact of each node on the network load and determine the impact on the network characteristics, which is necessary for the high-quality operation of applications [
39].
Network latency is defined as the time it takes to confirm a transaction. Blockchain network latency is defined as any delay caused by block propagation on the network. In order to achieve higher scalability, network latency must be low, that is, the time it takes for a protocol to confirm a transaction must be effectively reduced. This is achieved both by using traditional methods of network optimization and by varying the system parameters.
The influence of parameters on system load and scalability are as follows:
The number of nodes (n) and the intensity of the formation of transactions (αn) in the blockchain network affect the network characteristics in direct proportions. An increase in the number of working nodes or the intensity of the formation of transactions will increase the amount of transmitted and processed information in both the process of validation and the process of synchronizing current registries. The solution to reduce the effect of this parameter is to optimize the number of full and light nodes. With a shorter block interval, the latency at which a transaction is written to the blockchain is reduced, i.e., the transaction is written faster; however, a shorter block interval results in a higher proportion of stale blocks, as more conflicting blocks will be found on the network. Obsolete blocks result in additional costs for validation and distribution across the network.
Block size (d) and block spacing (s) also affect the network performance in direct proportions. However, there is another task to reduce the processing time of transactions: increasing the size of the block so that miners can include more transactions in one block. If the block size increases, the number of transactions processed per second will increase. This reduces the turn-on time for a transaction, which can reduce system-level latency. To make full use of the network bandwidth and achieve higher throughput and greater efficiency, the interval between blocks should be as small as possible. However, shortening the block generation interval or increasing the block size to increase throughput slows down block sharing on the network and increases the number of lost blocks, compromising security.
The impact of the amount of the transaction fee on the confirmation time is also taken into consideration. Transaction fees play an important role in determining when transactions are confirmed. For the miner, this is an incentive to mine a specific transaction and include it in a block. The higher the transaction fee, the more likely there will be less time to confirm. However, this does not happen for every transaction; some transactions with higher transaction fees may require longer confirmation times (due to the fact that there may be transactions with the same value in the pool, or algorithms that do not allow complete supplanting of transactions with a smaller amount). This may have little or no impact on overall scalability, as its impact on network latency, latency, and throughput may be negligible.
The number of miners in the system is also important. Increasing the mining power in the blockchain system will help in evenly distributing energy consumption and with the task of mining blocks throughout the network. It also means faster confirmation times and higher throughput.
An increase in the number of transactions is in direct proportion to an increase in the confirmation time C
T ~ n
T, where C
T is the number of transactions and n
T is confirmation time. An increase in the number of transactions increases the load and latency on the system and network [
40].
These parameters describe the inherent impact on load and scalability, but the authors propose considering the impact of allocated and used resources on various network characteristics. When it is possible to describe the model and determine the primary dependencies of blockchain traffic on the characteristics of the network, there is a high probability of providing better-quality service and disposing of network resources on a dedicated area.
A total of 50 virtual clients were created to analyze traffic behavior on a network that can be analogous to V2N. The operating system used in the study was Linux Ubuntu 18.04 LTS (Geth client data: Version: 1.9.8-stable; Git Commit: d62e9b285777c036c108b89fac0c78f7855ba314; Git Commit Date: 20191126; Architecture: amd64; Protocol Versions: [64 63]; Go Version: go1.13.4; Operating System: linux; GOROOT =/home/travis/gimme/versions/go1.13.4.linux.amd64; Network complexity: 0 × 1, private subnet number 57).
The algorithm of the blockchain technology for the nodes participating in the experiment is shown in
Figure 4. This algorithm was developed taking into account the knowledge gained, the experiment, and the compilation of data from various sources, including [
10,
11,
12,
36,
39]. In such a conceptual and schematic form, the algorithm is presented for the first time and is absent in the reviewed literature.
The work of blockchain technology can be divided into several stages (network discovery, transaction creation and verification, mining, block validation):
The first time a node connects to the network, the node is loaded onto the network, and it connects to the bootstrap node to get a list of neighbors. After that, the node synchronizes with other nodes and receives the current version of the blockchain. The current node is then disconnected from the boot node and the network is considered to have been successfully discovered.
The creation of a new transaction implies the fulfillment of certain conditions by the participants in the exchange, therefore, the amount and the addressee are registered in the transaction, and also the conditions for the execution of the transaction can be additionally indicated. After creating a transaction, the sender signs it with his electronic key and sends it to the network. In this case, the transaction will be rejected if the signed transaction is formed incorrectly, it is invalid or does not contain all the information necessary for execution, and the transaction will be rejected if the user does not have enough funds to complete the operation.
After receiving a new transaction, the node initiates adding it to the block. The block is formed on the basis of information about the last received block and information collected at this stage. Then the miners try to find a solution. After finding such a block is checked, added to the registry and sent to the network to other nodes. If the solution is found by the second, then it is discarded to avoid branching.
Checking a block before adding it to the registry implies that the previous block exists, the data structure is not broken, that the sender has enough funds, that the signature is correct, the syntax is correct, the inputs and outputs are within the allowed value, the transaction size is not higher than the maximum, that the transaction has not yet been processed. In case of confirmation, the chain is updated in the general registry, the transaction and the user status are validated. In the absence of errors, each node processes and writes the “block” to its own database. The transaction ends. After entering the blockchain and confirmation by a sufficient number of subsequent blocks, the transaction becomes an integral part of the registry and is recognized as valid by all participants.
When studying an object, it is not always advisable to create a single model covering all of its aspects. It is necessary to know encryption and hashing systems, but it is not necessary to include them in a model that studies system stability. In the presented experiment, it is enough to make some necessary assumptions about the degree of reliability of such ciphers; we will consider them absolutely reliable and operating by default.
In the experiment, virtual clients sent transactions to a similar client at a rate of four transactions per second. As part of the work, four experiments were conducted, each of which generated different amounts of resources, and each experiment was repeated 100 times; the results of statistical treatment are presented. In this case, the nodes represented a complete customer who was at a stationary facility. Obviously, in accordance with
Figure 3, these clients were organized on RSUs.
In the analysis of the characteristics of the functional elements, various parameters of the network elements were examined, such as the use of system resources when the technology was loading channels, packet delay between nodes, and delay variation. The results obtained are presented below and divided by experiment.
Experiment 1: In this experiment, 395 GB of read-only memory (ROM) and 31 GB of random-access memory (RAM) (distributed in random order) were allocated to the blockchain nodes (
Table 1).
Table 2 shows the values of the channel load between node 5 and other elements of the V2N network during the experiment.
During the experiment to check the network load, graphs of the intensity of packet transmission between different nodes were obtained, presented in
Figure 5.
When networking with memory, allocation units were operating normally. All devices performed their tasks. When blockchain was running, the channel loading increased by an average of 30%. The latency of packets between nodes during blockchain operation decreased by an average of 88%. At the same time, there was practically no effect on the delay between nodes of another network (4% decrease).
Experiment 2: In this experiment, 395 GB of ROM and 10 GB of RAM (distributed evenly between nodes) were allocated to the blockchain nodes (
Table 3).
Table 4 shows the values of the channel load between node 5 and other network elements during the experiment.
When conducting the experiment to check the network load, graphs of the intensity of packet transmission between different nodes were obtained, presented in
Figure 6.
When networking with memory allocation, units were operating normally. All devices performed their tasks. When the blockchain was running, the channel load increased by an average of 120%. The latency of packets between nodes during blockchain operation decreased by an average of 49%. At the same time, there was practically no effect on the delay between nodes of another network (1% increase).
Experiment 3: In this experiment, 395 GB of ROM and 5 GB of RAM (distributed evenly between nodes) were allocated to the blockchain nodes (
Table 5).
Table 6 shows the values of the channel load between node 5 and other elements of the V2N network during the experiment.
When carrying out the experiment to check the network load, graphs of the intensity of packet transmission between different nodes were obtained, presented in
Figure 7.
When organizing a network with memory allocation, the nodes did not work normally. Synchronization and mining failures partially occurred. When the blockchain was running, the channel load increased by an average of 135%. The latency of packets between nodes during blockchain operation decreased by an average of 53%. At the same time, there was practically no effect on the delay between nodes of another network (1% decrease).
Experiment 4: In this experiment, 395 GB of ROM and 2.5 GB of Random RAM (distributed evenly between nodes) were allocated to the blockchain nodes (
Table 7).
Table 8 shows the values of the channel load between node 5 and other network elements during the experiment.
When conducting the experiment to check the network load, graphs of the intensity of packet transmission between different nodes were obtained, presented in
Figure 8.
When organizing a network with memory allocation, the nodes did not work normally. Nodes did not always complete synchronization successfully. When blockchain was running, the channel load increased by an average of 286%. The latency of packets between nodes during blockchain operation decreased by an average of 51%. At the same time, there was practically no effect on the delay between nodes of another network (1% decrease).