Patent Description:
In digital signature applications, sometimes a plurality of signers are required to sign a plurality of messages or the same message, and such operation may be referred to as multi-signature or aggregate signature.

In an application scenario of the multi-signature, when an aggregator who participates in the aggregate signature receives data signature information corresponding to a to-be-signed message transmitted by another signer, the aggregator may perform the aggregate signature on the data signature information to obtain aggregate signature information corresponding to the to-be-signed message. In the signature processing on the to-be-signed message, each signer needs to perceive all signers (for example, service nodes in a blockchain network) participating in the aggregate signature before participating in the aggregate signature to obtain the data signature information corresponding to the to-be-signed message.

For example, assuming that all signers participating in the aggregate signature include a service node <NUM>, a service node <NUM> and a service node <NUM> in the blockchain network, then for any one of the signers (for example, the service node <NUM>), after receiving the to-be-signed message, the signer is required to obtain interaction data (such as a key parameter R<NUM> generated by the service node <NUM> itself, a key parameter R<NUM> transmitted by the service node <NUM> and a key parameter R<NUM> transmitted by the service node <NUM>) from all the signers, so as to perform signature processing on the to-be-signed message to obtain the data signature information. Further prior art solutions are disclosed in documents <CIT>, <CIT> and <CIT>.

The foregoing aggregate signature scheme requires a relatively large amount of network interaction between the signers in the signature processing on the to-be-signed message, resulting in a high network complexity, a large occupied bandwidths and a low efficiency of the aggregate signature.

Embodiments of the present disclosure provide a data processing method, a data processing apparatus, a device and a storage medium, which can reduce network complexity of aggregate signature.

According to one aspect of the embodiments of the present disclosure, a data processing method is provided, performed by a first service node in a blockchain network, the method including:.

According to one aspect of the embodiments of the present disclosure, a data processing method is provided, performed by a second service node in a blockchain network, the method including:.

According to one aspect of the embodiments of the present disclosure, a data processing apparatus is provided, including:.

According to one aspect of the embodiments of the present disclosure, a computer device is provided, including: a processor and a memory.

The processor being connected to the memory, the memory being configured to store a computer program, and the computer program, when executed by the processor, causing the computer device to perform the method according to the embodiments of the present disclosure.

According to one aspect of the embodiments of the present disclosure, a computer-readable storage medium is provided, the computer-readable storage medium storing a computer program, the computer program being adapted to be loaded and executed by a processor to cause a computer device including the processor to perform the method according to the embodiments of the present disclosure.

According to one aspect of the embodiments of the present disclosure, a computer program product or a computer program is provided, the computer program product or the computer program including computer instructions, the computer instructions being stored in a computer-readable storage medium. A processor of a computer device reads the computer instructions from the computer-readable storage medium, and executes the computer instructions, so that the computer device performs the method according to the embodiments of the present disclosure.

In the embodiments of the present disclosure, after receiving the service data information transmitted by the first service node, the second service node in the blockchain network does not need to perceive an existence of another signer, but directly performs signature processing on the received service data information to obtain the data signature information to be returned to the first service node. The data signature information determined by the second service node may include the first key parameter and the second key parameter. The two key parameters are both related to the random parameter generated by the second service node, and there is no need to determine the first key parameter based on interaction data returned by all signers, thereby reducing network interaction. The random parameter is determined based on both the node private key of the second service node and the service data information. The first service node in the blockchain network receives from a plurality of second service nodes data signature information obtained by the plurality of second service nodes performing signature processing on the same service data information, performs signature verification on each obtained data signature information to obtain the signature verification result of each data signature information, and adds the obtained signature verification result to the verification result set associated with the blockchain network. The first service node may search the verification result set for the target signature verification results satisfying the valid verification condition, and count the quantity of the target signature verification results. In a case that the quantity satisfies the aggregate signature condition, the first service node may directly perform aggregate signature on the data signature information respectively corresponding to the target signature verification results. During the entire aggregate signature process, each signer does not need to perceive an existence of another signer, but directly performs signature processing on the received service data information, so as to reduce network interaction between signers in the signature process, thereby reducing network complexity of aggregate signature and improving efficiency of aggregate signature.

<FIG> is a schematic structural diagram of a blockchain node system according to an embodiment of the present disclosure. As shown in <FIG>, the blockchain node system may be a distributed system formed by connecting a plurality of nodes through network communication. The blockchain node system may include a plurality of nodes. The plurality of nodes may specifically be a node 10A, a node 10B, a node 10C,. , and a node 10N. In this embodiment of the present disclosure, each node (such as, the node 10A, the node 10B, the node 10C,. , or the node 10N) in a blockchain network may be collectively referred to as a blockchain node. It is to be understood that the blockchain node may be a server connected into the blockchain network, or may be a user terminal connected into the blockchain network. A specific form of the blockchain node is not limited herein.

It is to be understood that these blockchain nodes may be used for maintaining the same blockchain network, and a peer-to-peer (P2P) network may be formed between any two blockchain nodes in the blockchain network. The P2P network may adopt a P2P protocol, and the P2P protocol is an application-layer protocol running over a transmission control protocol (TCP).

A data processing method in this embodiment of the present disclosure may relate to a non-interactive aggregate signature scheme (for example, a Schnorr algorithm). The non-interactive aggregate signature scheme can effectively lower storage space, reduce network traffic, and shorten verification time, which is effective in scenarios with a relatively low signature frequency but a relatively high verification frequency. For example, the aggregate signature scheme may be applied to a consensus scenario, a multi-party collaboration scenario, a contract signing scenario, and the like. The aggregate signature herein is a type of multi-signature of aggregating, after obtaining a plurality of signature information obtained by a plurality of signers performing signature processing on a plurality of messages or the same message, the plurality of signature information into relatively short signature information, so as to obtain aggregate signature information. A verifier ensures validity of a received message through verifying the aggregate signature information.

For ease of understanding, in this embodiment of the present disclosure, one blockchain node may be selected in the blockchain node system shown in <FIG> as a first service node, for example, a node 10A. The first service node may serve as an aggregator participating in the aggregate signature. In addition, in this embodiment of the present disclosure, a node other than the first service node in the blockchain node system may be regarded as a second service node, and the second service node may be used for performing signature processing on service data information broadcast by the first service node, that is, the second service node may serve as a signer participating in the aggregate signature. The service data information broadcast by the first service node may be a transaction request message from a client, or may be a to-be-verified block obtained by performing packing processing on the transaction request message. The service data information is not limited herein. The client may include a social client, a multimedia client (for example, a video client), an entertainment client (for example, a game client), an education client, a livestreaming client and the like, and the client may be an independent client, or may be an embedded sub-client which is integrated in a client (such as a social client, an education client, or a multimedia client), which is not limited herein.

It is to be understood that a user terminal running a client may be directly or indirectly connected to the blockchain node (for example, the first service node) in the blockchain network through wired or wireless communication, to perform service data interaction, which is not limited in this embodiment of the present disclosure. The user terminal may include a smart terminal such as a smart phone, a tablet computer, a notebook computer, a desktop computer, a wearable device, a smart home or a head-mounted device. The first service node in this embodiment of the present disclosure may be a backend server corresponding to the client. The first service node may be an independent physical server, or may be a server cluster or a distributed system including a plurality of physical servers, or may be a cloud server providing basic cloud computing services, such as a cloud service, a cloud database, cloud computing, a cloud function, cloud storage, a network service, cloud communication, a middleware service, a domain name service, a security service, a content delivery network (CDN), big data, and an artificial intelligence platform.

In this embodiment of the present disclosure, the first service node may transmit the service data information to the second service nodes (that is, the signers) in the blockchain network, so that each second service node performs signature processing on the service data information. When receiving the service data information, the second service node does not need to perceive an existence of another signer, but obtains, based on a node private key of itself and the service data information, a random parameter used for generating a first key parameter and a second key parameter, thereby obtaining data signature information corresponding to the service data information. In this way, network interaction for the aggregate signature is reduced. After receiving the data signature information returned by the second service nodes, the first service node may perform signature verification on the data signature information, and count a quantity of target signature verification results satisfying a valid verification condition, and perform the aggregate signature on the data signature information respectively corresponding to the target signature verification results in a case that the quantity of the target signature verification results satisfies an aggregate signature condition. Since the network interaction between signers during a signature process is reduced, network complexity of the aggregate signature is reduced, thereby improving signature efficiency of the aggregate signature.

For ease of understanding, further, <FIG> is a schematic diagram of a scenario of performing data interaction according to an embodiment of the present disclosure. As shown in <FIG>, a node 20A may be a first service node in a blockchain network, that is, an aggregator participating in aggregate signature. For example, the node 20A may be the node 10A in the blockchain node system shown in <FIG>. A node 20B, a node 20C, a node 20D,. , and a node 20N may be second service nodes in the blockchain network. For example, the second service nodes may be nodes other than the node 10A in the blockchain node system shown in <FIG>.

The node 20A may obtain service data information to be transmitted to the second service node, so that the second service node performs signature processing on the service data information to obtain data signature information. The service data information herein may be directly transmitted by a user terminal running a client, or may be forwarded by other nodes in the blockchain network, which is not limited herein. The service data information may be an asset transfer message initiated by a user of the user terminal through the client, and the asset transfer message may be used for requesting a transfer of virtual assets such as bitcoins, ethers, game gold coins, game diamonds and electronic notes.

The data signature information generated by the second service node may include a first key parameter and a second key parameter. The first key parameter and the second key parameter are both related to a random parameter generated by the second service node. The random parameter is determined by the second service node based on both a node private key of the second service node and the service data information received by the second service node.

For example, after receiving service data information broadcast by the node 20A, the node 20B shown in <FIG> may generate, based on a node private key of the node 20B and the service data information, a random parameter (for example, a parameter r<NUM>) used for performing signature processing on the service data information. Further, the node 20B may generate a first key parameter (for example, a key parameter R<NUM>) based on the random parameter and a fixed parameter (for example, a parameter G) associated with a non-interactive aggregate signature rule. In addition, the node 20B may further generate a second key parameter (for example, a key parameter s<NUM>) based on the random parameter, the service data information and the node private key of the node 20B. In this case, the node 20B may determine, based on the first key parameter and the second key parameter, data signature information (for example, signature information <NUM>, that is <R<NUM>, s<NUM>>) to be fed back to the node 20A.

Further, after the node 20A receives the data signature information returned by the second service node, the node 20A may perform signature verification on the received data signature information based on the first key parameter and the second key parameter in the data signature information, to obtain a signature verification result, and add the signature verification result to a verification result set (for example, a verification result set 200x shown in <FIG>) associated with the blockchain network.

The node 20A may search the verification result set 200x for a signature verification result that satisfies a valid signature verification condition, and determine the signature verification result that satisfies the valid signature verification condition as a target signature verification result. The valid verification condition may be a signature verification success. For example, the node 20A may determine a first auxiliary parameter and a second auxiliary parameter based on the received data signature information and the non-interactive aggregate signature rule, so as to determine whether the first auxiliary parameter is consistent with the second auxiliary parameter. As shown in <FIG>, the target signature verification result found from the verification result set 200x by the node 20A may include a signature verification result <NUM>, a signature verification result <NUM>,. , and a signature verification result n. The signature verification result <NUM> may be a signature verification result obtained by the node 20A performing signature verification on data signature information <NUM> returned by the node 20B.

Therefore, the node 20A may count a quantity of target signature verification results. In a case that the quantity of the target signature verification results reaches a quantity threshold (for example, n) required by the aggregate signature condition, the node 20A may determine the quantity of the target signature verification results satisfies the aggregate signature condition. In this case, the node 20A may perform aggregate signature on data signature information corresponding to the n target signature verification results to obtain aggregate signature information. The quantity threshold n is a positive integer, and may be dynamically adjusted according to an actual requirement, which is not limited herein.

As shown in <FIG>, data signature information corresponding to the target signature verification results found by the node 20A may include signature information <NUM> (for example, <R<NUM>, s<NUM>>) corresponding to the signature verification result <NUM>, signature information <NUM> (for example, <R<NUM>, s<NUM>>) corresponding to the signature verification result <NUM>,. , and signature information n (for example, <Rn, sn>) corresponding to the signature verification result n. In a case that the quantity of the target signature verification results satisfies the aggregate signature condition, the node 20A may perform aggregate signature on the n data signature information to obtain the aggregate signature information (for example, <R, s>) shown in <FIG>. The aggregate key parameter R may be referred to as a first aggregate key parameter, and the aggregate key parameter s may be referred to as a second aggregate key parameter.

For example, in a multi-party collaboration scenario, a virtual asset may be jointly owned by multiple parties. For example, in a game, a warehouse game gold coin obtained by a camp may be set to be jointly managed by n (for example, <NUM>) users. The <NUM> users may include users having game identities such as a regiment commander, and a battalion commander in the camp. When the virtual asset need to be processed (for example, asset transfer), the <NUM> users having asset management permission are required to respectively perform signature processing on this virtual asset to obtain data signature information corresponding to this virtual asset. Further, the node 20A (for example, a node corresponding to the regiment commander) may collect the data signature information returned by the second service nodes. The second service nodes may be service nodes (for example, nodes corresponding to the battalion commander, the regiment commander, or the like) corresponding to the users having asset management permission for this virtual asset. In a case that data signature information respectively corresponding to <NUM> target signature verification results that satisfy the valid verification condition is collected by the node 20A, the node 20A may perform aggregate signature on the <NUM> pieces of data signature information.

Therefore, when obtaining data signature information broadcast by the node 20A, the second service node in this embodiment of the present disclosure does not need to perceive an existence of another signer but directly performs signature processing on the data signature information to obtain data signature information. Data signature information obtained by each of the second service nodes is returned to the node 20A, so that in a case that the quantity of collected data signature information respectfully corresponding to the target signature verification results satisfying the valid verification condition is high enough, the node 20A performs aggregate signature on all collected data signature information. With this method, a signer does not need to obtain interaction data from all other signers when performing signature processing on the service data information, thereby reducing data interaction in the network, reducing the network complexity of the aggregate signature and improving the signature efficiency of the aggregate signature.

For the specific implementation of the data processing method provided in this embodiment of the present disclosure, reference may be made to the following embodiments corresponding to <FIG>.

<FIG> is a schematic flowchart of a data processing method according to an embodiment of the present disclosure. As shown in <FIG>, the method may be performed by a first service node (that is, an aggregator participating in aggregate signature) in a blockchain network. The first service node may be a user terminal connected into the blockchain network, or may be a server connected into the blockchain network, which is not limited herein. For ease of understanding, in this embodiment of the present disclosure, the first service node is a server (for example, the node 10A in the blockchain node system shown in <FIG>), for example. The method may at least include the following step S101 to step S105.

S101: Obtain service data information, and transmit the service data information to a second service node.

Specifically, after receiving a service request transmitted by a user terminal, the first service node may obtain to-be-processed service data information and user signature information carried in the service request. The user signature information may be obtained by the user terminal performing signature processing on the to-be-processed service data information based on a user private key corresponding to the user terminal. Further, the first service node may obtain a user public key corresponding to the user private key, so as to perform signature verification on the user signature information based on the user public key, to obtain a user signature verification result. In a case that the user signature verification result indicates a signature verification success, the first service node may use the to-be-processed service data information as service data information to be transmitted to a second service node in a blockchain network.

For example, when a user (for example, a user A) corresponding to the user terminal wants to execute a transaction service (for example, an asset transfer service) on a client, the user may perform a trigger operation through the client. The trigger operation may be a contact operation such as clicking or long pressing, or a non-contact operation such as a voice or a gesture, which is not limited herein. Further, the user terminal may generate to-be-processed service data information associated with the client in response to the trigger operation. In this case, the user terminal may obtain a user private key of the user A, and perform signature processing on the to-be-processed service data information based on the user private key to obtain user signature information. Further, the user terminal may generate, based on the user signature information and the to-be-processed service data information, a service request to be transmitted to the first service node.

After receiving the service request transmitted by the user terminal, the first service node may obtain a user public key of the user A and perform signature verification on the user signature information in the service request to obtain a user signature verification result. In a case that the user signature verification result indicates a signature verification failure, the first service node may determine the received service request as an invalid request. In a case that the user signature verification result indicates a signature verification success, the first service node may determine the received service request as a valid request. In this case, the first service node may use the to-be-processed service data information in the service request as the service data information to be transmitted to the second service node in the blockchain network.

When the first service node broadcasts the service data information to the second service node in the blockchain network, to ensure the security of data transmission, the first service node may obtain a node public key of the second service node, so as to perform encryption processing on the service data information based on the node public key, to obtain encrypted data information. In this case, the first service node may transmit the encrypted data information to the second service node, so that the second service node performs decryption processing on the encrypted data information based on the node private key of the second service node itself, so as to obtain the data signature information.

For ease of understanding, further, <FIG> is a schematic diagram of a scenario of broadcasting service data information to a second service node according to an embodiment of the present disclosure. As shown in <FIG>, a node 40A may be a first service node in a blockchain network. For example, the node 40A may be the node 10A in the blockchain node system shown in <FIG>. A node 40B may be a second service node in the blockchain network, and may be used for performing signature processing on service data information. The node 40B may be, for example, the node 10B, i.e., a blockchain node other than the node 10A in the blockchain node system shown in <FIG>. A user terminal 400a may be a user terminal connected to a same network as the node 40A, and may be used for transmitting a service request carrying the service data information to the node 40A.

A user of the user terminal 400a may perform a trigger operation (for example, a click operation) through a client, to cause the user terminal 400a to generate, in response to the trigger operation, to-be-processed service data information (for example, service data information <NUM> shown in <FIG>) to be broadcast in the blockchain network. Further, the user terminal 400a may perform signature processing on the service data information <NUM> based on a user private key corresponding to the user terminal 400a, to obtain user signature information of the service data information <NUM>. It is to be understood that the user terminal 400a may perform hash calculation on the service data information <NUM> to obtain abstract information h of the service data information <NUM>. Further, the user terminal 400a may perform digital signature on the abstract information h based on the user private key of the user terminal 400a, to obtain the user signature information. In this case, the user terminal 400a may generate the service request shown in <FIG> based on the user signature information and the service data information <NUM>, and transmit the service request to the node 40A shown in <FIG>.

When receiving the service request, the node 40A may obtain the service data information <NUM> and the user signature information from the service request. Further, the node 40A may obtain a user public key corresponding to the user private key of the user terminal 400a, so as to perform signature verification on the user signature information based on the user public key, to obtain a user signature verification result. It is to be understood that the node 40A may perform signature verification on the digital signature in the user signature information based on the user public key to obtain the abstract information h of the service data information <NUM>, and may utilize a hash algorithm that is the same as that used by the user terminal 400a to perform hash calculation on the service data information <NUM> to obtain abstract information H of the service data information <NUM>. Further, the node 40A may compare the abstract information h obtained through the signature verification with the abstract information H obtained through the hash calculation, to obtain the user signature verification result. If the user signature verification result indicates that the abstract information h is different from the abstract information H, a signature verification failure of the node 40A can be determined, that is, the service request is an invalid request. If the user signature verification result indicates that the abstract information h is the same as the abstract information H, a signature verification success of the node 40A can be determined, that is, the service request is a valid request.

In a case that the user signature verification result indicates that the service request is a valid request, the node 40A may use the service data information <NUM> as service data information to be transmitted to the second service node in the blockchain network. In a process that the node 40A transmits the service data information <NUM> to the node 40B, to ensure the security of data transmission, the node 40A may obtain a node public key of the node 40B, so as to perform encryption processing on the service data information <NUM> based on the node public key of the node 40B to obtain encrypted data information. After the node 40B receives the encrypted data information transmitted by the node 40A, the node 40B may perform decryption processing on the encrypted data information based on the node private key of the node 40B itself, so as to obtain the service data information <NUM>.

S102: Receive data signature information returned by the second service node.

Further, after the second service node obtains the data signature information transmitted by the first service node, the second service node may obtain a non-interactive aggregate signature rule indicated by an aggregate signature condition and perform signature processing on the data signature information, to obtain data signature information of the service data information.

In this embodiment of the present disclosure, the same data signature information is broadcast by the first service node to each of the second service nodes in the blockchain network. Therefore, the first service node may receive data signature information for the same message returned by a plurality of the second service nodes. The non-interactive aggregate signature rule may include a plurality of protocols. In this embodiment of the present disclosure, a Schnorr algorithm is taken as an example to illustrate the principle of digital signature based on an elliptic curve.

The Schnorr algorithm is a type of public key electronic signature scheme, which can be used for efficient aggregate signature because of its feature of linear computation. In a Schnorr algorithm process, E represents an elliptic curve defined in a finite field, points on E form a cyclic group having an order of a prime number n. <MAT> represents a ring of integers modulo n, and a value range of an element of <MAT> is {<NUM>, <NUM>, <NUM>,. , n-<NUM>}; and <MAT> represents a multiplicative group of integers modulo n, and a value range of an element of <MAT> is {<NUM>, <NUM>,. , n-<NUM>}. In this embodiment of the present disclosure, a random parameter may be determined based on both a node private key of a signer (for example, the second service node) and the service data information. Optionally, the random parameter may further be obtained through a calculation on another node private key (or a non-public value bound to the node private key) and the service data information. The non-public value herein refers to a mapping operation on the node private key. Certainly, the random parameter may be generated by other methods, which is not limited herein.

When performing signature processing on the service data information based on the non-interactive aggregate signature rule, in this embodiment of the present disclosure, the random parameter k ∈ <MAT> may be selected as a node private key of a blockchain node in the blockchain network. For example, a node private key of a blockchain node (for example, a node i) in the blockchain network may be represented as ki, where ki ∈ {k<NUM>, k<NUM>,. Based on the non-interactive aggregate signature rule, in this embodiment of the present disclosure, a product of the node private key of the blockchain node and a fixed parameter G may be used as a node public key of the node. The fixed parameter G herein may be related to the non-interactive aggregate signature rule, and the fixed parameter may refer to one fixed point on the elliptic curve E, and may be a generator. For example, a node public key of the blockchain node (for example, the node i) in the blockchain network may be represented as Pi (that is Pi=kiG), where Pi ∈ {P<NUM>, P<NUM>,.

Specifically, in this embodiment of the present disclosure, the non-interactive aggregate signature rule may be referred to the following formulas (<NUM>) to (<NUM>). According to the non-interactive aggregate signature rule, the signer (that is the second service node, for example, the node i) may perform signature processing on the service data information to obtain data signature information. A specific calculation formula of the data signature information <Ri, si> may be expressed as the following formulas (<NUM>) to (<NUM>): <MAT>
where ri represents a random parameter generated by the node i, ki represents a node private key of the node i, m represents a to-be-signed message (for example, the service data information), prime number n may be an order, <MAT> is a multiplicative group of integers modulo n, and a value range of an element of <MAT> is {<NUM>, <NUM>,. , n-<NUM>}. <MAT>
where Ri represents a first key parameter determined by the node i, and G represents a fixed parameter associated with the non-interactive aggregate signature rule. <MAT>
where m represents the to-be-signed message, e represents a hash value (for example, a verification hash value corresponding to the service data information) corresponding to the to-be-signed message determined by the node i, <MAT> refers to a ring of integers modulo n, and a value range of an element of <MAT> is {<NUM>, <NUM>, <NUM>,. , n-<NUM>}. <MAT>
where si represents a second key parameter determined by the node i, ri represents the random parameter generated by the node i, ki represents the node private key of the node i, and e represents the hash value corresponding to the to-be-signed message determined by the node i.

In the non-interactive aggregate signature rule, in a case that an aggregator (that is the first service node, for example, a node p) determines that a quantity n of target signature verification results satisfies an aggregate signature condition, the aggregator may perform aggregate signature on data signature information (that is n pieces of data signature information) respectively corresponding to the target signature verification results to obtain aggregate signature information. A specific calculation method through which the node p determines the aggregate signature information <R, s> may be expressed as the following formulas (<NUM>) to (<NUM>): <MAT>
where Ri represents a first key parameter in the data signature information returned by the node i, and R represents an aggregate key parameter (that is, a first aggregate key parameter) obtained by the node p performing merging processing on the obtained n first key parameters. <MAT>
where si represents a second key parameter in the data signature information returned by the node i, and s represents an aggregate key parameter (that is, a second aggregate key parameter) obtained by the node p performing merging processing on the obtained n second key parameters.

In the non-interactive aggregate signature rule, a specific formula through which a signature verifier (that is, the second service node) performs signature verification (that is verifying whether S<NUM> is equal to S<NUM>) on the received aggregate signature information <R, s> may be expressed as the following formulas (<NUM>) to (<NUM>): <MAT>
where m represents the to-be-signed message, and E represents a hash value (for example, a message hash value corresponding to the service data information) of the to-be-signed message determined by the signature verifier. <MAT>
where s represents the second aggregate key parameter, G represents the fixed parameter associated with the non-interactive aggregate signature rule, and S<NUM> represents an aggregate auxiliary parameter (that is a first aggregate auxiliary parameter) used by the signature verifier to perform signature verification on the to-be-signed message. <MAT>
where R represents the first aggregate key parameter, E represents the hash value of the to-be-signed message determined by the signature verifier, Pi represents the node public key of the signer (for example, the node i), and S<NUM> represents the aggregate auxiliary parameter (that is a second aggregate auxiliary parameter) used by the signature verifier to perform signature verification on the to-be-signed message.

After obtaining the service data information transmitted by the first service node in the blockchain network, the second service node (for example, the node i) may perform splicing processing on the node private key of the second service node itself and the service data information, to obtain spliced information. Further, the node i may obtain a hash determination rule in the non-interactive aggregate signature rule, so as to determine a spliced hash value corresponding to the spliced information based on the hash determination rule shown in the foregoing formula (<NUM>), and use the spliced hash value as a random parameter (for example, the parameter ri) used for performing signature processing on the service data information.

Further, the node i may obtain a fixed parameter (for example, G) associated with the non-interactive aggregate signature rule, so as to use a first product of the random parameter and the fixed parameter as a first key parameter (for example, the key parameter Ri) according to the foregoing formula (<NUM>). In addition, the second service node may further determine a second product of the node private key and a verification hash value corresponding to the service data information, based on formula (<NUM>) and formula (<NUM>) in the non-interactive aggregate signature rule, so as to perform summation processing on the second product and the random parameter to obtain a second key parameter (for example, the key parameter si). In this case, the second service node may determine, based on the first key parameter and the second key parameter, data signature information <Ri, si> used for performing signature processing on the service data information.

In this embodiment of the present disclosure, the random parameter generated when the second service node performs signature processing on the service data information is determined based on both the node private key of the second service node and the service data information. In this way, it is ensured not only that different random parameters are generated when performing signature processing on different to-be-signed messages so as to protect the node private key, but also that the same data signature information is obtained when performing signature processing on the same to-be-signed message by using the same node private key. For example, when a plurality of blockchain nodes (for example, nodes belonging to the same institution) in the blockchain network share the same node private key, blocks are signed respectively and stored in a blockchain in the blockchain network, so as to effectively ensure consistency of blockchain data stored in each node. The same random parameter is used when signing the same message, that is, the difference between the random parameters is always <NUM>. Therefore, when each signer (that is the second service node) performs aggregate signature based on the non-interactive aggregate signature rule, the determination of the verification hash value e corresponding to the service data information does not rely on receiving the key parameter R, but acquiring the key parameter R by directly performing hash calculation on the service data information, so as to reduce complexity of verifying aggregate signature information.

S103: Perform signature verification on the data signature information based on the first key parameter and the second key parameter in the data signature information, to obtain a signature verification result, and add the signature verification result to a verification result set associated with the blockchain network.

Specifically, after receiving the data signature information returned by the second service node, the first service node may perform signature verification on the data signature information based on the first key parameter and the second key parameter in the data signature information, to obtain the signature verification result. The first service node may add the signature verification result to a valid result set in the verification result set, in a case that the signature verification result is a signature verification success result. The first service node may add the signature verification result to an invalid result set in the verification result set, in a case that the signature verification result is a signature verification failure result.

When the first service node receives the data signature information returned by the second service node, a first auxiliary parameter (for example, the auxiliary parameter S<NUM>) may be obtained based on the foregoing formula (<NUM>) according to the second key parameter in the data signature information and the fixed parameter. Further, the first service node may obtain a message hash value (for example, the hash value E) corresponding to the service data information based on the formula (<NUM>) in the foregoing non-interactive aggregate signature rule, and after obtaining the node public key of the second service node, obtain a second auxiliary parameter (for example, the auxiliary parameter S<NUM>) based on the node public key, the first key parameter and the message hash value. In this case, the first service node may determine the signature verification result based on the first auxiliary parameter and the second auxiliary parameter. A specific verification process may be expressed as the following formula (<NUM>): <MAT>
where the first service node may compare the first auxiliary parameter with the second auxiliary parameter to obtain a comparison result. In a case that the comparison result indicates that the first auxiliary parameter is consistent with the second auxiliary parameter, the first service node may obtain the signature verification success result corresponding to the data signature information, that is, the signature verification on the first service node succeeds. In a case that the comparison result indicates that the first auxiliary parameter is inconsistent with the second auxiliary parameter, the first service node may obtain the signature verification failure result corresponding to the data signature information, that is, the signature verification on the first service node fails. The first service node may determine the signature verification success result or the signature verification failure result as the signature verification result.

For ease of understanding, further, <FIG> is a schematic diagram of a scenario of performing signature verification on data signature information according to an embodiment of the present disclosure. As shown in <FIG>, a node 50A in this embodiment of the present disclosure may be a first service node used for obtaining service data information to be broadcast to a blockchain network. For example, the node 50A may be the node 10A in the blockchain network shown in <FIG>. A node 50B in this embodiment of the present disclosure may be a second service node in the blockchain network, that is, a signer performing signature processing on service data information. The node 50B may be a blockchain node other than the first service node in the blockchain network, such as the node 10B in the blockchain node system shown in <FIG>.

As shown in <FIG>, after receiving the service data information broadcast by the node 50A, the node 50B in this embodiment of the present disclosure may perform signature processing on the service data information to obtain data signature information (for example, data signature information 5a shown in <FIG>) of the service data information. The data signature information 5a may include a first key parameter (for example, the key parameter R<NUM> shown in <FIG>) and a second key parameter (for example, the key parameter s<NUM> shown in <FIG>). The key parameter R<NUM> is determined by the node 50B based on a random parameter and a fixed parameter (for example, G) associated with a non-interactive aggregate signature rule, and the key parameter s<NUM> is determined by the node 50B based on the random parameter, a node private key of the node 50B and a verification hash value (for example, the hash value e) corresponding to the service data information, where the verification hash value is determined by the node 50B based on the service data information and the non-interactive aggregate signature rule.

The node 50B transmits the data signature information 5a to the node 50A, to cause the node 50A to obtain, based on the foregoing formula (<NUM>) using the key parameter s<NUM> in the data signature information 5a and the fixed parameter, a first auxiliary parameter (for example, the auxiliary parameter S<NUM>) used for performing signature verification on the data signature information 5a. The node 50A may further determine a message hash value (for example, a hash value E) corresponding to the service data information based on the foregoing formula (<NUM>) in the non-interactive aggregate signature rule, and after obtaining a node public key (for example, P<NUM>) of the node 50B, obtain a second auxiliary parameter (for example, an auxiliary parameter S<NUM>) used for performing signature verification on the data signature information 5a, based on the node public key P<NUM>, the key parameter R<NUM> and the message hash value. In this case, the node 50A may determine a signature verification result (for example, the signature verification result 5b shown in <FIG>) corresponding to the data signature information 5a based on the auxiliary parameter S<NUM> and the auxiliary parameter S<NUM>.

The node 50A may compare the auxiliary parameter S<NUM> with the auxiliary parameter S<NUM> to obtain a comparison result. In a case that the comparison result indicates that the auxiliary parameter S<NUM> is consistent with the auxiliary parameter S<NUM>, the node 50A may determine a signature verification success, that is, the signature verification result 5b corresponding to the data signature information 5a is a signature verification success result. In this case, the node 50A may add the signature verification result 5b to a valid result set (for example, the valid result set <NUM>) in a verification result set 500x shown in <FIG>. In a case that the comparison result indicates that the auxiliary parameter S<NUM> is inconsistent with the auxiliary parameter S<NUM>, the node 50A may determine a signature verification failure, that is, the signature verification result 5b corresponding to the data signature information 5a is a signature verification failure result. In this case, the node 50A may add the signature verification result 5b to an invalid result set (for example, an invalid result set <NUM> shown in <FIG>) in the verification result set 500x.

S104: Search the verification result set for a signature verification result that satisfies a valid signature verification condition, and determine the signature verification result that satisfies the valid signature verification condition as a target signature verification result.

Specifically, the first service node may search the verification result set for a signature verification result that satisfies a valid signature verification condition, so as to determine the found signature verification result that satisfies the valid signature verification condition as a target signature verification result. The signature verification result that satisfies the valid verification condition may be a signature verification success result, that is, if the first auxiliary parameter and the second auxiliary parameter, determined by the first service node based on the received data signature information and the non-interactive aggregate signature rule, are consistent to each other, the signature verification result of the data signature information is the signature verification result that satisfies the valid verification condition.

In a case that the verification result set associated with the blockchain network includes the valid result set and the invalid result set, in this embodiment of the present disclosure, the signature verification results in the valid result set may be directly determined as the target signature verification results. As shown in <FIG>, the target signature verification results determined by the node 50A (that is, the first service node) may be the signature verification results in the valid result set <NUM>.

S105: Perform aggregate signature on data signature information corresponding to the target signature verification results in a case that it is statistically determined that a quantity of the target signature verification results satisfies an aggregate signature condition.

A quantity of second service nodes in the blockchain network is N, where N being a positive integer; one signature verification result in the verification result set is determined by performing signature verification on one piece of data signature information returned by one second service node; and one piece of data signature information may include a first key parameter and a second key parameter. The first service node may obtain a quantity threshold in the aggregate signature condition, and count the quantity of the target signature verification results in the verification result set. In a case that the quantity reaches the quantity threshold, the first service node may determine that the quantity satisfies the aggregate signature condition. The quantity may be n, n being a positive integer less than or equal to N. In this case, the first service node may obtain the first key parameter and the second key parameter from each of n pieces of data signature information corresponding to n target signature verification results. Further, the first service node may perform merging processing on the n first key parameters and use the merged n first key parameters as a first aggregate key parameter, and perform merging processing on the n second key parameters and use the merged n second key parameters as a second aggregate key parameter. In this case, the first service node may perform aggregate signature on the first aggregate key parameter and the second aggregate key parameter based on a non-interactive aggregate signature rule indicated by the aggregate signature condition.

As shown in <FIG>, the node 20A (that is the first service node) may obtain the quantity threshold in the aggregate signature condition. In a case that the quantity of the target signature verification results counted by the node 20A reaches the quantity threshold (for example, <NUM>), the node 20A may determine the quantity satisfies the aggregate signature condition. In this case, the node 20A may perform aggregate signature on the data signature information respectively corresponding to the counted target signature verification results to obtain aggregate signature information corresponding to the service data information.

Assuming that <NUM> target signature verification results counted by the node 20A and satisfying the aggregate signature condition include a signature verification result <NUM>, a signature verification result <NUM>, a signature verification result <NUM>, and a signature verification result <NUM>. Data signature information corresponding to the signature verification result <NUM> is signature information <NUM> <R<NUM>, s<NUM>>, data signature information corresponding to the signature verification result <NUM> is signature information <NUM> <R<NUM>, s<NUM>>, data signature information corresponding to the signature verification result <NUM> is signature information <NUM> <R<NUM>, s<NUM>> and data signature information corresponding to the signature verification result <NUM> is signature information <NUM> <R<NUM>, s<NUM>>.

From the <NUM> pieces of data signature information respectively corresponding to the <NUM> target signature verification results, the node 20A may obtain the first key parameters (such as, a key parameter R<NUM>, a key parameter R<NUM>, a key parameter R<NUM>, and a key parameter R<NUM>) from the <NUM> pieces of data signature information and obtain the second key parameters (such as, a key parameter s<NUM>, a key parameter s<NUM>, a key parameter s<NUM>, and a key parameter s<NUM>) respectively from the <NUM> pieces of data signature information. Further, the node 20A may perform merging processing on the <NUM> first key parameters and use a result of the merging processing as a first aggregate key parameter (for example, the aggregate key parameter R), and perform merging processing on the <NUM> second key parameters and use a result of the merging processing as a second aggregate key parameter (for example, the aggregate key parameter s). In this case, the first service node may perform aggregate signature on the aggregate key parameter R and the aggregate key parameter s based on a non-interactive aggregate signature rule indicated by the aggregate signature condition, to obtain aggregate signature information <R, s>.

In this embodiment of the present disclosure, after receiving the service data information transmitted by the first service node, the second service node in the blockchain network does not need to perceive an existence of another signer, but directly performs signature processing on the received service data information to obtain the data signature information to be returned to the first service node. The data signature information determined by the second service node may include the first key parameter and the second key parameter. The two key parameters are both related to the random parameter generated by the second service node, and there is no need to determine the first key parameter based on interaction data returned by all signers, thereby reducing network interaction. The random parameter is determined based on both the node private key of the second service node and the service data information. The first service node in the blockchain network receives from a plurality of second service nodes data signature information obtained by the plurality of second service nodes performing signature processing on the same service data information, performs signature verification on each piece of obtained data signature information to obtain the signature verification result for each piece of data signature information, and adds the obtained signature verification result to the verification result set associated with the blockchain network. The first service node may search the verification result set for the target signature verification results satisfying the valid verification condition, and count the quantity of the target signature verification results. In a case that the quantity satisfies the aggregate signature condition, the first service node may directly perform aggregate signature on the data signature information respectively corresponding to the target signature verification results. During the entire aggregate signature process, each signer does not need to perceive an existence of another signer, but directly performs signature processing on the received service data information, so as to reduce network interaction in the signature process of the signer, thereby reducing network complexity of aggregate signature and improving efficiency of aggregate signature.

Further, <FIG> is a schematic flowchart of a data processing method according to an embodiment of the present disclosure. As shown in <FIG>, the method may be jointly performed by a first service node and a second service node in a blockchain network. The first service node may be an aggregator participating in aggregate signature. For example, the first service node may be the node 10A in the blockchain network shown in <FIG>. The second service node may be a signer participating in aggregate signature, and may be a blockchain node other than the first service node in the blockchain network. For example, the second service node may be the node 10B in the blockchain network shown in <FIG>. The method at least includes the following steps S201 to S209.

S201: The first service node transmits obtained service data information to the second service node.

S202: After receiving the service data information transmitted by the first service node, based on a node private key of the second service node and the service data information, the second service node generates a random parameter used for performing signature processing on the service data information.

S203: The second service node generates a first key parameter based on the random parameter and a fixed parameter, generates a second key parameter based on the random parameter, the service data information and the node private key, and determines data signature information based on the first key parameter and the second key parameter.

S204: The second service node transmits the data signature information to the first service node.

S205: After receiving the data signature information returned by the second service node, the first service node performs signature verification on the data signature information based on the first key parameter and the second key parameter in the data signature information, to obtain a signature verification result, and adds the signature verification result to a verification result set associated with the blockchain network.

S206: The first service node searches the verification result set for signature verification results satisfying a valid signature verification condition, and determines the signature verification results satisfying the valid signature verification condition as a target signature verification results.

S207: The first service node performs aggregate signature on data signature information respectively corresponding to the target signature verification results if determining that a quantity of the target signature verification results satisfies an aggregate signature condition.

For the specific implementation of step S201 to step S207, reference may be made to the description about step S101 to step S105 in the embodiment corresponding to <FIG>, and details are not described herein again.

S208: The first service node transmits the aggregate signature information obtained by the aggregate signature to the second service node.

The aggregate signature information may be obtained by the first service node through performing aggregate signature on the data signature information respectively corresponding to the target signature verification results. The target signature verification results herein may be signature verification results satisfying the valid verification condition and found from the verification result set by the first service node. Each signature verification result is determined by the first service node through performing signature verification on a piece of data signature information returned by a second service node. The aggregate signature information may include a first aggregate key parameter (for example, the aggregate key parameter R shown in <FIG>) and a second aggregate key parameter (for example, the aggregate key parameter s shown in <FIG>).

S209: When receiving the aggregate signature information, the second service node performs signature verification on the aggregate signature information to obtain an aggregate verification result.

Specifically, after obtaining the aggregate signature information transmitted by the first service node, the second service node may obtain node public keys of the second service nodes respectively associated with the target signature verification results, and perform merging processing on the obtained node public keys to obtain a target public key. Further, the second service node may obtain a first aggregate auxiliary parameter based on the second aggregate key parameter and a fixed parameter associated with a non-interactive aggregate signature rule. In addition, the second service node may obtain, based on the non-interactive aggregate signature rule, a data hash value corresponding to the service data information, so as to obtain a second aggregate auxiliary parameter based on the target public key, the data hash value and the first aggregate key parameter. The second service node may verify the aggregate signature information as valid in a case that the first aggregate auxiliary parameter is consistent with the second aggregate auxiliary parameter. Optionally, the second service node may verify the aggregate signature information as invalid in a case that the first aggregate auxiliary parameter is inconsistent with the second aggregate auxiliary parameter.

As shown in <FIG>, the aggregate signature information is generated by the node 20A (that is the first service node) based on the data signature information respectively corresponding to the target signature verification results after determining that the quantity of the target signature verification results satisfies the aggregate signature condition. For example, assuming that the data signature information respectively corresponding to the target signature verification results counted by the node 20A includes signature information <NUM> returned by the node 20B, signature information <NUM> returned by the node 20C, signature information <NUM> returned by the node 20D, and signature information <NUM> returned by the node 20E, the node 20A may determine the aggregate signature information according to the signature information <NUM>, the signature information <NUM>, the signature information <NUM> and the signature information <NUM>.

When the second service node (for example, the node 20B) in the blockchain network obtains the aggregate signature information broadcast by the node 20A, the node 20B may obtain a node public key (for example, P<NUM>) of the node 20B, a node public key (for example, P<NUM>) of the node 20C, a node public key (for example, P<NUM>) of the node 20D, and a node public key (for example, P<NUM>) of the node 20E, so as to perform merging processing on the obtained <NUM> public keys to obtain a target public key (that is, an aggregated public key).

Further, the node 20B may obtain a first aggregate auxiliary parameter (for example, an aggregate auxiliary parameter S<NUM>) used for performing signature verification on the aggregate signature information, according to the formula (<NUM>) in the non-interactive aggregate signature rule, the second aggregate key parameter (for example, the aggregate key parameter s) and a fixed parameter (for example, G) associated with the non-interactive aggregate signature rule. In addition, the node 20B may obtain a data hash value (for example, the hash value E) corresponding to the service data information based on formula (<NUM>) and formula (<NUM>) in the non-interactive aggregate signature rule, so as to obtain a second aggregate auxiliary parameter (for example, an aggregate auxiliary parameter S<NUM>) used for performing signature verification on the aggregate signature information, based on the target public key, the data hash value and the first aggregate key parameter. The second service node may verify the aggregate signature information as valid in a case that the first aggregate auxiliary parameter is consistent with the second aggregate auxiliary parameter. The second service node may verify the aggregate signature information as invalid in a case that the first aggregate auxiliary parameter is inconsistent with the second aggregate auxiliary parameter.

In a scenario of performing aggregate signature on a block transaction, the service data information received by the second service node may be a to-be-verified block including a plurality of transaction request messages. In this case, each signer may perform signature processing on each of the transaction request messages in the to-be-verified block to obtain data signature information for each of transaction request message. During performing signature verification on the aggregate signature information, the second service node may determine a second aggregate auxiliary parameter corresponding to the aggregate signature information. For a calculation formula of the second aggregate auxiliary parameter, reference may be made to formula (<NUM>). <MAT>
where m represents a quantity of messages of a to-be-signed message, and n represents a quantity of signers participating in the aggregate signature. <MAT> represents an aggregate auxiliary parameter used for performing signature verification on the to-be-signed message (for example, a transaction request message j), Ej represents a hash value of the to-be-signed message (for example, the transaction request message j) determined by a signature verifier, and Pi represents a node public key of a signer (for example, a node i).

Different to-be-signed messages may be included in the to-be-verified block. As a result, different verification hash values (that is, the hash value e) respectively corresponding to the to-be-signed messages are determined according to the formula (<NUM>) in the non-interactive aggregate signature rule. Correspondingly, when performing verification on the aggregate signature information, calculation of <MAT> in the formula (<NUM>) cannot be optimized, but does not affect aggregation of signatures. In a blockchain, assuming a block includes <NUM> transaction request messages and each transaction request message has its own signature information, after packing the <NUM> transaction request messages into a block, the blockchain node (for example, the first service node) having a packing function may merge these signature information into total signature information (that is, the aggregate signature information). Since a consensus node in the blockchain network needs to pay attention to whether the signature information of each of transaction request messages is correct when performing consensus on the packed block, the verification efficiency is not much different from efficiency of verification one by one, but the quantity of signatures is greatly reduced, which can save a large amount of storage space and network traffic.

It is to be understood that the aggregate signature scheme in the embodiment of the present disclosure can effectively lower storage space, reduce network traffic, and shorten verification time, which is very efficient for scenarios with a low signature frequency but a high verification frequency. For example, in a multi-party collaboration (for example, the signer is fixed) scenario, the node public key of each of the signers may be simply merged into an aggregated public key (that is the target public key), which is represented as <MAT>. For example, when a virtual asset is owned by multiple parties, the owners of the virtual asset may have the aggregated public key of the multiple parties. When processing (for example, performing asset transfer transaction) the virtual asset, the aggregator (that is the first service node) is required to perform aggregate signature on the data signature information from all of the signers (for example, the second service nodes). During the whole aggregate signature processing, each signer does not need to perceive the existence of another signer but directly perform signature by itself, and then one of the parties (for example, the first service node) collects data signature information and performs aggregate signature in a case that an aggregate signature condition is satisfied. The verification is performed by calculation on the aggregate signature information and the aggregated public key. In a consensus processing for the service data information of the transaction in the blockchain network, the transaction is propagated in the blockchain network so that a plurality of blockchain nodes stores the transaction. Therefore, the transaction may be verified at any time, that is, the verification frequency is high. In this case, using the aggregated signature scheme can lower storage space, reduce network traffic, and shorten verification time, thereby improving the overall performance of the blockchain system.

Further, <FIG> is a schematic structural diagram of a data processing apparatus according to an embodiment of the present disclosure. A data processing apparatus <NUM> may be a computer program (including program code) run on a computer device. For example, the data processing apparatus <NUM> is application software. The data processing apparatus <NUM> may be used for performing steps corresponding to the method provided in this embodiment of the present disclosure. As shown in <FIG>, the data processing apparatus <NUM> may be a first service node run in a blockchain network. The first service node may be the node 20A in the embodiment shown in <FIG>. The data processing apparatus <NUM> may include: a service information obtaining module <NUM>, a signature information receiving module <NUM>, a verification result adding module <NUM>, a verification result searching module <NUM> and an aggregate signature module <NUM>.

The service information obtaining module <NUM> is configured to obtain service data information and broadcast the service data information to second service nodes, the second service nodes being nodes other than the first service node in the blockchain network.

The service information obtaining module <NUM> includes: a user signature information obtaining unit <NUM>, a user signature verification result determination unit <NUM> and a service information determination unit <NUM>.

The user signature information obtaining unit <NUM> is configured to obtain, after receiving a service request transmitted by a user terminal, to-be-processed service data information and user signature information carried in the service request, the user signature information being obtained by a user private key corresponding to the user terminal through performing signature processing on the to-be-processed service data information.

The user signature verification result determination unit <NUM> is configured to obtain a user public key corresponding to the user private key, and perform signature verification on the user signature information based on the user public key, to obtain a user signature verification result.

The service information determination unit <NUM> is configured to determining the to-be-processed service data information as the service data information in a case that the user signature verification result indicates a signature verification success.

For the specific implementation of the user signature information obtaining unit <NUM>, the user signature verification result determination unit <NUM> and the service information determination unit <NUM>, reference may be made to the description about step S101 in the embodiment shown in <FIG>, and details are not described herein again.

The signature information receiving module <NUM> is configured to receive data signature information returned by each of the second service nodes, the data signature information being obtained by the second service node through performing signature processing on the service data information; the data signature information including a first key parameter and a second key parameter; the first key parameter and the second key parameter both being related to a random parameter determined by the second service node; the random parameter being determined by the second service node based on both a node private key and the service data information.

The signature information receiving module <NUM> includes: a node public key obtaining unit <NUM>, an encryption processing unit <NUM> and an encrypted information transmitting unit <NUM>.

The node public key obtaining unit <NUM> is configured to obtain, for each of the second service nodes, a node public key of the second service node.

The encryption processing unit <NUM> is configured to perform encryption processing on the service data information based on the node public key, to obtain encrypted data information.

The encrypted information transmitting unit <NUM> is configured to transmit the encrypted data signature information to the second service node.

For the specific implementation of the node public key obtaining unit <NUM>, the encryption processing unit <NUM>, and the encrypted information transmitting unit <NUM>, reference may be made to the description about step S102 in the embodiment shown in <FIG>, and details are not described herein again. The verification result adding module <NUM> is configured to perform signature verification on the data signature information based on the first key parameter and the second key parameter to obtain a signature verification result, and add the signature verification result to a verification result set associated with the blockchain network.

The verification result set includes a valid result set and an invalid result set.

The verification result adding module <NUM> includes: a signature verification unit <NUM>, a first adding unit <NUM>, and a second adding unit <NUM>.

The signature verification unit <NUM> is configured to perform signature verification on the data signature information based on the first key parameter and the second key parameter, to obtain the signature verification result.

The first key parameter is determined by the second service node based on the random parameter and a fixed parameter associated with a non-interactive aggregate signature rule; the second key parameter is determined by the second service node based on the random parameter, the node private key and a verification hash value; and the verification hash value is determined by the second service node based on the service data information and the non-interactive aggregate signature rule.

The signature verification unit <NUM> includes: a first auxiliary parameter determination subunit <NUM>, a second auxiliary parameter determination subunit <NUM>, and a signature verification result determination subunit <NUM>.

The first auxiliary parameter determination subunit <NUM> is configured to obtain a first auxiliary parameter based on the second key parameter and the fixed parameter.

The second auxiliary parameter determination subunit <NUM> is configured to obtain, based on the non-interactive aggregate signature rule, a message hash value corresponding to the service data information, and obtain a second auxiliary parameter based on a node public key of the second service node, the first key parameter and the message hash value.

The signature verification result determination subunit <NUM> is configured to determine the signature verification result based on the first auxiliary parameter and the second auxiliary parameter.

The signature verification result determination subunit <NUM> is specifically configured to:.

For the specific implementation of the first auxiliary parameter determination subunit <NUM>, the second auxiliary parameter determination subunit <NUM>, and the signature verification result determination subunit <NUM>, reference may be made to the description of the signature verification result in the embodiment shown in <FIG>, and details are not described herein again.

The first adding unit <NUM> is configured to add the signature verification result to the valid result set in the verification result set, in a case that the signature verification result is the signature verification success result.

The second adding unit <NUM> is configured to add the signature verification result to the invalid result set in the verification result set, in a case that the signature verification result is the signature verification failure result.

For the specific implementation of the signature verification unit <NUM>, the first adding unit <NUM>, and the second adding unit <NUM>, reference may be made to the description about step S103 in the embodiment shown in <FIG>, and details are not described herein again.

The verification result searching module <NUM> is configured to search the verification result set for signature verification results satisfying a valid signature verification condition, and determine the signature verification results satisfying the valid signature verification condition as target signature verification results.

The aggregate signature module <NUM> is configured to perform aggregate signature on the data signature information respectively corresponding to the target signature verification results if determining that a quantity of the target signature verification results satisfies an aggregate signature condition.

The quantity of the second service nodes in the blockchain network is N, where N is a positive integer; each signature verification result in the verification result set is determined by performing signature verification on a piece of data signature information returned by one of the N second service nodes; and each piece of data signature information includes a first key parameter and a second key parameter.

The aggregate signature module <NUM> includes: a quantity calculation unit <NUM>, a condition satisfying unit <NUM>, a parameter obtaining unit <NUM>, a merging processing unit <NUM>, and an aggregate signature unit <NUM>.

The quantity calculation unit <NUM> is configured to obtain a quantity threshold in the aggregate signature condition, and count the quantity of the target signature verification results in the verification result set.

The condition satisfying unit <NUM> is configured to determine that the quantity of the target signature verification results satisfies the aggregate signature condition in a case that the quantity of the target signature verification results reaches the quantity threshold, where the quantity of the target signature verification results is n, and n is a positive integer less than or equal to N.

The parameter obtaining unit <NUM> is configured to obtain the first key parameter and the second key parameter from each of n pieces of data signature information respectively corresponding to the n target signature verification results.

The merging processing unit <NUM> is configured to perform merging processing on the obtained n first key parameters to obtain a first aggregate key parameter, and perform merging processing on the obtained n second key parameters to obtain a second aggregate key parameter.

The aggregate signature unit <NUM> is configured to perform aggregate signature on the first aggregate key parameter and the second aggregate key parameter based on a non-interactive aggregate signature rule indicated by the aggregate signature condition.

For the specific implementations of the calculation unit <NUM>, the condition satisfying unit <NUM>, the parameter obtaining unit <NUM>, the merging processing unit <NUM>, and the aggregate signature unit <NUM>, reference may be made to the description about step S105 in the embodiment shown in <FIG>, and details are not described herein again.

For the specific implementations of the service information obtaining module <NUM>, the signature information receiving module <NUM>, the verification result adding module <NUM>, the verification result searching module <NUM> and the aggregate signature module <NUM>, reference may be made to the description about step S101 to step S105 in the embodiment corresponding to <FIG>, and details are not described herein again. In addition, the description of beneficial effects is not repeated herein.

Further, <FIG> is a schematic structural diagram of a data processing apparatus according to an embodiment of the present disclosure. A data processing apparatus <NUM> may be a computer program (including program code) run on a computer device. For example, the data processing apparatus <NUM> is application software. The data processing apparatus <NUM> may be used for performing steps corresponding to the method provided in this embodiment of the present disclosure. As shown in <FIG>, the data processing apparatus <NUM> may be a second service node run in a blockchain network. For example, the second service node may be the node 20B in the embodiment shown in <FIG>. The data processing apparatus <NUM> may include: a service information receiving module <NUM>, a random parameter generation module <NUM>, a signature information determination module <NUM>, a signature information transmission module <NUM>, an aggregate signature information obtaining module <NUM>, a target public key determination module <NUM>, a first parameter determination module <NUM>, a second parameter determination module <NUM> and a valid result determination module <NUM>.

The service information receiving module <NUM> is configured to receive service data information transmitted by a first service node in a blockchain network.

The random parameter generation module <NUM> is configured to generate, based on a node private key of a second service node and the service data information, a random parameter used for performing signature processing on the service data information.

The random parameter generation module <NUM> includes: a splicing processing unit <NUM>, a spliced hash value determination unit <NUM>, and a random parameter determination unit <NUM>.

The splicing processing unit <NUM> is configured to perform splicing processing on the node private key of the second service node and the service data information, to obtain spliced information.

The spliced hash value determination unit <NUM> is configured to obtain a hash determination rule in a non-interactive aggregate signature rule, and determine a spliced hash value corresponding to the spliced information based on the hash determination rule.

The random parameter determination unit <NUM> is configured to determine the spliced hash value as the random parameter.

For the specific implementation of the splicing processing unit <NUM>, the spliced hash value determination unit <NUM>, and the random parameter determination unit <NUM>, reference may be made to the description about step S202 in the embodiment shown in <FIG>, and details are not described herein again.

The signature information determination module <NUM> is configured to generate a first key parameter based on the random parameter and a fixed parameter, generate a second key parameter based on the random parameter, the service data information, and the node private key, and determine data signature information based on the first key parameter and the second key parameter.

The signature information determination module <NUM> includes: a first key parameter determination unit <NUM>, a second key parameter determination unit <NUM>, and a signature information determination unit <NUM>.

The first key parameter determination unit <NUM> is configured to obtain the fixed parameter associated with the non-interactive aggregate signature rule, and determine a first product of the random parameter and the fixed parameter as the first key parameter.

The second key parameter determination unit <NUM> is configured to determine, based on the non-interactive aggregate signature rule, a second product of a verification hash value corresponding to the service data information and the node private key, and perform summation processing on the second product and the random parameter to obtain the second key parameter.

The signature information determination unit <NUM> is configured to determine the data signature information based on the first key parameter and the second key parameter.

For the specific implementations of the first key parameter determination unit <NUM>, the second key parameter determination <NUM>, and the signature information determination unit <NUM>, reference may be made to the description about step S203 in the embodiment shown in <FIG>, and details are not described herein again.

The signature information transmission module <NUM> is configured to transmit the data signature information to the first service node.

The aggregate signature information obtaining module <NUM> is configured to receive aggregate signature information transmitted by the first service node, where the aggregate signature information is obtained by the first service node through performing aggregate signature on the data signature information respectively corresponding to target signature verification results; the target signature verification results are signature verification results satisfying a valid verification condition and is found from a verification result set by the first service node; each of the signature verification result is determined by the first service node through performing signature verification on a piece of data signature information; and the aggregate signature information includes a first aggregate key parameter and a second aggregate key parameter.

The target public key determination module <NUM> is configured to obtain node public keys of second service nodes associated with the target signature verification results, and perform merging processing on the obtained node public keys to obtain a target public key.

The first parameter determination module <NUM> is configured to obtain a first aggregate auxiliary parameter based on the second aggregate key parameter and a fixed parameter associated with a non-interactive aggregate signature rule.

The second parameter determination module <NUM> is configured to obtain, based on the non-interactive aggregate signature rule, a data hash value corresponding to the service data information, and obtain a second aggregate auxiliary parameter based on the target public key, the data hash value and the first aggregate key parameter.

The valid result determination module <NUM> is configured to verify the aggregate signature information as valid in a case that the first aggregate auxiliary parameter is consistent with the second aggregate auxiliary parameter.

For the specific implementations on the service information receiving module <NUM>, the random parameter generation module <NUM>, the signature information determination module <NUM>, the signature information transmission module <NUM>, the aggregate signature information obtaining module <NUM>, the target public key determination module <NUM>, the first parameter determination module <NUM>, the second parameter determination module <NUM>, and the valid result determination module <NUM>, reference may be made to the description about step S201 to step S209 in the embodiment shown in <FIG>, and details are not described herein again. In addition, the description of beneficial effects is not described herein again.

Further, <FIG> is a schematic diagram of a computer device according to an embodiment of the present disclosure. As shown in <FIG>, the computer device <NUM> may include: at least one processor <NUM>, for example, a CPU, at least one network interface <NUM>, a user interface <NUM>, a memory <NUM>, and at least one communications bus <NUM>. The communications bus <NUM> is used for connection and communication between the components. The user interface <NUM> may include a display and a keyboard. Optionally, the network interface <NUM> may include a standard wired interface and wireless interface (for example, a WI-FI interface). The memory <NUM> may be a high-speed random access memory (RAM), or may be a non-volatile memory, for example, at least one magnetic disk memory. Optionally, the memory <NUM> may be at least one storage apparatus located remotely from the foregoing processor <NUM>. As shown in <FIG>, the memory <NUM> used as a computer storage medium may include an operating system, a network communication module, a user interface module, and a device-control application program.

In the computer device <NUM> shown in <FIG>, the network interface <NUM> is mainly configured to perform network communication, the user interface <NUM> is mainly configured to provide an input interface for a user, and the processor <NUM> may be configured to invoke device-control application program stored in the memory <NUM>. It is to be understood that the computer device <NUM> described in this embodiment of the present disclosure can implement the data processing method in the foregoing embodiment shown in <FIG> or <FIG>, and can also implement the data processing apparatus <NUM> in the foregoing embodiment shown in <FIG>, or the data processing apparatus <NUM> in the foregoing embodiment shown in <FIG>, and details are not described herein again. In addition, the description of beneficial effects is not repeated herein.

In addition, the embodiments of the present disclosure further provide a computer-readable storage medium. The computer-readable storage medium stores a computer program executed by the data processing apparatus <NUM> or the data processing apparatus <NUM>. The computer program includes a program instruction. When executing the program instruction, the processor can implement the data processing method in the embodiments shown in <FIG> or <FIG>. Therefore, details are not described herein again. In addition, the description of beneficial effects is not repeated herein. For technical details that are not disclosed in the embodiments of the computer-readable storage medium of the present disclosure, reference is made to the method embodiments of the present disclosure. In an example, the program instructions may be deployed to be executed on a computing device, or to be executed on a plurality of computing devices at the same location, or to be executed on a plurality of computing devices that are distributed in a plurality of locations and connected to each other through a communication network. The plurality of computing devices that are distributed in the plurality of locations and connected to each other through a communication network may form a blockchain system.

According to one aspect of the present disclosure, a computer program product or a computer program is provided, the computer program product or the computer program including computer instructions, the computer instructions being stored in a computer-readable storage medium. A processor of a computer device reads the computer instructions from the computer-readable storage medium, and executes the computer instructions, to cause the computer device to implement the data processing method in the embodiment shown in <FIG> or <FIG>, and details are not described herein again. In addition, the description of beneficial effects is not repeated herein.

Further, <FIG> is a schematic structural diagram of a data processing system according to an embodiment of the present disclosure. The data processing system <NUM> may include a data processing apparatus 1a and a data processing apparatus 2a. The data processing apparatus 1a may be the data processing apparatus <NUM> in the embodiment corresponding to <FIG>. It is to be understood that the data processing apparatus 1a may be integrated to the node 20A (that is, the first service node) in the embodiment corresponding to <FIG>, and therefore, details are not described herein again. The data processing apparatus 2a may be the data processing apparatus <NUM> in the embodiment corresponding to <FIG>. It is to be understood that the data processing apparatus 2a may be integrated in the node 20B (that is the second service node) in the embodiment corresponding to <FIG>, and therefore, details are not described herein again. In addition, the description of beneficial effects is not repeated herein. For technical details that are not disclosed in the data processing system embodiments of the present disclosure, reference is made to the descriptions of the method embodiments of the present disclosure.

Claim 1:
A data processing method, performed by a first service node (20A) in a blockchain network, the method comprising:
obtaining service data information, and broadcasting the service data information to second service nodes (20B, 20C, 20D, ..., 20N), the second service nodes being nodes other than the first service node in the blockchain network;
receiving data signature information returned by each of the second service nodes, the data signature information being obtained by the respective second service node through performing signature processing on the service data information, the data signature information comprising a first key parameter and a second key parameter; the first key parameter and the second key parameter both relating to a random parameter determined by the second service node based on both a node private key of the second service node and the service data information;
performing signature verification on the data signature information based on the first key parameter and the second key parameter in the data signature information, to obtain signature verification results respectively corresponding to the second service nodes, and adding the signature verification results to a verification result set associated with the blockchain network;
searching, in the verification result set, signature verification results satisfying a valid signature verification condition, and determining the signature verification results satisfying the valid signature verification condition as target signature verification results; and
performing aggregate signature on the data signature information respectively corresponding to the target signature verification results if determining that a quantity of the target signature verification results satisfies an aggregate signature condition.