Disclosure of Invention
The embodiment of the invention provides a threshold voting method, a threshold voting system and related equipment based on a BLS signature algorithm, which are used for saving network system resources in the threshold voting process.
The first aspect of the embodiments of the present invention provides a threshold voting method based on a BLS signature algorithm, which is applied to an aggregation node device, and the method may include:
receiving signature data sent by effective voting nodes in the current voting period;
if the ratio of the number N of the effective voting nodes to the total number M of all the voting nodes exceeds a first threshold value T, confirming that the voting passes, and selecting a first preset number A of preferred nodes from the effective voting nodes in the current voting period by adopting a simulated annealing algorithm, wherein A is not more than N and not less than the product of M and T;
aggregating the signature data sent by all the preferred nodes in the current voting period by adopting a BLS signature algorithm to generate corresponding aggregated signature data;
and sending the aggregated signature data and the identity information of the corresponding preferred node to verification node equipment so that the verification node equipment verifies the aggregated signature data.
Optionally, as a possible implementation manner, in the embodiment of the present invention, the selecting, by using a simulated annealing algorithm, a first preset number a of preferred nodes from the valid voting nodes in the current voting period includes:
and selecting the first A preferred nodes with the most effective voting times in the latest W historical voting periods from the effective voting nodes in the current voting period.
Optionally, as a possible implementation manner, in the embodiment of the present invention, the selecting, from the valid voting nodes in the current voting period, the first a preferred nodes with the largest number of valid voting times in the latest W history voting periods includes:
constructing a first-class voting result vector according to the received identity information of effective voting nodes in the current voting period, wherein each voting period corresponds to one first-class voting result vector, each voting node corresponds to one dimension value in the first-class voting result vector, the dimension values corresponding to all the effective voting nodes are the same, and the dimension values corresponding to the other voting nodes are the same;
the aggregation node equipment stores voting result vectors corresponding to the latest W historical voting periods to form an M multiplied by W matrix, M
i,jCorresponding dimension value of the ith voting node in the jth voting period according to a formula
Calculating the weight corresponding to each effective voting node, wherein all effective voting nodes in the current voting period form a set R, and i belongs to the R;
and determining a first preset number A of preferred nodes with the weight values ranked at the top according to the weight corresponding to each effective voting node.
Optionally, as a possible implementation manner, in the embodiment of the present invention, when the identity information of a number of preferred nodes corresponding to W identical historical voting periods and each historical voting period is stored in the verification node device and the aggregation node device, the selecting, by using a simulated annealing algorithm, a first preset number a of preferred nodes from valid voting nodes in a current voting period includes:
judging the W piecesWhether a first target voting period exists in the historical voting period or not, wherein the first target voting period is a set formed by all preferred nodes in the first target voting period
The set Q is a set of effective voting nodes in the current voting period;
if the first target voting period exists, determining that the preferred node corresponding to the first target voting period is the preferred node corresponding to the current voting period;
if the first target voting period does not exist, judging whether a second target voting period exists in the W historical voting periods or not, wherein a set formed by A-1 preferred nodes exists in the second target voting period
If a plurality of second target voting periods exist, calculating the weight of each second target voting period
Selecting a preferred voting period according to the weight of each second target voting period, wherein the number k corresponding to the voting period with shorter time interval of the current voting period is smaller;
selecting a target node in the set Q and a set R corresponding to the preferred voting period2As a preferred nodes corresponding to the current voting period, wherein the target node is in the set R2Each node in the set being different.
Optionally, as a possible implementation manner, the threshold voting method of the BLS signature algorithm in the embodiment of the present invention may further include:
acquiring the latest public key data of all voting nodes, judging whether the latest public key data is updated or not, if so, synchronizing the latest public key data to all verification node devices, and determining the voting nodes corresponding to the nonexistent public keys as leaving nodes;
if a first history voting period exists in the W history voting periods, and the departure node in the first history voting period is a valid voting node or the preferred node, deleting the identity information of all preferred nodes or the identity information of all valid voting nodes in the first history voting period, which is stored in the aggregation node device.
A second aspect of the embodiments of the present invention provides a threshold voting method based on a BLS signature algorithm, which is applied to a verification node device, where an aggregation public key corresponding to W historical voting periods is stored in the verification node device, and the method may include:
receiving aggregated signature data of a current voting period and corresponding identity information of a preferred node, which are sent by aggregated node equipment;
determining an aggregation public key which is most similar to a node public key set corresponding to the aggregation signature data from aggregation public keys corresponding to the latest W historical voting periods as an optimal aggregation public key;
and performing discrete logarithm multiplication and/or discrete logarithm division operation on the basis of the optimal aggregation public key to obtain a latest aggregation public key corresponding to the effective voting node in the current voting period, and verifying the aggregation signature data according to the latest aggregation public key.
Optionally, as a possible implementation manner, in an embodiment of the present invention, the determining, as an optimal aggregation public key, an aggregation public key that is most similar to a node public key set corresponding to the aggregated signature data from aggregation public keys corresponding to the latest W historical voting periods includes:
constructing a second voting result vector V corresponding to the current voting period according to the identity information of the preferred node of the current voting periodREach voting period corresponds to a second-class voting result vector, each voting node corresponds to a dimension value in the second-class voting result vector, the dimension values corresponding to all the preferred nodes are the same, and the dimension values corresponding to the other voting nodes are the same;
calculating W second-class voting result vectors V corresponding to the W locally-stored historical voting periodskAnd said VRWherein k is not less than 1 and not more than W, and determining the distance from the VRV with the smallest Hamming distancekAnd taking the aggregation public key in the corresponding historical voting period as the optimal aggregation public key.
Optionally, as a possible implementation manner, the threshold voting method of the BLS signature algorithm in the embodiment of the present invention may further include:
synchronizing the latest public key data of all voting nodes, judging whether the latest public key data is updated or not, and if so, determining the voting nodes corresponding to the nonexistent public keys as leaving nodes;
if a first history voting period exists in the W history voting periods, and the departure node in the first history voting period is a valid voting node or the preferred node, deleting the identity information and the aggregation public key of all the preferred nodes in the first history voting period, which are stored in the verification node device.
A third aspect of the embodiments of the present invention provides a blockchain system, where the blockchain system includes an aggregation node device and a verification node device, where,
the aggregation node device is configured to perform the steps in the threshold voting method embodiment of the BLS signature algorithm according to any one of the first aspect;
the verifying node device is adapted to perform the steps in an embodiment of the threshold voting method of the BLS signature algorithm according to any of the second aspects.
A fourth aspect of the embodiments of the present invention provides a terminal device, where the terminal device includes a memory and a processor, where the memory stores a computer program that is executable on the processor, and the computer program, when executed by the processor, implements the steps in the threshold voting method embodiment of the BLS signature algorithm according to any one of the first aspect and the second aspect.
Optionally, as a possible implementation manner, the terminal device in the embodiment of the present invention is a node forming a CDN network or a blockchain network.
A fifth aspect of the embodiments of the present invention provides a threshold voting system based on a BLS signature algorithm, which may include:
the receiving unit is used for receiving signature data sent by effective voting nodes in the current voting period;
the selecting unit is used for selecting a first preset number A of preferred nodes from the effective voting nodes in the current voting period by adopting a simulated annealing algorithm if the ratio of the number N of the effective voting nodes to the total number M of all the voting nodes exceeds a first threshold value T, wherein A is not more than N and not less than the product of M and T;
the aggregation unit is used for aggregating the signature data sent by all the preferred nodes in the current voting period by adopting a BLS signature algorithm to generate corresponding aggregated signature data;
and the sending unit is used for sending the aggregated signature data and the identity information of the corresponding preferred node to the verification node equipment so that the verification node equipment verifies the aggregated signature data.
A sixth aspect of the present invention provides a computer-readable storage medium, wherein the computer-readable storage medium stores thereon a computer program, which is executable by one or more processors to implement the steps in the threshold voting method embodiment based on the BLS signature algorithm according to any one of the first and second aspects.
A seventh aspect of the embodiments of the present invention provides a computer program product, which includes computer instructions, when executed on a computer, for enabling the computer to perform the steps in the BLS signature algorithm-based threshold voting method embodiment according to any one of the first and second aspects.
The following can be known:
in the embodiment of the invention, after determining that the vote passes in the current voting period, the aggregation node device can select the first preset number of preferred nodes from the effective voting nodes in the current voting period, and aggregate the signature data sent by all the preferred nodes in the current voting period by adopting a BLS signature algorithm to generate the corresponding aggregated signature data. And secondly, a simulated annealing algorithm is adopted in the process of selecting the optimal nodes, the algorithm can select the optimal node combination with the global optimum, the public key aggregation operation of members with the same composition of the optimal aggregation public key and the latest aggregation public key is saved, and the calculation amount of the aggregation public key corresponding to the current voting period calculated by the verification node equipment is further reduced.
Detailed Description
In order to make the objects, technical solutions and advantages of the present invention more apparent, the present invention is described in further detail below with reference to the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are merely illustrative of the invention and are not intended to limit the invention. All other embodiments, which can be derived by a person skilled in the art from the embodiments given herein without making any creative effort, shall fall within the protection scope of the present invention.
The terms "first," "second," "third," "fourth," and the like in the description and in the claims of the present application and in the drawings described above, if any, are used for distinguishing between similar elements and not necessarily for describing a particular sequential or chronological order. It will be appreciated that the data so used may be interchanged under appropriate circumstances such that the embodiments described herein may be practiced otherwise than as specifically illustrated or described herein. Furthermore, the terms "comprises," "comprising," and "having," and any variations thereof, are intended to cover a non-exclusive inclusion, such that a process, method, system, article, or apparatus that comprises a list of steps or elements is not necessarily limited to those steps or elements expressly listed, but may include other steps or elements not expressly listed or inherent to such process, method, article, or apparatus.
It should be noted that the description relating to "first", "second", etc. in the present invention is for descriptive purposes only and is not to be construed as indicating or implying relative importance or implicitly indicating the number of technical features indicated. Thus, a feature defined as "first" or "second" may explicitly or implicitly include at least one such feature. In addition, technical solutions between various embodiments may be combined with each other, but must be realized by a person skilled in the art, and when the technical solutions are contradictory or cannot be realized, such a combination should not be considered to exist, and is not within the protection scope of the present invention.
Multiple signatures are a special digital signature algorithm. On the basis of a general digital signature, multiple signatures additionally require that signatures of different users for the same information can be aggregated. The aggregated signature size should be smaller than the sum of all the different user signatures before aggregation, while verifying the aggregated signature may enable the verifier to believe that the signature population is indeed signed. In a multiple signature system, there are three roles, signer, aggregator, verifier. The signer comprises a plurality of user nodes which have different public keys and private keys and sign shared information. The aggregator is usually assumed by a certain user node, and collects the signature from the signer and then performs aggregation. The verifier may include any number of user nodes. The verifier determines whether all of the participating signers have signed the information by verifying the aggregated signature.
The applicant notices that the multiple signature algorithm can be applied to the network voting process, for example, the signature data of all voters can be aggregated to generate aggregated signature data, and in the verification process, the public keys of all voters need to be aggregated and the aggregated signature data needs to be verified according to the aggregated public key. However, although this approach can reduce the network resources occupied by the signature data, there is still room for further optimization. For example, a BLS aggregate signature algorithm is used for signature aggregation, when there are N voting nodes, each corresponding verification node needs to perform multiplication of about N discrete logarithms to obtain an aggregate public key in order to verify the aggregate signature, when the value of N is huge, a large amount of computing resources and time are consumed for computing the aggregate public key in each verification process, and the resource waste is more serious for multiple verifications.
For convenience of understanding, a detailed flow in the embodiment of the present invention is described below, and referring to fig. 1, an embodiment of a threshold voting method based on the BLS signature algorithm in the embodiment of the present invention includes:
101. receiving signature data sent by effective voting nodes in the current voting period;
in the embodiment of the invention, when voting nodes approve the proposal information corresponding to the voting data in the network voting process, the voting data can be signed according to the private key of the voting nodes to generate corresponding signature data and the signature data is sent to aggregation node equipment, the voting nodes sending the signature data are effective voting nodes in the current voting period, and the aggregation node equipment can receive the signature data sent by all the effective voting nodes in the current voting period.
102. If the ratio of the number N of the effective voting nodes to the total number M of all the voting nodes exceeds a first threshold value T, selecting a first preset number A of preferred nodes from the effective voting nodes in the current voting period by adopting a simulated annealing algorithm;
after the voting is completed, the aggregation node device may statistically calculate a ratio of the number N of valid voting nodes to the total number M of all voting nodes, and if the ratio does not exceed a preset first threshold T, it indicates that the voting does not pass and signature data aggregation is not required, and if the ratio exceeds the preset first threshold T, it indicates that the voting passes and signature data aggregation is required. In practical applications, the number of valid voting nodes may be greater than the product of M and T, however, the applicant notices that it is only necessary to verify the authenticity of the signatures of at least M × T valid voting nodes when the voting is confirmed to pass, for example, T is set to 0.5 in 1000 voting nodes, and the number of valid voting nodes in the current voting period is 800, so that it is only necessary to verify the authenticity of the signatures of at least 500 valid voting nodes at minimum, and the signature data of all 800 voting nodes do not need to be aggregated. In view of this, in the embodiment of the present application, a simulated annealing algorithm may be used to select a first preset number a of preferred nodes from the valid voting nodes in the current voting period, where a is not greater than N and not less than the product of M and T.
The applicant notices that effective voting nodes in each voting period in the multiple voting processes are not completely different, that is, an effective voting node set formed in each voting process, an overlapping interval exists between effective voting node sets corresponding to multiple historical voting periods, and an overlap also exists between constituent members of an aggregation public key corresponding to multiple historical voting periods. In view of this, in the embodiment of the present application, a simulated annealing algorithm may be adopted to select a first preset number a of preferred nodes with a higher voting probability from the effective voting nodes in the current voting period, and aggregate signature data corresponding to the a preferred nodes, so that the overlapping degree of the component members of the aggregation public key corresponding to the aggregation signature data of the current voting period and the aggregation public key of the historical voting period is higher.
Specifically, the simulated annealing algorithm is used for solving the problem that the optimal solution is difficult to accurately calculate. When a solution is found, the closer the solution is to the optimal solution, the greater the probability of accepting the solution. Meanwhile, even if one solution is far away from the optimal solution, the solution is still accepted with a small probability for preventing the calculation from falling into the local optimal solution. In the embodiment of the invention, because each verification node has limited calculation and storage capacity, only the latest aggregation results of a plurality of times can be reserved, and if the difference of the selected optimal node sets is too large, a large amount of calculation is expected to be performed on each verification node. Therefore, not only the overlapping degree of the aggregation public key corresponding to the aggregated signature data and the constituent members of the aggregation public key of the historical voting period stored by the verification node is ensured, but also the selected preferred node is ensured to be as close as possible to the preferred node participating in the voting in the next round. The aggregation node device may adopt a simulated annealing algorithm to select the first a preferred nodes with the largest number of valid votes in the latest W history voting periods from the valid voting nodes in the current voting period.
Optionally, as a possible implementation manner, selecting, by using a simulated annealing algorithm, the first a preferred nodes with the largest number of valid votes in the latest W history voting periods from the valid voting nodes in the current voting period in the embodiment of the present invention includes:
constructing a first-class voting result vector according to the received identity information of effective voting nodes in the current voting period, wherein each voting period corresponds to one first-class voting result vector, each voting node corresponds to one dimension value in the first-class voting result vector, the dimension values corresponding to all the effective voting nodes are the same, and the dimension values corresponding to the other voting nodes are the same;
the aggregation node equipment stores voting result vectors corresponding to the latest W historical voting periods to form an M multiplied by W matrix, M
i,jCorresponding dimension value of the ith voting node in the jth voting period according to a formula
Calculating the weight corresponding to each effective voting node, wherein all effective voting nodes in the current voting period form a set R, and i belongs to the R;
and determining a first preset number A of preferred nodes with the weight values ranked at the top according to the weight corresponding to each effective voting node.
It should be noted that, for the aggregation node device, the number corresponding to the latest W historical voting periods is stored in accordance with the time interval from the current voting period, and the smaller the time interval from the current voting period, the smaller the number corresponding to the smaller the number.
The calculation process of (a) is to generate a random number r if
If true, then corresponding m
i,jHas a probability value of 1, otherwise if
If true, then corresponding m
i,jHas a probability value of 0. It will be appreciated that the weight values in the above embodiments
The method is only exemplary, and can be reasonably set according to actual requirements, and only the simulated annealing principle needs to be met.
Optionally, as a possible implementation manner, when the identity information of a number of preferred nodes corresponding to W identical historical voting periods and each historical voting period is stored in the verification node device and the aggregation node device, selecting a first preset number of a preferred nodes from valid voting nodes in a current voting period by using a simulated annealing algorithm in the embodiment of the present invention includes:
judging whether a first target voting period exists in the W historical voting periods or not, wherein the first target voting period is a set formed by all preferred nodes in the first target voting period
The set Q is a set of effective voting nodes in the current voting period;
if the first target voting period exists, determining that the preferred node corresponding to the first target voting period is the preferred node corresponding to the current voting period;
if the first target voting period does not exist, judging whether a second target voting period exists in the W historical voting periods or not, wherein a set formed by A-1 preferred nodes exists in the second target voting period
If a plurality of second target voting periods exist, calculating the weight of each second target voting period
Selecting a preferred voting period according to the weight of each second target voting period, wherein the number k corresponding to the voting period with shorter time interval of the current voting period is smaller;
one target node in the set Q and a set R corresponding to the preferred voting period2The node in (2) is used as A preferred nodes corresponding to the current voting period, wherein the target node is in contact with the set R2Each node in the set being different.
Specifically, if there are a plurality of second goal voting periods, the weights of the respective second goal voting periods may be used
Calculating the total weight
Generating a random number r ∈ [0, weight >]Determining a preferred voting period from the interval in which r lies, e.g.
If yes, selecting a preferred voting period with k equal to 1;
if so, then a preferred voting period of k-2 is chosen, and so on, with each k chosen just as a percentage of its weight in the total weight.
If the second target voting period does not exist, the method can also be usedFinding a third target voting period in one step, wherein a set formed by A-2 preferred nodes exists in the third target voting period
And so on to find out the preferred voting period finally.
It can be understood that, although the data of the W historical voting periods stored in the verification node device and the data of the W historical voting periods stored in the aggregation node device are both identified by using the same letter, different amounts of data of the historical voting periods can be set according to actual requirements, that is, values of the two W may be different, and may be set reasonably specifically according to actual requirements and hardware resources, which is not limited here.
Optionally, in order to improve the reliability of the voting in the embodiment of the present invention, a plurality of verification node devices may be selected, for example, a plurality of node devices in the blockchain network may be selected as the verification node devices, which is not limited herein.
103. Aggregating the signature data sent by all the preferred nodes in the current voting period by adopting a BLS signature algorithm to generate corresponding aggregated signature data;
after determining all the preferred nodes in the current voting period, the aggregation node device may aggregate the signature data sent by all the preferred nodes in the current voting period by using a BLS signature algorithm, and generate corresponding aggregated signature data.
The BLS signature algorithm is proposed by three people, namely, the computer Dan Boneh, Ben Lynn and Hovav Shacham of stanford university, and a specific algorithm implementation process is not described herein again.
104. And sending the aggregated signature data and the identity information of the corresponding preferred node to the verification node equipment.
The aggregation node device may send the aggregated signature data and the identity information of the corresponding preferred node to the verification node device, so that the verification node device verifies the aggregated signature data.
It can be understood that the identity information of the preferred node in the embodiment of the present invention may be a unique number of the corresponding voting node device or a public key corresponding to the voting node device, and is not limited herein.
In the embodiment of the invention, after determining that the vote passes in the current voting period, the aggregation node device can select the first preset number of preferred nodes from the effective voting nodes in the current voting period, and aggregate the signature data sent by all the preferred nodes in the current voting period by adopting a BLS signature algorithm to generate the corresponding aggregated signature data. And secondly, a simulated annealing algorithm is adopted in the process of selecting the optimal nodes, the algorithm can select the optimal node combination with the global optimum, the public key aggregation operation of members with the same composition of the optimal aggregation public key and the latest aggregation public key is saved, and the calculation amount of the aggregation public key corresponding to the current voting period calculated by the verification node equipment is further reduced.
Optionally, as a possible implementation manner, on the basis of the embodiment shown in fig. 1, before performing statistics on voting data each time, it is determined whether the latest public key data is updated, if so, the latest public key data is synchronized to all verification node devices, and a voting node corresponding to a non-existent public key is determined as a departure node;
and if the first history voting period exists in the W history voting periods and the departure node in the first history voting period is a valid voting node or a preferred node, deleting the identity information of all preferred nodes or the identity information of all valid voting nodes in the first history voting period, which is stored in the aggregation node device.
The following describes an authentication flow on the authentication node device side in the embodiment of the present invention with reference to a specific flow. Referring to fig. 2, another embodiment of the threshold voting method for the BLS signature algorithm in the embodiment of the present invention may include:
201. receiving aggregated signature data of a current voting period and corresponding identity information of a preferred node, which are sent by aggregated node equipment;
202. determining an aggregation public key which is most similar to a node public key set corresponding to the aggregation signature data from aggregation public keys corresponding to the latest W historical voting periods as an optimal aggregation public key;
the verification node device may determine, from the aggregation public keys corresponding to the latest W historical voting periods, the aggregation public key most similar to the node public key set corresponding to the aggregation signature data as the optimal aggregation public key, and a method for specifically identifying the aggregation public key most similar to the node public key set corresponding to the aggregation signature data is not limited here, for example, a simulated annealing algorithm may be used to calculate an identity degree of an overlap degree of the public keys participating in a party, where the higher the overlap degree is, the higher the identity degree is.
For example, the verification node device may construct a second voting result vector V corresponding to the current voting period according to the identity information of the preferred node of the current voting periodR(ii) a Calculating W second-class voting result vectors V corresponding to the W locally-stored historical voting periodskAnd VRAnd determining the distance to VRV with the smallest Hamming distancekAnd taking the aggregation public key in the corresponding historical voting period as the optimal aggregation public key.
Specifically, after the verifying node device receives the aggregated signature data corresponding to the current voting period and the identity information of the corresponding preferred node, the verifying node device in the embodiment of the present invention may construct the second-class voting result vector V corresponding to the current voting period according to the identity information of the preferred node of the current voting periodREach voting period corresponds to a second voting result vector, each voting node corresponds to a dimension value in the second voting result vector, the dimension values corresponding to all the preferred nodes are the same, and the dimension values corresponding to the other voting nodes are the same. For example, assuming that the whole system has M voting nodes, without loss of generality, each node can be represented by a sequence number, and each voting result vector of the second type has M dimensionsThe value of each voting period corresponds to M voting nodes one by one, wherein the dimension values corresponding to the preferred nodes are all 1, and the dimension values of the other nodes are all 0, so that each voting period corresponds to one M-dimensional second-class voting result vector. V is used for the second type voting result vector corresponding to the current voting periodRIndicating that the second type voting result vector corresponding to other historical voting periods uses VkWherein 1. ltoreq. k. ltoreq.W.
After the verification node device receives the aggregated signature data corresponding to the current voting period and the identity information of the corresponding preferred node, only one optimal historical voting period needs to be found out from the stored data, the similarity between the optimal historical voting period preferred node set and the optimal voting period preferred node set is extremely high, the latest aggregated public key corresponding to the current voting period can be obtained by discrete logarithm multiplication and/or discrete logarithm division operation based on the aggregated public key corresponding to the historical voting period, and the calculation amount in the verification process of the signature data in the current voting period can be further reduced. For example, the number of the preferred node of the current voting period is 1, 3, 5, 7, and 9, respectively, the aggregation public key E corresponding to the historical voting period is stored in the verification node device, and the number of the preferred node corresponding to the aggregation public key E is 1, 3, 5, 7, and 8, the latest aggregation public key corresponding to the current voting period can be obtained only by performing a discrete logarithm division operation on the aggregation public key E (i.e., removing the public key corresponding to the preferred node 8), and performing a discrete logarithm multiplication operation (i.e., multiplying the public key corresponding to the preferred node 9).
In order to select an optimal historical voting period from the W historical voting periods, the verification node device in the embodiment of the present invention may calculate W second-class voting result vectors V corresponding to the W locally stored historical voting periodskHamming distance from the latest voting result vector, and determining distance from VRV with the smallest Hamming distancekAnd taking the aggregation public key in the corresponding historical voting period as the optimal aggregation public key.
203. And (3) performing multiplication of a discrete logarithm and/or division operation of the discrete logarithm on the basis of the optimal aggregation public key to obtain a latest aggregation public key corresponding to the effective voting node in the current voting period, and verifying the aggregation signature data according to the latest aggregation public key.
In the embodiment of the invention, the verification node equipment calculates W second-class voting result vectors V corresponding to W historical voting periods stored locallykHamming distance from the latest voting result vector, and determining distance from VRV with the smallest Hamming distancekTaking the aggregation public key in the corresponding historical voting period as an optimal aggregation public key; the latest aggregation public key corresponding to the current voting period is obtained by multiplication of the discrete logarithm and/or division operation of the discrete logarithm on the basis of the optimal aggregation public key, so that public key aggregation operation of members with the same composition of the optimal aggregation public key and the latest aggregation public key is saved, and the calculation amount of the aggregation public key corresponding to the current voting period calculated by the verification node device is reduced.
For the convenience of understanding, the threshold voting method of the BLS signature algorithm in the embodiment of the present invention will be described with reference to fig. 3 and 4 in conjunction with a specific application example.
Referring to fig. 3, assume that the whole system has M voting nodes, each having a globally knowable public key. When any node changes the public key, the latest public key can be synchronized in the whole network. Without loss of generality, each node may be represented by a sequence number. Each verifying node maintains the result of the last W times of public key aggregation which are different from each other. The size of W depends on the storage and computation capabilities of the verifying nodes, e.g. between 5 and 10, depending on the verifying node itself, which may be different. Each time the result is represented by an M-bit 0,1 vector v. If a certain public key exists in the result of the public key aggregation, the vector is 1 at the corresponding position of the public key, otherwise, the vector is 0.
And maintaining the result of voting for each node for W times closest to the current time by the aggregation node. The result of each vote is represented by a 0,1 vector with M bits, if the node votes, the vector is 1 at the corresponding position of the node, otherwise, the vector is 0. The W vectors together form an mxw matrix. Element m in the matrixi,jAnd the voting node with the sequence number i represents whether to vote in the previous j-th effective voting.
The aggregation node first checks whether the public key is up to date each time it receives a vote. If the public key is not up to date, the node is dynamically added to or separated from the network. The voting history of the leaving node should be emptied and its number assigned to the node that newly joined the network. Then, whether the number of votes N is larger than tM is judged. If the number of votes is less than tM, the voting is not enough, and the current round of voting is quitted. If N is larger than or equal to tM, selecting tM nodes from the N voting nodes for aggregation by using a simulated annealing algorithm as follows.
The simulated annealing algorithm is used for solving the problem that the optimal solution is difficult to accurately solve. When a solution is found, the closer the solution is to the optimal solution, the greater the probability of accepting the solution. Meanwhile, even if one solution is far away from the optimal solution, the solution is still accepted with a small probability for preventing the calculation of the solution from falling into the local optimal solution. In our problem, we should not only ensure that the aggregated result is easy to calculate for the verification result, but also ensure that the selected node is as close as possible to the node participating in the next round of voting. This is because each verification node has limited calculation and storage capabilities, and only the latest aggregation results of several times are retained, and if the difference R is too large each time, it is expected that each verification node performs a large amount of calculations. At the same time, it is unpredictable which nodes participate in the voting in the next round. Therefore, we consider that the closer to the vote of the current round, the closer to the optimal solution, and use this idea to calculate the weight of each node, and then select the optimal solution.
We use R to represent the set of valid voting nodes, where R is a random number uniformly distributed in the range of [0,1], and e is a mathematical constant, then the optional simulated annealing algorithm implementation may be:
the calculation process is as follows: when i is a fixed value, calculating the probability sum of each node
Wherein
And if the corresponding probability P is 1, otherwise, if the corresponding probability P is 0, selecting the public keys of the tM nodes at the top of the rank to perform signature aggregation operation. Finally, after aggregation, the aggregation node broadcasts the multiple signatures and the node numbers or public keys involved in the signatures to all verification nodes.
Referring to fig. 4, after the verification node receives the aggregated signature, first, an M-bit vector corresponding to the current aggregation result is extracted according to the received node number or the public key list, and then Hamming Distance (Hamming Distance) between the vector and the previously stored vector is sequentially calculated. The calculation method of the Hamming distance is as follows:
two M-bit vectors can be considered as two M-dimensional vectors, each element in the vector being either 0 or 1. Starting from the 1 st dimension to the M th dimension, if the corresponding position elements of the two vectors are different, the Hamming distance is + 1.
And after the verification node equipment calculates the Hamming distance between the vector of the current aggregation result and the vector stored before, selecting the public key aggregation corresponding to the vector with the minimum Hamming distance, wherein the computation amount of the aggregation calculation of the public key is the minimum of the computation amount of the current public key aggregation.
In this embodiment, by using the simulated annealing algorithm, the aggregation node selects the public key set with the minimum computation amount of the verification node in advance before aggregation, so that the original multiplication calculation requiring N discrete logarithms becomes very small, and the optimal multiplication can be optimized to 1 discrete logarithm multiplication. The optimization degree depends on dynamic factors such as network conditions and node behaviors. And the simulated annealing algorithm considers the calculation weight, and can better adapt to a dynamically changing network, particularly a network in which voting nodes frequently enter and exit. When a new node enters the network to start voting, the node does not have a history of a lot of votes at the aggregation node, but the simulated annealing algorithm still allows the node to enter the set of public key aggregation considering the few most recent votes of the node, and meanwhile timely updates the verification set of the verification node (the verification set of the verification node depends on the selection of the aggregation node on the public key aggregation node).
Referring to fig. 5, an embodiment of the present invention further provides a threshold voting system for a BLS signature algorithm, which includes:
a receiving unit 501, configured to receive signature data sent by a valid voting node in a current voting period;
a selecting unit 502, if the ratio of the number N of the effective voting nodes to the total number M of all the voting nodes exceeds a first threshold T, confirming that the vote passes, and selecting a first preset number a of preferred nodes from the effective voting nodes in the current voting period by using a simulated annealing algorithm, wherein a is not greater than N and not less than the product of M and T;
the aggregation unit 503 is configured to aggregate the signature data sent by all the preferred nodes in the current voting period by using a BLS signature algorithm, and generate corresponding aggregated signature data;
a sending unit 504, configured to send the aggregated signature data and the identity information of the corresponding preferred node to the verification node device, so that the verification node device verifies the aggregated signature data.
In the embodiment of the invention, after determining that the vote passes in the current voting period, the aggregation node device can select the first preset number of preferred nodes from the effective voting nodes in the current voting period, and aggregate the signature data sent by all the preferred nodes in the current voting period by adopting a BLS signature algorithm to generate the corresponding aggregated signature data. And secondly, a simulated annealing algorithm is adopted in the process of selecting the optimal nodes, the algorithm can select the optimal node combination in the global sense, and further the calculation amount of the verification node equipment for calculating the aggregation public key corresponding to the current voting period is reduced.
Optionally, as a possible implementation manner, the selecting unit in the embodiment of the present invention may further include:
the building module is used for building a first-class voting result vector according to the received identity information of the effective voting nodes in the current voting period, wherein each voting period corresponds to one first-class voting result vector, each voting node corresponds to one dimension value in the first-class voting result vector, the dimension values corresponding to all the effective voting nodes are the same, and the dimension values corresponding to the other voting nodes are the same;
a calculation module for storing voting result vectors corresponding to the latest W historical voting periods in the aggregation node device to form an M multiplied by W matrix, M
i,jCorresponding dimension value of the ith voting node in the jth voting period according to a formula
Calculating the weight corresponding to each effective voting node, wherein all effective voting nodes in the current voting period form a set R, and i belongs to the R;
and the selection module is used for determining a first preset number A of preferred nodes with the weight values ranked at the top according to the weight corresponding to each effective voting node.
Optionally, as a possible implementation manner, when the verification node device stores preferred nodes corresponding to the same W historical voting periods, the selecting unit in the embodiment of the present invention may further include:
a first judging module, configured to judge whether a first target voting period exists in the W history voting periods, where a set formed by all preferred nodes in the first target voting period
The set Q is a set of effective voting nodes in the current voting period;
the first determining module is used for determining that the preferred node corresponding to the first target voting period is the preferred node corresponding to the current voting period if the first target voting period exists;
a second judging module, for judging whether there is a second target voting period in the W historical voting periods if there is no first target voting period, and there is A in the second target voting periodSet of 1 preferred nodes
A second confirming module for calculating the weight of each second target voting period if there are multiple second target voting periods
Selecting a preferred voting period according to the weight of each second target voting period, wherein the number k corresponding to the voting period with shorter time interval of the current voting period is smaller;
a third confirmation module for selecting a target node in the set Q and a set R corresponding to the preferred voting period2The node in (2) is used as A preferred nodes corresponding to the current voting period, wherein the target node is in contact with the set R2Each node in the set being different.
Optionally, as a possible implementation manner, the threshold voting system of the BLS signature algorithm in the embodiment of the present invention may further include:
and the updating unit is used for acquiring the latest public key data of all the voting nodes, judging whether the latest public key data is updated or not, synchronizing the latest public key data to all the verification node devices if the latest public key data is updated, and deleting the historical voting data corresponding to the nonexistent public key.
Optionally, as a possible implementation manner, the threshold voting system of the BLS signature algorithm in the embodiment of the present invention may further include:
a second receiving unit, configured to receive aggregation signature data of a current voting period and identity information of a corresponding preferred node, where the aggregation signature data is sent by an aggregation node device;
a second constructing unit, configured to construct a second voting result vector V corresponding to the current voting period according to the identity information of the preferred node of the current voting periodRWherein each voting period corresponds to a second type voting result vector, each voting node corresponds to a dimension value in the second type voting result vector, the dimension values corresponding to all the preferred nodes are the same,the corresponding dimension values of the rest voting nodes are the same;
a second calculation unit for calculating W second-class voting result vectors V corresponding to the locally stored W historical voting periodskHamming distance from the latest voting result vector, where k is 1. ltoreq. W, and determining the distance from VRV with the smallest Hamming distancekTaking the aggregation public key in the corresponding historical voting period as an optimal aggregation public key;
and the second aggregation unit is used for performing multiplication of a discrete logarithm and/or division operation of the discrete logarithm on the basis of the optimal aggregation public key to obtain the latest aggregation public key corresponding to the effective voting node in the current voting period.
It can be clearly understood by those skilled in the art that, for convenience and brevity of description, the specific working processes of the system, the apparatus and the unit described in the embodiments of the present invention may refer to the corresponding processes in the foregoing method embodiments, and are not described herein again.
Referring to fig. 6, in this embodiment, a terminal device is further provided, where the terminal device 1 may be a Personal Computer (PC), or may be a terminal device of a smart phone, a tablet Computer, a palmtop Computer, a portable Computer, an intelligent router, an ore machine, or a network storage device.
The terminal device 1 may be a node constituting a CDN network or a blockchain network.
The terminal device 1 may include a memory 11, a processor 12 and a bus 13. The processor 11, when executing the computer program, implements the steps in the threshold voting method embodiment of the BLS signature algorithm described above and illustrated in fig. 1, such as steps 101 to 104 illustrated in fig. 1. Alternatively, the processor, when executing the computer program, implements the functions of each module or unit in the above-described device embodiments.
In some embodiments of the present invention, the processor is specifically configured to implement the following steps:
receiving signature data sent by effective voting nodes in the current voting period;
if the ratio of the number N of the effective voting nodes to the total number M of all the voting nodes exceeds a first threshold value T, confirming that the voting passes, and selecting a first preset number A of preferred nodes from the effective voting nodes in the current voting period by adopting a simulated annealing algorithm, wherein A is not more than N and not less than the product of M and T;
aggregating the signature data sent by all the preferred nodes in the current voting period by adopting a BLS signature algorithm to generate corresponding aggregated signature data;
and sending the aggregated signature data and the identity information of the corresponding preferred node to the verification node equipment so that the verification node equipment verifies the aggregated signature data.
Optionally, in some embodiments of the present invention, the processor may be further configured to implement the following steps:
and selecting the first A preferred nodes with the most effective voting times in the latest W historical voting periods from the effective voting nodes in the current voting period.
Optionally, in some embodiments of the present invention, the processor may be further configured to implement the following steps:
constructing a first-class voting result vector according to the received identity information of effective voting nodes in the current voting period, wherein each voting period corresponds to one first-class voting result vector, each voting node corresponds to one dimension value in the first-class voting result vector, the dimension values corresponding to all the effective voting nodes are the same, and the dimension values corresponding to the other voting nodes are the same;
the aggregation node equipment stores voting result vectors corresponding to the latest W historical voting periods to form an M multiplied by W matrix, M
i,jCorresponding dimension value of the ith voting node in the jth voting period according to a formula
Calculating the weight corresponding to each effective voting node, wherein all effective voting nodes in the current voting period form a set R, and i belongs to the R;
and determining a first preset number A of preferred nodes with the weight values ranked at the top according to the weight corresponding to each effective voting node.
When W identical history voting periods are stored in the verification node device and the aggregation node device, and the identity information of a preferred nodes corresponding to each history voting period, optionally, in some embodiments of the present invention, the processor may be further configured to implement the following steps:
judging whether a first target voting period exists in the W historical voting periods or not, wherein the first target voting period is a set formed by all preferred nodes in the first target voting period
The set Q is a set of effective voting nodes in the current voting period;
if the first target voting period exists, determining that the preferred node corresponding to the first target voting period is the preferred node corresponding to the current voting period;
if the first target voting period does not exist, judging whether a second target voting period exists in the W historical voting periods or not, wherein a set formed by A-1 preferred nodes exists in the second target voting period
If a plurality of second target voting periods exist, calculating the weight of each second target voting period
Selecting a preferred voting period according to the weight of each second target voting period, wherein the number k corresponding to the voting period with shorter time interval of the current voting period is smaller;
selecting a target node in the set Q and a set R corresponding to the preferred voting period2The node in (2) is used as A preferred nodes corresponding to the current voting period, wherein the target node is in contact with the set R2Each node in the set being different.
Optionally, in some embodiments of the present invention, the processor may be further configured to implement the following steps:
acquiring the latest public key data of all voting nodes, judging whether the latest public key data is updated or not, if so, synchronizing the latest public key data to all verification node devices, and determining the voting nodes corresponding to the nonexistent public keys as leaving nodes;
and if the first history voting period exists in the W history voting periods and the departure node in the first history voting period is a valid voting node or a preferred node, deleting the identity information of all preferred nodes or the identity information of all valid voting nodes in the first history voting period, which is stored in the aggregation node device.
Optionally, in some embodiments of the present invention, the processor may be further configured to implement the following steps:
receiving aggregated signature data of a current voting period and corresponding identity information of a preferred node, which are sent by aggregated node equipment;
determining an aggregation public key which is most similar to a node public key set corresponding to the aggregation signature data from aggregation public keys corresponding to the latest W historical voting periods as an optimal aggregation public key;
and (3) on the basis of the optimal aggregation public key, performing multiplication of a discrete logarithm and/or division operation of the discrete logarithm to obtain the latest aggregation public key corresponding to the effective voting node in the current voting period.
Optionally, in some embodiments of the present invention, the processor may be further configured to implement the following steps:
constructing a second voting result vector V corresponding to the current voting period according to the identity information of the preferred node of the current voting periodREach voting period corresponds to a second-class voting result vector, each voting node corresponds to a dimension value in the second-class voting result vector, the dimension values corresponding to all the preferred nodes are the same, and the dimension values corresponding to the other voting nodes are the same;
calculating W second-class voting result vectors V corresponding to the W locally-stored historical voting periodskAnd VRWhere k is 1. ltoreq. k. ltoreq.W, and determining the distance from VRV with the smallest Hamming distancekAnd taking the aggregation public key in the corresponding historical voting period as the optimal aggregation public key.
Optionally, in some embodiments of the present invention, the processor may be further configured to implement the following steps:
synchronizing the latest public key data of all voting nodes, judging whether the latest public key data is updated or not, and if so, determining the voting nodes corresponding to the nonexistent public keys as leaving nodes;
and if the first historical voting period exists in the W historical voting periods and the departure node in the first historical voting period is a valid voting node or a preferred node, deleting the identity information and the aggregation public key of all the preferred nodes in the first historical voting period, which are stored in the verification node device.
The memory 11 includes at least one type of readable storage medium, and the readable storage medium includes a flash memory, a hard disk, a multimedia card, a card type memory (e.g., SD or DX memory, etc.), a magnetic memory, a magnetic disk, an optical disk, and the like. The memory 11 may in some embodiments be an internal storage unit of the terminal device 1, for example a hard disk of the terminal device 1. The memory 11 may also be an external storage device of the terminal device 1 in other embodiments, such as a plug-in hard disk provided on the terminal device 1, a Smart Media Card (SMC), a Secure Digital (SD) Card, a Flash memory Card (Flash Card), and the like. Further, the memory 11 may also include both an internal storage unit of the terminal device 1 and an external storage device. The memory 11 can be used not only for storing application software installed in the terminal device 1 and various types of data such as codes of the computer program 01, but also for temporarily storing data that has been output or is to be output.
The processor 12 may be a Central Processing Unit (CPU), a controller, a microcontroller, a microprocessor or other data Processing chip in some embodiments, and is used for executing program codes stored in the memory 11 or Processing data, such as executing the program 01.
The bus 13 may be a Peripheral Component Interconnect (PCI) bus, an Extended Industry Standard Architecture (EISA) bus, or the like. The bus may be divided into an address bus, a data bus, a control bus, etc. For ease of illustration, only one thick line is shown in FIG. 6, but this is not intended to represent only one bus or type of bus.
Further, the terminal device may further include a network interface 14, and the network interface 14 may optionally include a wired interface and/or a wireless interface (such as a WI-FI interface, a bluetooth interface, etc.), which are generally used for establishing a communication connection between the terminal device 1 and other electronic devices.
Optionally, the terminal device 1 may further include a user interface, the user interface may include a Display (Display), an input unit such as a Keyboard (Keyboard), and the optional user interface may further include a standard wired interface and a wireless interface. Alternatively, in some embodiments, the display may be an LED display, a liquid crystal display, a touch-sensitive liquid crystal display, an OLED (Organic Light-Emitting Diode) touch device, or the like. The display, which may also be referred to as a display screen or display unit, is suitable for displaying information processed in the terminal device 1 and for displaying a visual user interface.
Fig. 6 only shows the terminal device 1 with the components 11-14 and the computer program 01, it being understood by a person skilled in the art that the structure shown in fig. 6 does not constitute a limitation of the terminal device 1, but may comprise fewer or more components than shown, or a combination of certain components, or a different arrangement of components.
The present invention also provides a computer-readable storage medium having a computer program stored thereon, which when executed by a processor, performs the steps of:
receiving signature data sent by effective voting nodes in the current voting period;
if the ratio of the number N of the effective voting nodes to the total number M of all the voting nodes exceeds a first threshold value T, confirming that the voting passes, and selecting a first preset number A of preferred nodes from the effective voting nodes in the current voting period by adopting a simulated annealing algorithm, wherein A is not more than N and not less than the product of M and T;
aggregating the signature data sent by all the preferred nodes in the current voting period by adopting a BLS signature algorithm to generate corresponding aggregated signature data;
and sending the aggregated signature data and the identity information of the corresponding preferred node to the verification node equipment so that the verification node equipment verifies the aggregated signature data.
Optionally, in some embodiments of the present invention, the processor may be further configured to implement the following steps:
and selecting the first A preferred nodes with the most effective voting times in the latest W historical voting periods from the effective voting nodes in the current voting period.
Optionally, in some embodiments of the present invention, the processor may be further configured to implement the following steps:
constructing a first-class voting result vector according to the received identity information of effective voting nodes in the current voting period, wherein each voting period corresponds to one first-class voting result vector, each voting node corresponds to one dimension value in the first-class voting result vector, the dimension values corresponding to all the effective voting nodes are the same, and the dimension values corresponding to the other voting nodes are the same;
the aggregation node equipment stores voting result vectors corresponding to the latest W historical voting periods to form an M multiplied by W matrix, M
i,jCorresponding dimension value of the ith voting node in the jth voting period according to a formula
Calculating the weight corresponding to each effective voting node, wherein all effective voting nodes in the current voting period form a set R, and i belongs to the R;
and determining a first preset number A of preferred nodes with the weight values ranked at the top according to the weight corresponding to each effective voting node.
When W identical history voting periods are stored in the verification node device and the aggregation node device, and the identity information of a preferred nodes corresponding to each history voting period, optionally, in some embodiments of the present invention, the processor may be further configured to implement the following steps:
judging whether W historical voting periods exist or notThere is a first goal voting period, a set of all preferred nodes within the first goal voting period
The set Q is a set of effective voting nodes in the current voting period;
if the first target voting period exists, determining that the preferred node corresponding to the first target voting period is the preferred node corresponding to the current voting period;
if the first target voting period does not exist, judging whether a second target voting period exists in the W historical voting periods or not, wherein a set formed by A-1 preferred nodes exists in the second target voting period
If a plurality of second target voting periods exist, calculating the weight of each second target voting period
Selecting a preferred voting period according to the weight of each second target voting period, wherein the number k corresponding to the voting period with shorter time interval of the current voting period is smaller;
selecting a target node in the set Q and a set R corresponding to the preferred voting period2The node in (2) is used as A preferred nodes corresponding to the current voting period, wherein the target node is in contact with the set R2Each node in the set being different.
Optionally, in some embodiments of the present invention, the processor may be further configured to implement the following steps:
acquiring the latest public key data of all voting nodes, judging whether the latest public key data is updated or not, if so, synchronizing the latest public key data to all verification node devices, and determining the voting nodes corresponding to the nonexistent public keys as leaving nodes;
and if the first history voting period exists in the W history voting periods and the departure node in the first history voting period is a valid voting node or a preferred node, deleting the identity information of all preferred nodes or the identity information of all valid voting nodes in the first history voting period, which is stored in the aggregation node device.
Optionally, in some embodiments of the present invention, the processor may be further configured to implement the following steps:
receiving aggregated signature data of a current voting period and corresponding identity information of a preferred node, which are sent by aggregated node equipment;
determining an aggregation public key which is most similar to a node public key set corresponding to the aggregation signature data from aggregation public keys corresponding to the latest W historical voting periods as an optimal aggregation public key;
and (3) on the basis of the optimal aggregation public key, performing multiplication of a discrete logarithm and/or division operation of the discrete logarithm to obtain the latest aggregation public key corresponding to the effective voting node in the current voting period.
Optionally, in some embodiments of the present invention, the processor may be further configured to implement the following steps:
constructing a second voting result vector V corresponding to the current voting period according to the identity information of the preferred node of the current voting periodREach voting period corresponds to a second-class voting result vector, each voting node corresponds to a dimension value in the second-class voting result vector, the dimension values corresponding to all the preferred nodes are the same, and the dimension values corresponding to the other voting nodes are the same;
calculating W second-class voting result vectors V corresponding to the W locally-stored historical voting periodskAnd VRWhere k is 1. ltoreq. k. ltoreq.W, and determining the distance from VRV with the smallest Hamming distancekAnd taking the aggregation public key in the corresponding historical voting period as the optimal aggregation public key.
Optionally, in some embodiments of the present invention, the processor may be further configured to implement the following steps:
synchronizing the latest public key data of all voting nodes, judging whether the latest public key data is updated or not, and if so, determining the voting nodes corresponding to the nonexistent public keys as leaving nodes;
and if the first historical voting period exists in the W historical voting periods and the departure node in the first historical voting period is a valid voting node or a preferred node, deleting the identity information and the aggregation public key of all the preferred nodes in the first historical voting period, which are stored in the verification node device.
In the above embodiments, the implementation may be wholly or partially realized by software, hardware, firmware, or any combination thereof. When implemented in software, may be implemented in whole or in part in the form of a computer program product.
The computer program product includes one or more computer instructions. When loaded and executed on a computer, cause the processes or functions described in accordance with the embodiments of the invention to occur, in whole or in part. The computer may be a general purpose computer, a special purpose computer, a network of computers, or other programmable device. The computer instructions may be stored in a computer readable storage medium or transmitted from one computer readable storage medium to another, for example, from one website site, computer, server, or data center to another website site, computer, server, or data center via wired (e.g., coaxial cable, fiber optic, Digital Subscriber Line (DSL)) or wireless (e.g., infrared, wireless, microwave, etc.). The computer-readable storage medium can be any available medium that a computer can store or a data storage device, such as a server, a data center, etc., that is integrated with one or more available media. The usable medium may be a magnetic medium (e.g., floppy Disk, hard Disk, magnetic tape), an optical medium (e.g., DVD), or a semiconductor medium (e.g., Solid State Disk (SSD)), among others
It is clear to those skilled in the art that, for convenience and brevity of description, the specific working processes of the above-described systems, apparatuses and units may refer to the corresponding processes in the foregoing method embodiments, and are not described herein again.
In the several embodiments provided in the present application, it should be understood that the disclosed system, apparatus and method may be implemented in other manners. For example, the above-described apparatus embodiments are merely illustrative, and for example, the division of the units is only one logical division, and other divisions may be realized in practice, for example, a plurality of units or components may be combined or integrated into another system, or some features may be omitted, or not executed. In addition, the shown or discussed mutual coupling or direct coupling or communication connection may be an indirect coupling or communication connection through some interfaces, devices or units, and may be in an electrical, mechanical or other form.
The units described as separate parts may or may not be physically separate, and parts displayed as units may or may not be physical units, may be located in one place, or may be distributed on a plurality of network units. Some or all of the units can be selected according to actual needs to achieve the purpose of the solution of the embodiment.
In addition, functional units in the embodiments of the present application may be integrated into one processing unit, or each unit may exist alone physically, or two or more units are integrated into one unit. The integrated unit can be realized in a form of hardware, and can also be realized in a form of a software functional unit.
The integrated unit, if implemented in the form of a software functional unit and sold or used as a stand-alone product, may be stored in a computer readable storage medium. Based on such understanding, the technical solution of the present application may be substantially implemented or contributed to by the prior art, or all or part of the technical solution may be embodied in a software product, which is stored in a storage medium and includes instructions for causing a computer device (which may be a personal computer, a server, or a network device) to execute all or part of the steps of the method according to the embodiments of the present application. And the aforementioned storage medium includes: a U-disk, a removable hard disk, a Read-Only Memory (ROM), a Random Access Memory (RAM), a magnetic disk or an optical disk, and other various media capable of storing program codes.
It should be noted that the above-mentioned numbers of the embodiments of the present invention are merely for description, and do not represent the merits of the embodiments. And the terms "comprises," "comprising," or any other variation thereof, are intended to cover a non-exclusive inclusion, such that a process, apparatus, article, or method that comprises a list of elements does not include only those elements but may include other elements not expressly listed or inherent to such process, apparatus, article, or method. Without further limitation, an element defined by the phrase "comprising an … …" does not exclude the presence of other like elements in a process, apparatus, article, or method that includes the element.
The above description is only a preferred embodiment of the present invention, and not intended to limit the scope of the present invention, and all modifications of equivalent structures and equivalent processes, which are made by using the contents of the present specification and the accompanying drawings, or directly or indirectly applied to other related technical fields, are included in the scope of the present invention.