CN113706150A - Block confirmation method and device - Google Patents
Block confirmation method and device Download PDFInfo
- Publication number
- CN113706150A CN113706150A CN202111254334.8A CN202111254334A CN113706150A CN 113706150 A CN113706150 A CN 113706150A CN 202111254334 A CN202111254334 A CN 202111254334A CN 113706150 A CN113706150 A CN 113706150A
- Authority
- CN
- China
- Prior art keywords
- priority
- transaction
- nodes
- block chain
- client
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3829—Payment protocols; Details thereof insuring higher security of transaction involving key management
Landscapes
- Business, Economics & Management (AREA)
- Engineering & Computer Science (AREA)
- Accounting & Taxation (AREA)
- Computer Security & Cryptography (AREA)
- Finance (AREA)
- Strategic Management (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
The embodiment of the invention provides a block confirmation method and a block confirmation device, aiming at any transaction, a client determines k block chain link points from m block chain nodes as priority nodes, generates a first confusion factor based on public keys of the k priority nodes, generates a first priority commitment based on the first confusion factor and the transaction, generates a first priority transaction based on the first priority commitment and a hash value of the transaction, and sends the first priority transaction to a block chain network. Therefore, under the condition that the computing power of each block chain node is the same or close to each other, the priority node designated by the client has a great probability of recovering the transaction through the first priority commitment in the first priority transaction, so that the block confirmation process is quickly completed, and the uplink efficiency of the blocks is effectively improved. Meanwhile, the client sends the transaction data to the blockchain network after the transaction is subjected to the obfuscation processing through the first obfuscation factor, so that the privacy security of the transaction data can be ensured.
Description
Technical Field
The embodiment of the invention relates to the field of financial technology (Fintech), in particular to a block confirmation method and a block confirmation device.
Background
With the development of computer technology, more and more technologies are applied in the financial field, and the traditional financial industry is gradually changing to financial technology, but due to the requirements of the financial industry on safety and real-time performance, higher requirements are also put forward on the technologies.
At present, based on the existing workload certification consensus protocol, each blockchain node in the blockchain network is a process of completing the block acknowledgement through the competition of computing power. Specifically, a workload certification mechanism is provided to determine which node in the blockchain network performs the block acknowledgement process, i.e., to determine which node performs the block out operation and to treat the block as the uplink block. The relation of each block chain node in the block chain network is equal, the block chain nodes all participate in the process of competing block confirmation with equal identities, and the computing power of each block chain node is the same. In addition, the workload certification mechanism performs a hash operation on a certain transaction in each transaction pool plus a self-generated random number, and requires how many first bits of the calculated hash value are 0, for example, the first 6 bits are 0, i.e., 000000. Then, each block chain link point in the block chain network carries out relevant Hash operation according to the workload certification mechanism, random numbers meeting requirements are continuously searched, if a random number meeting requirements is searched for by a certain block chain link point, the transaction, the random numbers and the Hash values can be linked, so that other block chain nodes in the block chain network carry out consensus verification, other block chain nodes only need to add the transaction to the random number to carry out Hash operation, whether the number of bits before the calculated Hash value is 0 or not is verified, whether the calculated Hash value is equal to the Hash value on the chain or not is verified, and after the verification is passed, the block chain link point can be confirmed to pack the transaction to generate a linked block. However, in this processing method, because the relationships between the blockchain nodes in the blockchain network are all equivalent, the applicable service scenario is single, and cannot meet the requirements of different service scenarios (for example, the service scenario in the alliance chain requires that a blockchain link point in each blockchain node with the same computing capability can firstly complete the block confirmation process), and the computing capabilities of the blockchain nodes in the blockchain network in the prior art are the same, the time consumed for completing the block confirmation process through the workload certification mechanism is longer, which results in low efficiency of block uplink.
In summary, there is a need for a block acknowledgement method for performing a block acknowledgement procedure first by a priority node, so as to effectively improve the uplink efficiency of blocks.
Disclosure of Invention
The embodiment of the invention provides a block confirmation method and a block confirmation device, which are used for finishing a block confirmation process firstly through a priority node so as to effectively improve the uplink efficiency of a block.
In a first aspect, an embodiment of the present invention provides a block acknowledgement method, which is applicable to a block chain network having m block chain nodes, and the method includes:
for any transaction, the client determines k block chain link points from the m block chain nodes as priority nodes;
the client generates a first confusion factor based on the public keys of the k priority nodes;
generating, by the client, a first priority commitment based on the first obfuscation factor and the transaction;
the client generates a first priority transaction based on the first priority commitment and the hash value of the transaction, and sends the first priority transaction to the blockchain network.
In the above technical solution, because the relationships of each block chain node in the block chain network in the prior art are equivalent, and the calculation capabilities of each block chain node are the same, the block acknowledgement algorithm related to the prior art also aims at each block chain node in the equivalent relationship, and thus the block acknowledgement process having a priority node requirement (i.e., designating some block chain nodes to process transactions preferentially) cannot be supported, and meanwhile, because the calculation capabilities of each block chain node in the prior art are the same, no node can complete the block acknowledgement process first, so that each block chain node needs to spend a long time to perform block acknowledgement through a workload certification mechanism, thereby resulting in low efficiency of block uplink. Based on this, the technical solution in the present invention uses the designated part of the blockchain nodes as the priority nodes, so that when the computing capabilities of the blockchain nodes in the blockchain network are the same or close, the priority nodes designated by the client have a great probability of completing the blockchain confirmation process first, thereby saving the time consumed by the blockchain confirmation process and effectively improving the efficiency of blockchain. Specifically, for any transaction, the client may determine k block link nodes from the m block link nodes as priority nodes, and generate a first obfuscation factor based on public keys of the k priority nodes. And then generating a first priority commitment based on the first confusion factor and the transaction, wherein the first priority commitment is used as a certificate for confirming the node transaction, and after generating the first priority transaction based on the first priority commitment and a hash value of the transaction, the first priority transaction is sent to a blockchain network, and a certain blockchain node (such as a priority node) in the blockchain network can recover the transaction through the first priority commitment in the first priority transaction. Therefore, according to the scheme, under the condition that the computing capacities of all blockchain nodes in a blockchain network are the same or close to each other, the priority node designated by the client has a great probability of recovering the transaction through the first priority commitment in the first priority transaction first, so that the process of block confirmation is completed quickly, even under the condition that the computing capacities of all blockchain nodes are different, the priority node also has a great probability of recovering the transaction through the first priority commitment in the first priority transaction first, so that the process of block confirmation is completed quickly, and the uplink efficiency of blocks can be effectively improved. Meanwhile, the client does not directly send the transaction to the blockchain network, but performs obfuscation processing on the transaction through the first obfuscation factor, and sends the hash value of the transaction and the first preferential commitment obtained after the obfuscation processing to the blockchain network, so that the risk of leakage of transaction data can be avoided, and the privacy security of the transaction data can be ensured.
Optionally, the client generates a first confusion factor based on the public keys of the k priority nodes, including:
when the client determines that the number k of the priority nodes is 2, generating the first confusion factor by the public keys of the k priority nodes through a bilinear mapping algorithm;
the client generating a first priority transaction based on the first priority commitment and the hash value of the transaction, comprising:
the client carries out hash operation on the transaction to generate a hash value of the transaction;
and the client generates the first priority transaction according to the first priority commitment and the hash value of the transaction.
In the above technical solution, since the client may specify the number of the priority nodes, and the priority transactions corresponding to different numbers of priority nodes are different, that is, the number of elements included in the generated priority transactions is different, the scheme specifically describes that the block confirmation process can be completed first with a high probability by setting different numbers of priority nodes. Specifically, when the number k of the priority nodes designated by the client is 2, the public keys of the 2 priority nodes are used to generate a first confusion factor through a bilinear mapping algorithm, where the first confusion factor is used to confuse the transaction that the client needs to process, that is, a first priority commitment is generated through the first confusion factor and the transaction. And then, generating a first priority transaction corresponding to the condition that the number k of the appointed priority nodes is 2 according to the first priority commitment and the hash value of the transaction. The first priority commitment is used as a certificate for identifying and confirming the transaction by all the block chain nodes together, and a certain block chain node (such as a priority node) in the block chain network can decrypt the transaction first through the first priority commitment, so that only a certain block chain node in the block chain network can decrypt the transaction first through the first priority commitment on the premise of ensuring that a certain transaction required to be processed by a client is not leaked, and the transaction can be prevented from being tampered or stolen.
Optionally, the client generates a first confusion factor based on the public keys of the k priority nodes, including:
when the client determines that the number k of the priority nodes is 1, determining a first priority placeholder based on an elliptic curve, and generating a first confusion factor by the first priority placeholder and public keys of the k priority nodes through a bilinear mapping algorithm;
the client generating a first priority transaction based on the first priority commitment and the hash value of the transaction, comprising:
the client carries out hash operation on the transaction to generate a hash value of the transaction;
the client generates the first priority transaction according to the first priority commitment, the first priority placeholder and the hash value of the transaction.
In the technical scheme, when the number k of the priority nodes designated by the client is 1, in order to better hide the identities of the priority nodes, a first priority placeholder is determined through an elliptic curve, and the first priority placeholder is used as a point field element which is matched with operation in a bilinear mapping algorithm when 1 priority node is designated. And generating a first confusion factor by the public key of the 1 priority node and the first priority placeholder through a bilinear mapping algorithm, wherein the first confusion factor is used for confusing the transaction which needs to be processed by the client, namely generating a first priority commitment through the first confusion factor and the transaction. And then, generating a first priority transaction corresponding to the condition that the number k of the appointed priority nodes is 1 through the first priority commitment and the hash value of the transaction. The first priority commitment is used as a certificate for identifying and confirming the transaction by all the block chain nodes together, and a certain block chain node (such as a priority node) in the block chain network can decrypt the transaction first through the first priority commitment, so that only a certain block chain node in the block chain network can decrypt the transaction first through the first priority commitment on the premise of ensuring that a certain transaction required to be processed by a client is not leaked, and the transaction can be prevented from being tampered or stolen.
Optionally, the method further comprises:
when the client determines that the number k of the priority nodes is 0, determining two unequal second priority placeholders and third priority placeholders based on an elliptic curve, and generating a second confusion factor by the second priority placeholder and the third priority placeholder through a bilinear mapping algorithm;
generating, by the client, a second priority commitment based on the second confusion factor and the transaction;
and the client generates the second priority transaction according to the second priority commitment, the second priority placeholder, the third priority placeholder and the hash value of the transaction, and sends the second priority transaction to the blockchain network.
In the above technical solution, when the number k of the priority nodes designated by the client is 0, that is, the client does not designate the priority nodes, at this time, in order to prevent others from easily knowing whether the client has the designated priority nodes or not or prevent others from easily knowing the number of the priority nodes designated by the client, the identity of the priority nodes is better concealed, and in order to cooperate with the point domain operation in the bilinear mapping algorithm, the method is implemented by generating two unequal priority placeholders. Specifically, two unequal second priority placeholders and third priority placeholders are determined through the elliptic curve, and the second priority placeholders and the third priority placeholders are used as point field elements matched with operation in the bilinear mapping algorithm when 0 priority node is used. And generating a second confusion factor by using the second priority placeholder and the third priority placeholder through a bilinear mapping algorithm, wherein the second confusion factor is used for confusing the transaction which needs to be processed by the client, namely, generating a second priority commitment through the second confusion factor and the transaction. And then, generating a second priority transaction corresponding to the condition that the number k of the appointed priority nodes is 0 through a second priority commitment and the hash value of the transaction. The second priority commitment is used as a certificate for identifying and confirming the transaction by all the block chain nodes together, and a certain block chain node (such as a priority node) in the block chain network can decrypt the transaction first through the second priority commitment, so that only a certain block chain node in the block chain network can decrypt the transaction first through the second priority commitment on the premise of ensuring that a certain transaction required to be processed by a client is not leaked, and thus the transaction can be prevented from being tampered or stolen.
Optionally, the client generates a first priority commitment based on the first confusion factor and the transaction, including:
and the client generates a first priority commitment by the first confusion factor and the transaction through an elliptic curve point domain multiplication algorithm.
In the technical scheme, the client processes the first confusion factor and the transaction through an elliptic curve point-domain multiplication algorithm, so that the transaction can be subjected to confusion processing to generate a first priority commitment meeting the requirement of not revealing transaction information, and therefore the risk of revealing of certain transaction information needing to be processed by the client can be avoided, and the privacy security of the transaction is favorably ensured.
In a second aspect, an embodiment of the present invention provides a block acknowledgement method, which is applicable to a blockchain network having m blockchain nodes, and the method includes:
for any one of the m blockchain nodes, generating a first decryption fragment based on a private key of the blockchain node when the blockchain node detects a first priority transaction; the first priority transaction is generated by the client based on the first priority commitment and a hash value of the transaction; the first priority commitment is generated by the client based on a first obfuscation factor and the transaction; the first confusion factor is generated by the client based on public keys of k priority nodes determined by the client from the m blockchain nodes;
the block chain node generates a first decryption transaction according to the first decryption fragment and a first priority commitment in the first priority transaction through a bilinear mapping algorithm;
and when the block chain node determines that the hash value of the first decrypted transaction is equal to the hash value of the transaction in the first priority transaction, packaging the first decrypted transaction into blocks for uplink.
In the above technical solution, for any blockchain node, when the blockchain node detects a first priority transaction, the blockchain node may attempt to decrypt a certain transaction that the client needs to process through an element included in the first priority transaction. Specifically, the block link point generates a first decryption fragment based on its own private key, and generates a first decryption transaction by using a bilinear mapping algorithm with the first decryption fragment and a first priority commitment in the first priority transaction, and then determines whether the block link point successfully decrypts the transaction by determining whether a hash value of the first decryption transaction is equal to a hash value of the transaction, so as to determine whether the block link node performs a block output operation for the transaction, that is, after other block link points successfully recognize the first decryption transaction, the block link point packs the first decryption transaction as a block for uplink. If the blockchain node is a priority node, the priority node can decrypt the transaction through the first priority commitment in the first priority transaction with a high probability under the condition that the computing capacities of the blockchain nodes in the blockchain network are the same or close to each other, or decrypt the transaction through the first priority commitment in the first priority transaction with a high probability under the condition that the computing capacities of the blockchain nodes are different from each other, so that the decrypted transaction can be packaged into blocks, and the blocks are synchronized to other blockchain nodes for successful consensus and then uplink transmission is carried out, so that the efficiency of block uplink transmission can be effectively improved. Meanwhile, the client sends the first priority transaction consisting of the hash value of the transaction and the first priority commitment formed by the confusion processing to the blockchain network, and the transaction is not directly sent to the blockchain network, so that the risk of leakage of the transaction data can be avoided, and the privacy security of the transaction data can be ensured.
Optionally, when the blockchain node detects the first priority transaction, generating a first decryption fragment based on a private key of the blockchain node includes:
when the number k of the elements contained in the first priority transaction is 2, the private key of the block chain node is subjected to a number domain inversion algorithm to generate a first decryption private key;
and the block chain node acquires the public keys of the m block chain nodes from the block chain, and generates the first decryption fragment according to the first decryption private key and the public key of the block chain node aiming at the public key of any block chain node.
In the above technical solution, since the client may designate different numbers of priority nodes, elements included in the generated priority transactions are different, and thus, the manner in which any blockchain node decrypts the transaction through the elements included in the priority transactions is different. Specifically, for any block chain node, when it is determined that k is 2 through the number of elements included in the first priority transaction, the block chain node uses a transaction decryption processing mode corresponding to k being 2, that is, generates a first decryption fragment through a first decryption private key generated according to a public key of any block chain node and its own private key. The first decryption fragment is used for assisting the block chain node in decrypting a first decryption transaction, meanwhile, the block chain node judges whether the hash value of the decrypted first decryption transaction is equal to the hash value of the transaction or not to determine whether the block chain node is really successful in decrypting the transaction or not, and the decrypted first decryption transaction is packaged into blocks and synchronously sent to other block chain nodes for common identification verification after the block chain node is determined to be equal to the hash value of the transaction.
Optionally, when the blockchain node detects the first priority transaction, generating a first decryption fragment based on a private key of the blockchain node includes:
when the number of elements contained in the first priority transaction indicates that k is 1, the private key of the block chain node is subjected to a number domain inversion algorithm to generate a first decryption private key;
and the block chain node acquires a first priority placeholder from the first priority transaction, and generates the first decryption fragment according to the first decryption private key and the first priority placeholder.
In the above technical solution, for any blockchain node, when it is determined that k is 1 according to the number of elements included in the first priority transaction, the blockchain node uses a transaction decryption processing mode corresponding to k being 1, that is, generates the first decryption fragment according to the first priority placeholder in the first priority transaction and the first decryption private key generated by its own private key. The first decryption fragment is used for assisting the block chain node in decrypting a first decryption transaction, meanwhile, the block chain node judges whether the hash value of the decrypted first decryption transaction is equal to the hash value of the transaction or not to determine whether the block chain node is really successful in decrypting the transaction or not, and the decrypted first decryption transaction is packaged into blocks and synchronously sent to other block chain nodes for common identification verification after the block chain node is determined to be equal to the hash value of the transaction.
Optionally, the method further comprises:
when detecting a second priority transaction, the blockchain node acquires two unequal second priority placeholders and a third priority placeholder from the second priority transaction; the element number indication k contained in the second priority transaction is 0;
the block chain node generates a second decryption fragment according to the second priority placeholder and the third priority placeholder;
generating a second decryption transaction by the block chain node according to the second decryption fragment and a second priority commitment in the second priority transaction through a bilinear mapping algorithm;
and when the block chain node determines that the hash value of the second decrypted transaction is equal to the hash value of the transaction in the second priority transaction, packaging the second decrypted transaction into blocks for uplink.
In the above technical solution, for any blockchain node, when it is determined that k is 0 by the number of elements included in the second priority transaction, a transaction decryption processing manner corresponding to k being 0 is adopted, that is, a second decryption fragment is generated by a second priority placeholder and a third priority placeholder in the second priority transaction, and the second decryption fragment and a second priority commitment in the second priority transaction are generated by a bilinear mapping algorithm to generate the second decryption transaction. Then, it is determined whether the hash value of the second decrypted transaction is equal to the hash value of the transaction, so as to determine whether the block link point is really successful in decrypting the transaction, and thus it can be determined whether the block link node performs the block output operation for the transaction. That is, after determining equality, the block link node packs the second decrypted transaction and the hash value of the second decrypted transaction into a block, synchronizes the block to other block link nodes for consensus verification, and if it is determined that consensus is successful, uplinks the block.
Optionally, the method further comprises:
when the block chain nodes determine that the hash value of each first decryption transaction corresponding to the m block chain link nodes is unequal to the hash value of the transaction in the first priority transaction, acquiring public keys of the m block chain nodes from the block chain, and generating a first decryption public key by using a number domain inversion algorithm for the public key of any one block chain node;
the block chain link point generates a third decryption fragment based on the first decryption public key;
generating a third decrypted transaction by the block chain node according to the third decrypted fragment and a first priority commitment in the first priority transaction through a bilinear mapping algorithm;
and when the block chain node determines that the hash value of the third decrypted transaction is equal to the hash value of the transaction in the first priority transaction, packaging the third decrypted transaction into blocks for uplink.
In the above technical solution, for any block chain node, when the hash value of each first decryption transaction corresponding to the m block chain nodes is determined to be not equal to the hash value of the transaction, the transaction may be decrypted in another decryption manner by the block chain node. Namely, the public key of any block chain node is processed by the block chain node through a number domain inversion algorithm to generate a first decryption public key, and a third decryption fragment is generated based on the first decryption public key. And generating a third decrypted transaction by the third decrypted segment and the first priority commitment in the first priority transaction. Then, it is determined whether the hash value of the third decrypted transaction is equal to the hash value of the transaction, so as to determine whether the block link point is really successful in decrypting the transaction, and thus it can be determined whether the block link node performs the block output operation for the transaction. That is, after the equality is determined, the block link node packs the third decrypted transaction and the hash value of the third decrypted transaction into a block, synchronizes the block to other block link nodes for consensus verification, and if the consensus is determined to be successful, uplinks the block.
In a third aspect, an embodiment of the present invention provides a block acknowledgement apparatus, which is applicable to a block chain network having m block chain nodes, and the apparatus includes:
a determining unit, configured to determine k block link points from the m block link nodes as priority nodes for any transaction;
the first processing unit is used for generating a first confusion factor based on the public keys of the k priority nodes; generating a first priority commitment based on the first confounding factor and the transaction; generating a first priority transaction based on the first priority commitment and the hash value of the transaction, and sending the first priority transaction to the blockchain network.
Optionally, the first processing unit is specifically configured to:
when the number k of the priority nodes is determined to be 2, generating the first confusion factor by the public keys of the k priority nodes through a bilinear mapping algorithm;
the first processing unit is specifically configured to:
carrying out hash operation on the transaction to generate a hash value of the transaction;
and generating the first priority transaction according to the first priority commitment and the hash value of the transaction.
Optionally, the first processing unit is specifically configured to:
when the number k of the priority nodes is determined to be 1, determining a first priority placeholder based on an elliptic curve, and generating a first confusion factor by the first priority placeholder and public keys of the k priority nodes through a bilinear mapping algorithm;
the first processing unit is specifically configured to:
carrying out hash operation on the transaction to generate a hash value of the transaction;
generating the first priority transaction according to the first priority commitment, the first priority placeholder and the hash value of the transaction.
Optionally, the first processing unit is further configured to:
when the number k of the priority nodes is determined to be 0, determining two unequal second priority placeholders and third priority placeholders based on an elliptic curve, and generating a second confusion factor by using the second priority placeholder and the third priority placeholder through a bilinear mapping algorithm;
generating a second priority commitment based on the second confounding factor and the transaction;
and generating the second priority transaction according to the second priority commitment, the second priority placeholder, the third priority placeholder and the hash value of the transaction, and sending the second priority transaction to the blockchain network.
Optionally, the first processing unit is specifically configured to:
and generating a first priority commitment by the first confusion factor and the transaction through an elliptic curve point domain multiplication algorithm.
In a fourth aspect, an embodiment of the present invention provides a block acknowledgement apparatus, which is applicable to a block chain network having m block chain nodes, where the apparatus includes:
the generation unit is used for generating a first decryption fragment based on a private key of each block chain node when a first priority transaction is detected for any one of the m block chain nodes; the first priority transaction is generated by the client based on the first priority commitment and a hash value of the transaction; the first priority commitment is generated by the client based on a first obfuscation factor and the transaction; the first confusion factor is generated by the client based on public keys of k priority nodes determined by the client from the m blockchain nodes;
the second processing unit is used for generating a first decrypted transaction according to the first decrypted fragment and a first priority commitment in the first priority transaction through a bilinear mapping algorithm; and when the hash value of the first decrypted transaction is determined to be equal to the hash value of the transaction in the first priority transaction, packaging the first decrypted transaction into blocks for uplink.
Optionally, the generating unit is specifically configured to:
when the element number k contained in the first priority transaction is 2, generating a first decryption private key by a private key of the block chain node through a number domain inversion algorithm;
and acquiring the public keys of the m block chain nodes from the block chain, and generating the first decryption fragment according to the first decryption private key and the public key of the block chain node aiming at the public key of any block chain node.
Optionally, the generating unit is specifically configured to:
when the element quantity indication k contained in the first priority transaction is 1, generating a first decryption private key by the private key of the block chain node through a number domain inversion algorithm;
and acquiring a first priority placeholder from the first priority transaction, and generating the first decryption fragment according to the first decryption private key and the first priority placeholder.
Optionally, the second processing unit is further configured to:
when a second priority transaction is detected, acquiring two unequal second priority placeholders and a third priority placeholder from the second priority transaction; the element number indication k contained in the second priority transaction is 0;
generating a second decryption fragment according to the second priority placeholder and the third priority placeholder;
generating a second decryption transaction according to the second decryption fragment and a second priority commitment in the second priority transaction through a bilinear mapping algorithm;
and when the hash value of the second decrypted transaction is determined to be equal to the hash value of the transaction in the second priority transaction, packaging the second decrypted transaction into blocks for uplink.
Optionally, the second processing unit is further configured to:
when the Hash values of the first decryption transactions corresponding to the m block chain link points are determined to be unequal to the Hash values of the transactions in the first priority transactions, public keys of the m block chain nodes are obtained from the block chain, and the public keys of the block chain nodes are subjected to a number domain inversion algorithm aiming at the public key of any one block chain node to generate a first decryption public key;
generating a third decrypted fragment based on the first decrypted public key;
generating a third decrypted transaction according to the third decrypted segment and a first priority commitment in the first priority transaction through a bilinear mapping algorithm;
and when the hash value of the third decrypted transaction is determined to be equal to the hash value of the transaction in the first priority transaction, packaging the third decrypted transaction into blocks for uplink.
In a fifth aspect, an embodiment of the present invention provides a computing device, including at least one processor and at least one memory, where the memory stores a computer program, and when the program is executed by the processor, the processor is caused to execute the block acknowledgement method according to any of the first aspect or the second aspect.
In a sixth aspect, an embodiment of the present invention provides a computer-readable storage medium, which stores a computer program executable by a computing device, and when the program runs on the computing device, the computer program causes the computing device to execute the block verification method according to any one of the first aspect and the second aspect.
Drawings
In order to more clearly illustrate the technical solutions in the embodiments of the present invention, the drawings needed to be used in the description of the embodiments will be briefly introduced below, and it is obvious that the drawings in the following description are only some embodiments of the present invention, and it is obvious for those skilled in the art to obtain other drawings based on these drawings without creative efforts.
Fig. 1 is a flowchart illustrating a block verification method according to an embodiment of the present invention;
fig. 2 is a schematic structural diagram of a block verification apparatus according to an embodiment of the present invention;
fig. 3 is a schematic structural diagram of another block verification apparatus according to an embodiment of the present invention;
fig. 4 is a schematic structural diagram of a computing device according to an embodiment of the present invention.
Detailed Description
In order to make the objects, technical solutions and advantages of the present invention clearer, the present invention will be described in further detail with reference to the accompanying drawings, and it is apparent that the described embodiments are only a part of the embodiments of the present invention, not all of the embodiments. All other embodiments, which can be derived by a person skilled in the art from the embodiments given herein without making any creative effort, shall fall within the protection scope of the present invention.
In the following, some terms related to the embodiments of the present invention are first explained to facilitate understanding by those skilled in the art.
(1) Block: is the basic unit of a process blockchain, consisting of a blockhead containing metadata and a blockbody containing transaction data. Wherein the block header mainly comprises the hash of the parent block.
(2) Block chains: is a chain of blocks, each block having a Hash value of the block recorded thereon in addition to the data of the block, in such a way as to form a chain. In addition, the core concept of blockchains is two: one is cryptography and the other is a decentralization idea. Based on the two concepts, historical information on the blockchain cannot be tampered. One block in the block chain is composed of a block head and a block body. The block head mainly comprises the height h of the block, the hash of the previous block and the like, and the block mainly stores transaction data.
(3) Bilinear mapping: is a class satisfying for an arbitrary a, b ∈ Zp *R, S ∈ G, a cryptographic protocol with e (aR, bS) = e (R, S) ^ ab, R, S are arbitrary points of G1. Suppose that G1 is an addition cyclic group with generator P, order P, G2 is a multiplication cyclic group with the same order as G1, a, b are Zp *Elements in (p-th prime cycle groups).
(4) Elliptic curve group: the group is a set of a series of elements satisfying a certain algebraic operation in cryptography, and the elliptic curve group is a set of elements constructed based on elliptic curve cryptography. In elliptic curve groups, capital letters such as G1, G2, etc. represent points on an elliptic curve, i.e. point field elements, which have additive properties, such as G1+ G2. Lower case letters, such as a, represent scalars, i.e., number domain elements that have the property of addition, multiplication, power, etc., such as a b, a + b, etc.
As described above, some terms related to the embodiments of the present invention are described, and the technical features related to the embodiments of the present invention are described below.
Fig. 1 schematically shows a flow of a block verification method according to an embodiment of the present invention, where the flow may be executed by a block verification apparatus. The block confirmation method is suitable for a block chain network with m block chain nodes.
As shown in fig. 1, the process specifically includes:
In the embodiment of the present invention, when a client uploads a certain transaction to a blockchain network for processing, in order to achieve that a process of block confirmation can be completed by a priority node first on the premise that computing capabilities of each blockchain node are the same or close to each other, the client may designate a part of blockchain link points as priority nodes, for example, k blockchain link points may be selected from m blockchain link points in the blockchain network as priority nodes, for example, the client designates that the number of priority nodes is 0, 1 or 2, and the like, for example, the number of designated priority nodes is 2, and the client may select 2 blockchain link points from m blockchain link points as priority nodes in a random manner. Or, the m block chain nodes may be sorted from large to small according to the respective computing capacities of the m block chain link points, and the block chain link points that are sorted in the top 2 may be selected from the sorted m block chain link points as priority nodes. Wherein m and k are integers, and k is less than or equal to m.
For example, assuming that there are 10 blockchain nodes in the blockchain network, when the client uploads a certain transaction to the blockchain network for processing, 2 blockchain nodes may be designated as priority nodes, and then 2 blockchain nodes may be selected from the 10 blockchain nodes of the blockchain network as priority nodes to be added to the priority queue. Or, the ue may designate 1 blockchain node as the priority node, and then may select 1 blockchain node from 10 blockchain nodes in the blockchain network as the priority node to join in the priority queue. Or, the ue may designate 0 blockchain nodes as priority nodes, and then may select 0 blockchain nodes from 10 blockchain nodes in the blockchain network as priority nodes to join in the priority queue.
Step 105, the client sends the first priority transaction to the blockchain network.
In the embodiment of the invention, when the client determines that the number k of the priority nodes is 2, the public keys of the k priority nodes generate the first confusion factor through a bilinear mapping algorithm, and the first confusion factor is used for confusing the transaction which needs to be processed by the client, so that the client cannot directly upload the transaction to the blockchain network, the risk of leakage of transaction data can be avoided, and the privacy security of the transaction data can be ensured. And generating a first priority commitment by the first confusion factor and the transaction through an elliptic curve point domain multiplication algorithm. Then, a hash operation is performed on the transaction to be processed by the client through a set hash Algorithm, such as Message-Digest Algorithm 5 (MD 5) or SHA256 Algorithm, to generate a hash value of the transaction, and a first priority transaction is generated according to the first priority commitment and the hash value of the transaction, and the first priority transaction is sent to the blockchain network. The first priority commitment is used as a certificate for confirming the transaction by the consensus of all the block chain nodes, and a certain block chain node in the block chain network can decrypt the transaction first through the first priority commitment, so that only the certain block chain node in the block chain network can decrypt the transaction first through the first priority commitment on the premise of ensuring that the certain transaction required to be processed by the client is not leaked, and the transaction can be prevented from being tampered or stolen.
Before the client selects the priority node, each blockchain node in the blockchain network generates a public key and a private key of the client and uploads the public key of the client to the blockchain. For example, for each blockchain node in the blockchain network, the blockchain node uses a random number generation algorithm in an elliptic curve number domain to generate a 256-bit random number ri, and the 256-bit random number ri is kept as a node blockchain confirmation private key in a private manner. And calculating a node block confirmation public key pki by using an elliptic curve point domain multiplication algorithm according to the 256-bit random number ri, namely pki = ri × G. Then, the node block confirmation public key pki of the node block confirmation self is uploaded to the block chain, and a public key list pk _ list is formed on the block chain, namely pk _ list = { pk1, pk2, …, pkm }. Illustratively, taking a certain blockchain node in the blockchain network, such as the blockchain node 1 as an example, the blockchain node 1 generates a 256-bit random number r1 by using a random number generation algorithm in an elliptic curve number domain, the 256-bit random number r1 serves as a node block confirmation private key, and then calculates a node block confirmation public key pk1 by using an elliptic curve point domain multiplication algorithm according to the 256-bit random number r1, that is, pk1= r1 × G. Then, the own node block confirmation public key pk1 is uploaded to the block chain.
For example, assuming that there are 5 blockchain nodes in the blockchain network, that is, blockchain node 1, blockchain link point 2, blockchain link point 3, blockchain link point 4, and blockchain link point 5, when a client initiates a certain transaction (for example, transaction tx), first 2 blockchain link points are selected from the 5 blockchain link points as priority nodes, for example, blockchain node 1 and blockchain link point 3 are selected as priority nodes. After the 2 priority nodes are selected, the public keys of the 2 blockchain nodes may be acquired from the blockchain through any blockchain node in the blockchain network, for example, the client sends a request for acquiring the public key of the blockchain node 1 and the public key of the blockchain node 3 to the blockchain link point 2, and after receiving the request, the blockchain link point 2 acquires the public key pk1 of the blockchain node 1 and the public key pk3 of the blockchain link point 3 from the blockchain and sends the public key pk1 of the blockchain link point 1 and the public key pk3 of the blockchain link point 3 to the client. The client generates a first aliasing factor Y, i.e. Y = e (pk1, pk3) by a bilinear mapping algorithm according to the public key pk1 of the chunk link point 1 and the public key pk3 of the chunk link point 3. And obtaining a first priority commitment P by using an elliptic curve point domain multiplication algorithm according to the first confusion factor Y and the transaction tx, namely P = Y x tx. The first prior commitment P is used as a credential for node transaction confirmation. Meanwhile, the client performs hash operation on the transaction tx through an MD5 or SHA256 algorithm, etc., to generate a hash value h of the transaction tx, i.e., h = hash (tx). The hash value h is used as a factor for verifying correctness of the node transaction confirmation process. Then, a first priority transaction (P, h) is generated according to the hash value h of the transaction tx and the first priority commitment P, and the first priority transaction (P, h) is sent to the blockchain network.
Or when the client determines that the number k of the priority nodes is 1, a first priority placeholder is determined based on an elliptic curve, and the first priority placeholder and the public keys of the k priority nodes generate a first confusion factor through a bilinear mapping algorithm, wherein the first confusion factor is used for confusing transactions which the client needs to process, so that the client cannot directly upload the transactions to the blockchain network, the risk of leakage of transaction data can be avoided, and the privacy security of the transaction data can be ensured. And generating a first priority commitment by the first confusion factor and the transaction through an elliptic curve point domain multiplication algorithm. Then, a hash operation is performed on the transaction that the client needs to process through a set hash Algorithm, such as Message-Digest Algorithm 5 (MD 5) or SHA256 Algorithm, to generate a hash value of the transaction, and a first priority transaction is generated according to the first priority commitment, the first priority placeholder and the hash value of the transaction, and the first priority transaction is sent to the blockchain network. The first priority commitment is used as a certificate for confirming the transaction by the consensus of all the block chain nodes, and a certain block chain node in the block chain network can decrypt the transaction first through the first priority commitment, so that only the certain block chain node in the block chain network can decrypt the transaction first through the first priority commitment on the premise of ensuring that the certain transaction required to be processed by the client is not leaked, and the transaction can be prevented from being tampered or stolen.
For example, continuing with the above description of 5 blockchain nodes in the blockchain network, when a certain client initiates a certain transaction (e.g., transaction tx), 1 blockchain node is first selected from the 5 blockchain nodes as a priority node, for example, blockchain node 1 is selected as a priority node. After the 1 priority node is selected, the public key of the 1 block chain node may be acquired from the block chain through any block chain node in the block chain network, for example, the client sends a request for acquiring the public key of the block chain node 1 to the block chain link point 3, and after receiving the request, the block chain link point 3 acquires the public key of the block chain link point 1 from the block chain and sends the public key of the block chain link point 1 to the client. Meanwhile, in order to better conceal the identity of the priority node, a first priority placeholder is determined through the elliptic curve, the first priority placeholder is used as a point field element which is matched with the operation in the bilinear mapping algorithm when 1 priority node is generated, namely, the client locally generates a 256-bit random number R, the 256-bit random number R is used as a placeholder temporary factor filled in the bilinear mapping, and a public point G and a placeholder temporary factor R on the elliptic curve are used for generating a first priority placeholder R through the elliptic curve point field multiplication algorithm, namely R = R G. Then, a first confusion factor Y, i.e. Y = e (pk1, R), is generated by a bilinear mapping algorithm according to the public key pk1 of the tile link point 1 and the first priority placeholder R, and a first priority commitment P, i.e. P = Y × tx, is obtained by using an elliptic curve point domain multiplication algorithm according to the first confusion factor Y and the transaction tx. The first prior commitment P is used as a credential for node transaction confirmation. Meanwhile, the client performs hash operation on the transaction tx through an MD5 or SHA256 algorithm, etc., to generate a hash value h of the transaction tx, i.e., h = hash (tx). The hash value h is used as a factor for verifying correctness of the node transaction confirmation process. Then, a first priority transaction (P, h, R) is generated based on the first priority placeholder R, the hash value h of the transaction tx, and the first priority commitment P, and the first priority transaction (P, h, R) is sent to the blockchain network.
Or when the client determines that the number k of the priority nodes is 0, two unequal second priority placeholders and third priority placeholders are determined based on the elliptic curve, and the second priority placeholders and the third priority placeholders are subjected to bilinear mapping algorithm to generate second confusion factors, wherein the second confusion factors are used for confusing transactions needing to be processed by the client. A second priority commitment is generated based on the second confounding factor and the transaction. Then, a hash operation is performed on the transaction to be processed by the client through a set hash Algorithm, such as Message-Digest Algorithm 5 (MD 5) or SHA256 Algorithm, to generate a hash value of the transaction, and a second priority transaction is generated according to the second priority commitment, the second priority placeholder, the third priority placeholder, and the hash value of the transaction, and the second priority transaction is sent to the blockchain network. The second priority commitment is used as a certificate for confirming the transaction by the consensus of all the block chain nodes, and a certain block chain node in the block chain network can decrypt the transaction first through the second priority commitment, so that only the certain block chain node in the block chain network can decrypt the transaction first through the second priority commitment on the premise of ensuring that the certain transaction required to be processed by the client is not leaked, and the transaction can be prevented from being tampered or stolen.
For example, continuing with the above description of 5 blockchain nodes in the blockchain network, when a certain client initiates a certain transaction (e.g., transaction tx), 0 blockchain nodes are first selected from the 5 blockchain nodes as priority nodes, that is, the client does not designate a priority node. At this time, in order to prevent others from easily knowing whether the client has the designated priority node or not, or to prevent others from easily knowing the number of the designated priority nodes of the client, the identity of the priority node is better concealed, and in order to cooperate with the dot-field operation in the bilinear mapping algorithm, the two unequal priority placeholders are generated. That is, the client locally generates a 256-bit random number Ra as a temporary placeholder factor a filled in the bilinear map, and locally generates another 256-bit random number rb as a temporary placeholder factor b filled in the bilinear map, and generates a second priority placeholder Ra, namely Ra = Ra G, by using the exposure point G and the temporary placeholder factor Ra on the elliptic curve through an elliptic curve point-field multiplication algorithm. And meanwhile, generating a third preferred occupation bit Rb by using a public point G and a temporary placeholder Rb on the elliptic curve through an elliptic curve point-domain multiplication algorithm, wherein Rb = Rb G. The second priority placeholder Ra and the third priority placeholder Rb are used as point field elements for cooperating operation in the bilinear mapping algorithm when the second priority placeholder Ra and the third priority placeholder Rb are used as 0 priority node. And generating a second confusion factor Y, i.e., Y = e (Ra, Rb), by a bilinear mapping algorithm according to the second priority placeholder Ra and the third priority placeholder Rb, and obtaining a second priority commitment P, i.e., P = Y × tx, by using an elliptic curve point-domain multiplication algorithm according to the second confusion factor Y and the transaction tx. The second prior commitment P is used as a credential for node transaction confirmation. Meanwhile, the client performs hash operation on the transaction tx through an MD5 or SHA256 algorithm, etc., to generate a hash value h of the transaction tx, i.e., h = hash (tx). The hash value h is used as a factor for verifying correctness of the node transaction confirmation process. Then, a second priority transaction (P, h, Ra, Rb) is generated based on the second priority placeholder Ra, the third priority placeholder Rb, the hash value h of the transaction tx, and a second priority commitment P, and the second priority transaction (P, h, Ra, Rb) is sent to the blockchain network.
And 107, generating a first decryption transaction by the block chain node according to the first decryption fragment and a first priority commitment in the first priority transaction through a bilinear mapping algorithm.
In an embodiment of the present invention, for any blockchain node, when the blockchain node detects a first priority transaction, the blockchain node may attempt to decrypt a certain transaction that the client needs to process through elements included in the first priority transaction. Since the client may specify different numbers of priority nodes, the elements included in the generated priority transactions are different, and the manner in which any blockchain node decrypts the transaction by using the elements included in the priority transactions is also different. Specifically, for any block chain node, when the number of elements included in the first priority transaction determines that k is 2, a transaction decryption processing mode corresponding to k being 2 is adopted, that is, a private key of the block chain node is subjected to a number domain inversion algorithm to generate a first decryption private key, public keys of m block chain nodes are obtained from the block chain, and for the public key of any block chain node, a first decryption fragment is generated according to the first decryption private key and the public key of the block chain node, and the first decryption fragment is used for assisting the block chain node in decrypting a first decryption transaction. And generating a first decryption transaction by the first decryption fragment and a first priority commitment in the first priority transaction through a bilinear mapping algorithm, and judging whether the block chain link point really and successfully decrypts the transaction by judging whether the hash value of the first decryption transaction is equal to the hash value of the transaction, so as to determine whether the block chain node executes the block output operation aiming at the transaction. That is, after determining that the hash value of the first decrypted transaction is equal to the hash value of the transaction, the hash values of the first decrypted transaction and the first decrypted transaction are packed into a block, the block is synchronized to other block chain nodes for consensus verification, and if determining that the link nodes of other blocks are successfully consensus, the block is linked.
For example, continuing to describe the case where there are 5 blockchain nodes in the blockchain network, for example, taking the example that the blockchain node 1 detects the first priority transaction, the blockchain node 1 determines, by reading the first priority transaction, that the number of elements included in the first priority transaction is 2, that is, (P, h), at this time, through a common known correspondence between the blockchain network and the client, that is, a correspondence between the number included in the priority transaction and the number of priority nodes, it can be determined that k is 2, that is, there are 2 priority nodes in the priority queue, so that a transaction decryption processing mode corresponding to k being 2 can be adopted. The transaction decryption processing mode comprises the following specific processes:
step a, a block chain link point 1 generates a first decryption private key rv through a number domain inversion algorithm by using a private key r1 of the block chain link point, namely rv = -r 1.
Step b, the partition chain node point 1 reads a partition chain node public key list pk _ list = { pk1, pk2, …, pkm } from the partition chain, and the public key list pk _ list can be used as a partition confirmation decryption parameter.
And c, sequentially traversing each element in the public key list pk _ list by the block chain node 1, for example, traversing the public key pki, and generating a first decryption fragment T, namely T = (rv × G, pki), according to the first decryption private key rv and the public key pki.
Step d, the block chain node point 1 generates a first decrypted transaction tx _ try by using the first decrypted segment T and the first priority commitment P in the first priority transaction through a bilinear mapping algorithm, that is, tx _ try = P × T. Specifically, in calculating the first decrypted transaction tx _ try, it may be calculated by tx _ try = e (pk1, pk3) × tx × e (rv × G, pki) = e (r1 × G, r3 × G) × tx × e (-r1 ^ G, ri ^ G) = tx ^ e (G, G) ^ r1r3 ^ e (G, G) ^ r1ri = tx ^ e (G, G) ^ G (r1r3-r1 ri). As can be seen, when ri = r3, r1r3-r1ri = r1r3-r1r 3=0, tx _ try = tx × e (G, G) ^0= tx can be obtained.
Step e, the block chain node 1 performs a hash operation on the first decrypted transaction tx _ try through a set hash algorithm, such as MD5 or SHA256 algorithm, to generate a hash value h 'of the first decrypted transaction tx _ try, that is, h' = hash (tx _ try).
Step f, the block chain node 1 determines whether the hash value h' of the first decrypted transaction tx _ try is equal to the hash value h of the transaction in the first priority transaction. If the two decryption transactions tx _ try and tx _ try are determined to be equal, the hash values h' of the first decryption transaction tx _ try and tx _ try can be packed into a block, the block is synchronized to other block chain nodes for common identification verification, and if the common identification of the chain nodes of other blocks is determined to be successful, the block is uplink. If not, re-executing steps a to f until other block chain nodes synchronize to obtain the correct tx _ try, or until the hash value of the first decrypted transaction tx _ try is successfully obtainedEqual to the hash value h of the transaction in the first priority transaction.
It should be noted that, if the block chain link point executing the specific process of the transaction decryption processing method is in the priority queue, that is, the block chain link node is the priority node, the specific process executing the transaction decryption processing method may be used to successfully decrypt the transaction, that is, the decrypted first decrypted transaction is the transaction that the client needs to process. Assuming there are m blockchain nodes in the blockchain network, the transaction can be successfully decrypted by trying m/2 times on average. If the block link node executing the specific process of the transaction decryption processing mode is not in the priority queue, that is, the block link point is not a priority node, the block link point continues to traverse the public key list pk _ list, and when the public key pki is traversed, the public key pki is subjected to a number domain inversion algorithm (i.e., an elliptic curve point domain inverse algorithm) to generate a decrypted public key pk ', that is, pk' = -pki, and simultaneously another public key pkj in the public key list pk _ list is sequentially extracted, where the another public key pkj is any one of the public keys extracted in the public key list pk _ list in order. And generating a decrypted slice T, namely T = (-pki, pkj) according to the decrypted public key pk' and the other public key pkj. And generating a decrypted transaction tx _ try by the decrypted fragment T and the first priority commitment P in the first priority transaction through a bilinear mapping algorithm, namely tx _ try = P × T until a correct result hash (tx _ try) is traversed. Assuming there are m blockchain nodes in the blockchain network, the transaction is successfully decrypted by trying m x (m-1)/2 times on average.
Or, for any block chain node, when the number of elements included in the first priority transaction of the block chain node determines that k is 1, a transaction decryption processing mode corresponding to k being 1 is adopted, that is, a private key of the block chain node generates a first decryption private key through a number domain inversion algorithm, obtains a first priority placeholder from the first priority transaction, and generates a first decryption fragment according to the first decryption private key and the first priority placeholder, wherein the first decryption fragment is used for assisting the block chain node in decrypting the first decryption transaction. And generating a first decryption transaction by the first decryption fragment and a first priority commitment in the first priority transaction through a bilinear mapping algorithm, and judging whether the block chain link point really and successfully decrypts the transaction by judging whether the hash value of the first decryption transaction is equal to the hash value of the transaction, so as to determine whether the block chain node executes the block output operation aiming at the transaction. That is, after determining that the hash value of the first decrypted transaction is equal to the hash value of the transaction, the hash values of the first decrypted transaction and the first decrypted transaction are packed into a block, the block is synchronized to other block chain nodes for consensus verification, and if determining that the link nodes of other blocks are successfully consensus, the block is linked. In addition, under the condition that the number k of the priority nodes is 1, if the block chain node determines that the block chain node does not successfully decrypt the transaction by the method, and determines that the hash value of each first decrypted transaction corresponding to the other m-1 block chain nodes is not equal to the hash value of the transaction, the transaction can be processed by another transaction decryption processing method. Specifically, public keys of m block chain nodes are obtained from a block chain, the public key of any block chain node is subjected to a number domain inversion algorithm to generate a first decryption public key, and a third decryption fragment is generated based on the first decryption public key and a first priority placeholder in a first priority transaction. And generating a third decrypted transaction according to the third decrypted fragment and a first priority commitment in the first priority transaction by a bilinear mapping algorithm, and judging whether the hash value of the third decrypted transaction is equal to the hash value of the transaction to judge whether the block chain link point really and successfully decrypts the transaction, so as to determine whether the block chain node executes the block output operation aiming at the transaction. That is, after the equality is determined, the block link node packs the third decrypted transaction and the hash value of the third decrypted transaction into a block, synchronizes the block to other block link nodes for consensus verification, and if the consensus is determined to be successful, uplinks the block.
For example, continuing to describe the case where there are 5 blockchain nodes in the blockchain network, for example, taking the example that the blockchain node 1 detects the first priority transaction, the blockchain node 1 determines, by reading the first priority transaction, that the number of elements included in the first priority transaction is 3, that is, (P, h, R), at this time, through a known corresponding relationship between the blockchain network and the client, that is, a corresponding relationship between the number included in the priority transaction and the number of priority nodes, it can be determined that k is 1, that is, there are 1 priority nodes in the priority queue, so that the transaction decryption processing mode corresponding to k being 1 can be adopted. The transaction decryption processing mode comprises the following specific processes:
step a, a block chain link point 1 generates a first decryption private key rv through a number domain inversion algorithm by using a private key r1 of the block chain link point, namely rv = -r 1.
And b, generating a first decryption fragment T, namely T = (rv × G, R) by the block chain node 1 according to the first decryption private key rv and the first priority placeholder R in the first priority transaction.
And c, the block chain node point 1 generates a first decrypted transaction tx _ try by the first decrypted segment T and the first priority commitment P in the first priority transaction through a bilinear mapping algorithm, namely tx _ try = P × T. Specifically, in calculating the first decrypted transaction tx _ try, it may be calculated by tx _ try = e (pk1, R) × tx ^ e (rv ^ G, R) = e (R1 ^ G, R ^ G) = tx ^ e (-R1 ^ G, R ^ G) = tx ^ e (G, G) ^ R1R ^ e (G, G) ^ R1R = tx ^ e (G, G) ^ (R1R-R1R) = tx ^ e (G, G) ^0= tx.
In step d, the block chain node 1 performs a hash operation on the first decrypted transaction tx _ try through a set hash algorithm, such as MD5 or SHA256 algorithm, to generate a hash value h 'of the first decrypted transaction tx _ try, that is, h' = hash (tx _ try).
Step e, the block chain node 1 determines whether the hash value h' of the first decrypted transaction tx _ try is equal to the hash value h of the transaction in the first priority transaction. If the two decryption transactions tx _ try and tx _ try are determined to be equal, the hash values h' of the two decryption transactions tx _ try and tx _ try can be packed into a block, the block is synchronized to other block chain nodes for common identification verification, if the common identification of the chain nodes of other blocks is determined to be successful, the block is uplink, and meanwhile, the block is determined to be a priority node, and the operation is terminated. If not, step f is performed.
And f, the block chain node 1 determines whether other block chain nodes synchronously aim at the block of the transaction, if so, the hash operation is carried out on the decrypted transaction in the block through the set hash operation, the hash value of the decrypted transaction is determined, whether the hash value of the decrypted transaction is equal to the hash value of the transaction in the block is verified, if so, the operation is terminated, and if not, the step g is executed.
Step g, the partition link point 1 reads a partition link point public key list pk _ list = { pk1, pk2, …, pkm } from the partition link, and the public key list pk _ list may be used as a partition verification decryption parameter.
And h, sequentially traversing each element in the public key list pk _ list by the block link point 1, for example, traversing the public key pki, and generating a decrypted public key pkv (pkv = -pki) by the public key pki through a number domain inversion algorithm (namely, an elliptic curve point domain inverse element algorithm).
Step i, the chunk chain node 1 generates a third decrypted segment T, i.e. T = (pkv, R), according to the decrypted public key pkv and the first priority placeholder R in the first priority transaction.
And step j, the block chain node point 1 generates a third decrypted transaction tx _ try by the third decrypted segment T and the first priority commitment P in the first priority transaction through a bilinear mapping algorithm, namely tx _ try = P × T. Specifically, in calculating the first decrypted transaction tx _ try, it may be calculated by tx _ try = e (pk1, R) × tx ^ e (pkv, R) = e (R1 ^ G, R ^ G) = tx ^ e (-ri ^ G, R ^ G) = tx ^ e (G, G) ^ R1R ^ e (G, G) ^ rir = tx ^ e (G, G) ^ R1R-rir). As can be seen, when ri = r1, r1r-rir = r1r-r1r =0, so that tx _ try = tx × e (G, G) ^0= tx.
In step k, the block chain node 1 performs a hash operation on the first decrypted transaction tx _ try through a set hash algorithm, such as MD5 or SHA256 algorithm, to generate a hash value h 'of the first decrypted transaction tx _ try, that is, h' = hash (tx _ try).
Step l, the block chain node 1 determines whether the hash value h' of the first decrypted transaction tx _ try is equal to the hash value h of the transaction in the first priority transaction. If the third decrypted transaction tx _ try and the hash value h 'of the third decrypted transaction tx _ try are determined to be equal, the third decrypted transaction tx _ try and the hash value h' of the third decrypted transaction tx _ try can be packaged into a block, the block is synchronized to other block chain nodes for common identification verification, and if the common identification of the chain nodes of other blocks is determined to be successful, the block is uplink. If not, re-executing step h to step l until other block chain nodes synchronize to obtain correct tx _ try, or until the hash value of the third decrypted transaction tx _ try is successfully obtainedEqual to the hash value h of the transaction in the first priority transaction.
It should be noted that, if the block chain link point executing the specific process of the transaction decryption processing method is in the priority queue, that is, the block chain link node is the priority node, the transaction can be successfully decrypted by executing the specific process of the transaction decryption processing method only once, that is, the first decrypted transaction obtained by decryption is the transaction that the client needs to process. If the blockchain node executing the specific process of the transaction decryption processing mode is not in the priority queue, assuming that there are m blockchain link nodes in the blockchain network, it is required to try m/2 times on average to successfully decrypt the transaction.
Or, for any blockchain node, when it is determined that k is 0 through the number of elements included in the second priority transaction, the blockchain node adopts a transaction decryption processing mode corresponding to k being 0, that is, two unequal second priority placeholders and third priority placeholders are obtained from the second priority transaction, and a second decryption fragment is generated according to the second priority placeholder and the third priority placeholder. And generating a second decryption transaction according to the second decryption fragment and a second priority commitment in the second priority transaction through a bilinear mapping algorithm, and judging whether the hash value of the second decryption transaction is equal to the hash value of the transaction to judge whether the block chain link point really and successfully decrypts the transaction, so as to determine whether the block chain node executes the block output operation aiming at the transaction. That is, after determining equality, the block link node packs the second decrypted transaction and the hash value of the second decrypted transaction into a block, synchronizes the block to other block link nodes for consensus verification, and if it is determined that consensus is successful, uplinks the block.
For example, continuing to describe the case where there are 5 blockchain nodes in the blockchain network, for example, taking the example that the blockchain node 1 detects the second priority transaction, the blockchain node 1 determines, by reading the second priority transaction, that the number of elements included in the second priority transaction is 4, that is, (P, h, Ra, Rb), at this time, through a known correspondence between the blockchain network and the client, that is, a correspondence between the number included in the priority transaction and the number of priority nodes, it can be determined that k is 0, that is, there are 0 priority nodes in the priority queue, so that the transaction decryption processing mode corresponding to k being 0 can be adopted. The transaction decryption processing mode comprises the following specific processes:
step a, the block chain link point 1 acquires a second priority placeholder Ra and a third priority placeholder Rb from the second priority transaction, and generates a second decryption fragment T according to the second priority placeholder Ra and the third priority placeholder Rb, namely T = (-Ra, Rb).
And b, the block chain node point 1 generates a second decrypted transaction tx _ try by the second decrypted segment T and a second priority commitment P in the second priority transaction through a bilinear mapping algorithm, namely tx _ try = P × T. Specifically, in calculating the first decrypted transaction tx _ try, the calculation may be performed in such a way that tx _ try = e (Ra, Rb) × tx ^ e (-Ra, Rb) = e (Ra × G, Rb × G) × tx ^ e (-Ra × G, Rb) = G) = tx ^ e (G, G) ^ rarb ^ e (G, G) ^ e (G, G) ^ rarb = tx ^ e (G, G) ^ rab) = tx ^ e (G, G) ^0= tx.
In step c, the block chain node 1 performs a hash operation on the second decrypted transaction tx _ try through a set hash algorithm, such as MD5 or SHA256 algorithm, to generate a hash value h ″ of the second decrypted transaction tx _ try, that is, h "= hash (tx _ try).
Step d, the block chain node 1 determines whether the hash value h "of the second decrypted transaction tx _ try is equal to the hash value h of the transaction in the second priority transaction. If the two decryption transactions tx _ try and tx _ try are determined to be equal, the hash value h ″ of the two decryption transactions tx _ try can be packed into a block, the block is synchronized to other block chain nodes for common identification verification, and if the common identification of the chain nodes of other blocks is determined to be successful, the block is uplink. If the determination result is not equal, the transaction is prompted to be abnormal, and the transaction is terminated.
The above embodiments show that, because the relationships of each block link node in the block link network in the prior art are equivalent, and the calculation capabilities of each block link node are the same, the block acknowledgement algorithm related to the prior art also aims at each block link point in the equivalent relationship, and thus the block acknowledgement process having the requirement of a priority node (i.e., assigning some block link points to preferentially process transactions) cannot be supported, and meanwhile, because the calculation capabilities of each block link point in the prior art are the same, no node can complete the block acknowledgement process first, so that each block link point needs to spend a long time to perform block acknowledgement through a workload certification mechanism, thereby resulting in low efficiency of block uplink. Based on this, the technical solution in the present invention uses the designated part of the blockchain nodes as the priority nodes, so that when the computing capabilities of the blockchain nodes in the blockchain network are the same or close, the priority nodes designated by the client have a great probability of completing the blockchain confirmation process first, thereby saving the time consumed by the blockchain confirmation process and effectively improving the efficiency of blockchain. Specifically, for any transaction, the client may determine k block link nodes from the m block link nodes as priority nodes, and generate a first obfuscation factor based on public keys of the k priority nodes. And then generating a first priority commitment based on the first confusion factor and the transaction, wherein the first priority commitment is used as a certificate for confirming the node transaction, and after generating the first priority transaction based on the first priority commitment and a hash value of the transaction, the first priority transaction is sent to a blockchain network, and a certain blockchain node (such as a priority node) in the blockchain network can recover the transaction through the first priority commitment in the first priority transaction. Therefore, according to the scheme, under the condition that the computing capacities of all blockchain nodes in a blockchain network are the same or close to each other, the priority node designated by the client has a great probability of recovering the transaction through the first priority commitment in the first priority transaction first, so that the process of block confirmation is completed quickly, even under the condition that the computing capacities of all blockchain nodes are different, the priority node also has a great probability of recovering the transaction through the first priority commitment in the first priority transaction first, so that the process of block confirmation is completed quickly, and the uplink efficiency of blocks can be effectively improved. Meanwhile, the client does not directly send the transaction to the blockchain network, but performs obfuscation processing on the transaction through the first obfuscation factor, and sends the hash value of the transaction and the first preferential commitment obtained after the obfuscation processing to the blockchain network, so that the risk of leakage of transaction data can be avoided, and the privacy security of the transaction data can be ensured.
Based on the same technical concept, fig. 2 exemplarily shows a block verification apparatus provided in an embodiment of the present invention, which can execute a flow of a block verification method. The block confirmation method is suitable for a block chain network with m block chain nodes.
As shown in fig. 2, the apparatus includes:
a determining unit 201, configured to determine, for any transaction, k block link points from the m block link nodes as priority nodes;
a first processing unit 202, configured to generate a first confusion factor based on public keys of the k priority nodes; generating a first priority commitment based on the first confounding factor and the transaction; generating a first priority transaction based on the first priority commitment and the hash value of the transaction, and sending the first priority transaction to the blockchain network.
Optionally, the first processing unit 202 is specifically configured to:
when the number k of the priority nodes is determined to be 2, generating the first confusion factor by the public keys of the k priority nodes through a bilinear mapping algorithm;
the first processing unit 202 is specifically configured to:
carrying out hash operation on the transaction to generate a hash value of the transaction;
and generating the first priority transaction according to the first priority commitment and the hash value of the transaction.
Optionally, the first processing unit 202 is specifically configured to:
when the number k of the priority nodes is determined to be 1, determining a first priority placeholder based on an elliptic curve, and generating a first confusion factor by the first priority placeholder and public keys of the k priority nodes through a bilinear mapping algorithm;
the first processing unit 202 is specifically configured to:
carrying out hash operation on the transaction to generate a hash value of the transaction;
generating the first priority transaction according to the first priority commitment, the first priority placeholder and the hash value of the transaction.
Optionally, the first processing unit 202 is further configured to:
when the number k of the priority nodes is determined to be 0, determining two unequal second priority placeholders and third priority placeholders based on an elliptic curve, and generating a second confusion factor by using the second priority placeholder and the third priority placeholder through a bilinear mapping algorithm;
generating a second priority commitment based on the second confounding factor and the transaction;
and generating the second priority transaction according to the second priority commitment, the second priority placeholder, the third priority placeholder and the hash value of the transaction, and sending the second priority transaction to the blockchain network.
Optionally, the first processing unit 202 is specifically configured to:
and generating a first priority commitment by the first confusion factor and the transaction through an elliptic curve point domain multiplication algorithm.
Based on the same technical concept, fig. 3 exemplarily shows another block verification apparatus provided in the embodiment of the present invention, which can execute the flow of the block verification method. The block confirmation method is suitable for a block chain network with m block chain nodes.
As shown in fig. 3, the apparatus includes:
a generating unit 301, configured to generate, for any blockchain node of the m blockchain nodes, a first decryption fragment based on a private key of the blockchain node when a first priority transaction is detected; the first priority transaction is generated by the client based on the first priority commitment and a hash value of the transaction; the first priority commitment is generated by the client based on a first obfuscation factor and the transaction; the first confusion factor is generated by the client based on public keys of k priority nodes determined by the client from the m blockchain nodes;
a second processing unit 302, configured to generate, according to the first decryption fragment and a first priority commitment in the first priority transaction, a first decryption transaction through a bilinear mapping algorithm; and when the hash value of the first decrypted transaction is determined to be equal to the hash value of the transaction in the first priority transaction, packaging the first decrypted transaction into blocks for uplink.
Optionally, the generating unit 301 is specifically configured to:
when the element number k contained in the first priority transaction is 2, generating a first decryption private key by a private key of the block chain node through a number domain inversion algorithm;
and acquiring the public keys of the m block chain nodes from the block chain, and generating the first decryption fragment according to the first decryption private key and the public key of the block chain node aiming at the public key of any block chain node.
Optionally, the generating unit 301 is specifically configured to:
when the element quantity indication k contained in the first priority transaction is 1, generating a first decryption private key by the private key of the block chain node through a number domain inversion algorithm;
and acquiring a first priority placeholder from the first priority transaction, and generating the first decryption fragment according to the first decryption private key and the first priority placeholder.
Optionally, the second processing unit 302 is further configured to:
when a second priority transaction is detected, acquiring two unequal second priority placeholders and a third priority placeholder from the second priority transaction; the element number indication k contained in the second priority transaction is 0;
generating a second decryption fragment according to the second priority placeholder and the third priority placeholder;
generating a second decryption transaction according to the second decryption fragment and a second priority commitment in the second priority transaction through a bilinear mapping algorithm;
and when the hash value of the second decrypted transaction is determined to be equal to the hash value of the transaction in the second priority transaction, packaging the second decrypted transaction into blocks for uplink.
Optionally, the second processing unit 302 is further configured to:
when the Hash values of the first decryption transactions corresponding to the m block chain link points are determined to be unequal to the Hash values of the transactions in the first priority transactions, public keys of the m block chain nodes are obtained from the block chain, and the public keys of the block chain nodes are subjected to a number domain inversion algorithm aiming at the public key of any one block chain node to generate a first decryption public key;
generating a third decrypted fragment based on the first decrypted public key;
generating a third decrypted transaction according to the third decrypted segment and a first priority commitment in the first priority transaction through a bilinear mapping algorithm;
and when the hash value of the third decrypted transaction is determined to be equal to the hash value of the transaction in the first priority transaction, packaging the third decrypted transaction into blocks for uplink.
Based on the same technical concept, an embodiment of the present invention further provides a computing device, as shown in fig. 4, including at least one processor 401 and a memory 402 connected to the at least one processor, where a specific connection medium between the processor 401 and the memory 402 is not limited in the embodiment of the present invention, and the processor 401 and the memory 402 are connected through a bus in fig. 4 as an example. The bus may be divided into an address bus, a data bus, a control bus, etc.
In the embodiment of the present invention, the memory 402 stores instructions executable by the at least one processor 401, and the at least one processor 401 can execute the steps included in the block verification method by executing the instructions stored in the memory 402.
The processor 401 is a control center of the computing device, and may be connected to various parts of the computing device through various interfaces and lines, and may perform data processing by executing or executing instructions stored in the memory 402 and calling data stored in the memory 402. Optionally, the processor 401 may include one or more processing units, and the processor 401 may integrate an application processor and a modem processor, where the application processor mainly processes an operating system, a user interface, an application program, and the like, and the modem processor mainly processes an issued instruction. It will be appreciated that the modem processor described above may not be integrated into the processor 401. In some embodiments, processor 401 and memory 402 may be implemented on the same chip, or in some embodiments, they may be implemented separately on separate chips.
The processor 401 may be a general-purpose processor, such as a Central Processing Unit (CPU), a digital signal processor, an Application Specific Integrated Circuit (ASIC), a field programmable gate array or other programmable logic device, discrete gate or transistor logic, discrete hardware components, or any combination thereof, configured to implement or perform the methods, steps, and logic blocks disclosed in embodiments of the present invention. A general purpose processor may be a microprocessor or any conventional processor or the like. The steps of the disclosed method in connection with the embodiments of the block verification method may be directly implemented by a hardware processor, or may be implemented by a combination of hardware and software modules in the processor.
Based on the same technical concept, embodiments of the present invention also provide a computer-readable storage medium storing a computer program executable by a computing device, wherein when the program runs on the computing device, the computer program causes the computing device to execute the steps of the block confirmation method.
As will be appreciated by one skilled in the art, embodiments of the present invention may be provided as a method, system, or computer program product. Accordingly, the present invention may take the form of an entirely hardware embodiment, an entirely software embodiment or an embodiment combining software and hardware aspects. Furthermore, the present invention may take the form of a computer program product embodied on one or more computer-usable storage media (including, but not limited to, disk storage, CD-ROM, optical storage, and the like) having computer-usable program code embodied therein.
The present invention is described with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems) and computer program products according to the invention. It will be understood that each flow and/or block of the flow diagrams and/or block diagrams, and combinations of flows and/or blocks in the flow diagrams and/or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, embedded processor, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions specified in the flowchart flow or flows and/or block diagram block or blocks.
These computer program instructions may also be stored in a computer-readable memory that can direct a computer or other programmable data processing apparatus to function in a particular manner, such that the instructions stored in the computer-readable memory produce an article of manufacture including instruction means which implement the function specified in the flowchart flow or flows and/or block diagram block or blocks.
These computer program instructions may also be loaded onto a computer or other programmable data processing apparatus to cause a series of operational steps to be performed on the computer or other programmable apparatus to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide steps for implementing the functions specified in the flowchart flow or flows and/or block diagram block or blocks.
While preferred embodiments of the present invention have been described, additional variations and modifications in those embodiments may occur to those skilled in the art once they learn of the basic inventive concepts. Therefore, it is intended that the appended claims be interpreted as including preferred embodiments and all such alterations and modifications as fall within the scope of the invention.
It will be apparent to those skilled in the art that various changes and modifications may be made in the present invention without departing from the spirit and scope of the invention. Thus, if such modifications and variations of the present invention fall within the scope of the claims of the present application and their equivalents, the present invention is also intended to include such modifications and variations.
Claims (14)
1. A block acknowledgement method for a blockchain network having m blockchain nodes, the method comprising:
for any transaction, the client determines k block chain link points from the m block chain nodes as priority nodes;
the client generates a first confusion factor based on the public keys of the k priority nodes;
generating, by the client, a first priority commitment based on the first obfuscation factor and the transaction;
the client generates a first priority transaction based on the first priority commitment and the hash value of the transaction, and sends the first priority transaction to the blockchain network.
2. The method of claim 1, wherein the client generating a first obfuscation factor based on public keys of k priority nodes comprises:
when the client determines that the number k of the priority nodes is 2, generating the first confusion factor by the public keys of the k priority nodes through a bilinear mapping algorithm;
the client generating a first priority transaction based on the first priority commitment and the hash value of the transaction, comprising:
the client carries out hash operation on the transaction to generate a hash value of the transaction;
and the client generates the first priority transaction according to the first priority commitment and the hash value of the transaction.
3. The method of claim 1, wherein the client generating a first obfuscation factor based on public keys of k priority nodes comprises:
when the client determines that the number k of the priority nodes is 1, determining a first priority placeholder based on an elliptic curve, and generating a first confusion factor by the first priority placeholder and public keys of the k priority nodes through a bilinear mapping algorithm;
the client generating a first priority transaction based on the first priority commitment and the hash value of the transaction, comprising:
the client carries out hash operation on the transaction to generate a hash value of the transaction;
the client generates the first priority transaction according to the first priority commitment, the first priority placeholder and the hash value of the transaction.
4. The method of claim 1, further comprising:
when the client determines that the number k of the priority nodes is 0, determining two unequal second priority placeholders and third priority placeholders based on an elliptic curve, and generating a second confusion factor by the second priority placeholder and the third priority placeholder through a bilinear mapping algorithm;
generating, by the client, a second priority commitment based on the second confusion factor and the transaction;
and the client generates a second priority transaction according to the second priority commitment, the second priority placeholder, the third priority placeholder and the hash value of the transaction, and sends the second priority transaction to the blockchain network.
5. The method of any of claims 1 to 3, wherein the client generating a first priority commitment based on the first obfuscation factor and the transaction, comprises:
and the client generates a first priority commitment by the first confusion factor and the transaction through an elliptic curve point domain multiplication algorithm.
6. A block acknowledgement method for a blockchain network having m blockchain nodes, the method comprising:
for any one of the m blockchain nodes, generating a first decryption fragment based on a private key of the blockchain node when the blockchain node detects a first priority transaction; the first priority transaction is generated by the client based on the first priority commitment and a hash value of the transaction; the first priority commitment is generated by the client based on a first obfuscation factor and the transaction; the first confusion factor is generated by the client based on public keys of k priority nodes determined by the client from the m blockchain nodes;
the block chain node generates a first decryption transaction according to the first decryption fragment and a first priority commitment in the first priority transaction through a bilinear mapping algorithm;
and when the block chain node determines that the hash value of the first decrypted transaction is equal to the hash value of the transaction in the first priority transaction, packaging the first decrypted transaction into blocks for uplink.
7. The method of claim 6, wherein the blockchain node generating a first decrypted segment based on a private key of the blockchain node upon detecting the first priority transaction comprises:
when the number k of the elements contained in the first priority transaction is 2, the private key of the block chain node is subjected to a number domain inversion algorithm to generate a first decryption private key;
and the block chain node acquires the public keys of the m block chain nodes from the block chain, and generates the first decryption fragment according to the first decryption private key and the public key of the block chain node aiming at the public key of any block chain node.
8. The method of claim 6, wherein the blockchain node generating a first decrypted segment based on a private key of the blockchain node upon detecting the first priority transaction comprises:
when the number of elements contained in the first priority transaction indicates that k is 1, the private key of the block chain node is subjected to a number domain inversion algorithm to generate a first decryption private key;
and the block chain node acquires a first priority placeholder from the first priority transaction, and generates the first decryption fragment according to the first decryption private key and the first priority placeholder.
9. The method of claim 6, further comprising:
when detecting a second priority transaction, the blockchain node acquires two unequal second priority placeholders and a third priority placeholder from the second priority transaction; the element number indication k contained in the second priority transaction is 0;
the block chain node generates a second decryption fragment according to the second priority placeholder and the third priority placeholder;
generating a second decryption transaction by the block chain node according to the second decryption fragment and a second priority commitment in the second priority transaction through a bilinear mapping algorithm;
and when the block chain node determines that the hash value of the second decrypted transaction is equal to the hash value of the transaction in the second priority transaction, packaging the second decrypted transaction into blocks for uplink.
10. The method of claim 6, further comprising:
when the block chain nodes determine that the hash value of each first decryption transaction corresponding to the m block chain link nodes is unequal to the hash value of the transaction in the first priority transaction, acquiring public keys of the m block chain nodes from the block chain, and generating a first decryption public key by using a number domain inversion algorithm for the public key of any one block chain node;
the block chain link point generates a third decryption fragment based on the first decryption public key;
generating a third decrypted transaction by the block chain node according to the third decrypted fragment and a first priority commitment in the first priority transaction through a bilinear mapping algorithm;
and when the block chain node determines that the hash value of the third decrypted transaction is equal to the hash value of the transaction in the first priority transaction, packaging the third decrypted transaction into blocks for uplink.
11. A block acknowledgement apparatus adapted for a blockchain network having m blockchain nodes, the apparatus comprising:
a determining unit, configured to determine k block link points from the m block link nodes as priority nodes for any transaction;
the first processing unit is used for generating a first confusion factor based on the public keys of the k priority nodes; generating a first priority commitment based on the first confounding factor and the transaction; generating a first priority transaction based on the first priority commitment and the hash value of the transaction, and sending the first priority transaction to the blockchain network.
12. A block acknowledgement apparatus adapted for a blockchain network having m blockchain nodes, the apparatus comprising:
the generation unit is used for generating a first decryption fragment based on a private key of each block chain node when a first priority transaction is detected for any one of the m block chain nodes; the first priority transaction is generated by the client based on the first priority commitment and a hash value of the transaction; the first priority commitment is generated by the client based on a first obfuscation factor and the transaction; the first confusion factor is generated by the client based on public keys of k priority nodes determined by the client from the m blockchain nodes;
the second processing unit is used for generating a first decrypted transaction according to the first decrypted fragment and a first priority commitment in the first priority transaction through a bilinear mapping algorithm; and when the hash value of the first decrypted transaction is determined to be equal to the hash value of the transaction in the first priority transaction, packaging the first decrypted transaction into blocks for uplink.
13. A computing device comprising at least one processor and at least one memory, wherein the memory stores a computer program that, when executed by the processor, causes the processor to perform the method of any of claims 1 to 10.
14. A computer-readable storage medium, storing a computer program executable by a computing device, the program, when run on the computing device, causing the computing device to perform the method of any of claims 1 to 10.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111254334.8A CN113706150B (en) | 2021-10-27 | 2021-10-27 | Block confirmation method and device |
PCT/CN2021/135349 WO2023070831A1 (en) | 2021-10-27 | 2021-12-03 | Block confirmation method and device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111254334.8A CN113706150B (en) | 2021-10-27 | 2021-10-27 | Block confirmation method and device |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113706150A true CN113706150A (en) | 2021-11-26 |
CN113706150B CN113706150B (en) | 2022-02-08 |
Family
ID=78647086
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111254334.8A Active CN113706150B (en) | 2021-10-27 | 2021-10-27 | Block confirmation method and device |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN113706150B (en) |
WO (1) | WO2023070831A1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023070831A1 (en) * | 2021-10-27 | 2023-05-04 | 深圳前海微众银行股份有限公司 | Block confirmation method and device |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116450746B (en) * | 2023-05-05 | 2024-10-15 | 桂林电子科技大学 | Attribute searchable encryption system and method based on blockchain |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109840771A (en) * | 2019-04-01 | 2019-06-04 | 西安电子科技大学 | A kind of block chain intimacy protection system and its method based on homomorphic cryptography |
US20190268312A1 (en) * | 2018-11-27 | 2019-08-29 | Alibaba Group Holding Limited | System and method for information protection |
US20200311678A1 (en) * | 2017-09-22 | 2020-10-01 | nChain Holdings Limited | Smart contract execution using distributed coordination |
US20210026971A1 (en) * | 2019-07-25 | 2021-01-28 | Sap Se | Privacy-preserving Sum-based Consistency Checks for Blockchains |
CN112365252A (en) * | 2020-07-31 | 2021-02-12 | 深圳市网心科技有限公司 | Account model-based privacy transaction method and device and related equipment |
US20210224792A1 (en) * | 2020-01-22 | 2021-07-22 | Mastercard International Incorporated | Method and system for prevention of lost currency in blockchain networks to missing wallets |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10484186B2 (en) * | 2016-09-30 | 2019-11-19 | Intel Corporation | Cascading multivariate quadratic identification schemes for chain of trust |
US10880089B2 (en) * | 2017-03-15 | 2020-12-29 | NuID, Inc. | Methods and systems for universal storage and access to user-owned credentials for trans-institutional digital authentication |
CN109359974B (en) * | 2018-08-30 | 2020-10-30 | 创新先进技术有限公司 | Block chain transaction method and device and electronic equipment |
CN111709738B (en) * | 2020-05-18 | 2023-08-01 | 杜晓楠 | Method for hiding transaction amount in blockchain system, computer readable storage medium and blockchain system |
CN112383389B (en) * | 2021-01-08 | 2021-04-20 | 深圳索信达数据技术有限公司 | Block chain random number generation method and system |
CN113706150B (en) * | 2021-10-27 | 2022-02-08 | 深圳前海微众银行股份有限公司 | Block confirmation method and device |
-
2021
- 2021-10-27 CN CN202111254334.8A patent/CN113706150B/en active Active
- 2021-12-03 WO PCT/CN2021/135349 patent/WO2023070831A1/en unknown
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200311678A1 (en) * | 2017-09-22 | 2020-10-01 | nChain Holdings Limited | Smart contract execution using distributed coordination |
US20190268312A1 (en) * | 2018-11-27 | 2019-08-29 | Alibaba Group Holding Limited | System and method for information protection |
CN109840771A (en) * | 2019-04-01 | 2019-06-04 | 西安电子科技大学 | A kind of block chain intimacy protection system and its method based on homomorphic cryptography |
US20210026971A1 (en) * | 2019-07-25 | 2021-01-28 | Sap Se | Privacy-preserving Sum-based Consistency Checks for Blockchains |
US20210224792A1 (en) * | 2020-01-22 | 2021-07-22 | Mastercard International Incorporated | Method and system for prevention of lost currency in blockchain networks to missing wallets |
CN112365252A (en) * | 2020-07-31 | 2021-02-12 | 深圳市网心科技有限公司 | Account model-based privacy transaction method and device and related equipment |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023070831A1 (en) * | 2021-10-27 | 2023-05-04 | 深圳前海微众银行股份有限公司 | Block confirmation method and device |
Also Published As
Publication number | Publication date |
---|---|
CN113706150B (en) | 2022-02-08 |
WO2023070831A1 (en) | 2023-05-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108053211B (en) | Transaction processing method and device based on block chain | |
CN109886040B (en) | Data processing method, data processing device, storage medium and processor | |
CN110798308A (en) | Block chain signature method and system | |
CN111131171B (en) | Node authentication method and device based on block chain network | |
WO2020038137A1 (en) | Two-dimensional code generation method, data processing method, apparatus, and server | |
CN111064583B (en) | Threshold SM2 digital signature method and device, electronic equipment and storage medium | |
CN113706150B (en) | Block confirmation method and device | |
US20110246779A1 (en) | Zero-knowledge proof system, zero-knowledge proof device, zero-knowledge verification device, zero-knowledge proof method and program therefor | |
CN110224811B (en) | Internet of things encryption processing method, device and system | |
CN111080296B (en) | Verification method and device based on blockchain system | |
CN113301114A (en) | Block chain consensus node selection method and device, computer equipment and storage medium | |
CN113326525B (en) | Data processing method and device based on intelligent contract | |
CN111311258A (en) | Block chain based trusted transaction method, device, system, equipment and medium | |
CN102270285B (en) | Key authorization information management method and device | |
CN110716724B (en) | Method and device for realizing privacy block chain based on FPGA | |
CN112287366A (en) | Data encryption method and device, computer equipment and storage medium | |
JP6273226B2 (en) | Encryption system, authentication system, encryption device, decryption device, authenticator generation device, verification device, encryption method, authentication method | |
CN114386058A (en) | Model file encryption and decryption method and device | |
CN111147477B (en) | Verification method and device based on block chain network | |
CN111784338B (en) | Information processing method, device, system and storage medium | |
CN108199836A (en) | A kind of key and apparatus bound, the method and device of solution binding | |
CN115426106A (en) | Identity authentication method, device, system, electronic equipment and storage medium | |
CN115134145B (en) | Consensus method, apparatus, computing device and computer readable storage medium in blockchain system | |
CN118378240B (en) | Firmware secure start method and system | |
CN113972984B (en) | ElGamal ciphertext equivalent judgment method and device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |