WO2021008117A1 - 用于进行交易验证的方法及装置 - Google Patents

用于进行交易验证的方法及装置 Download PDF

Info

Publication number
WO2021008117A1
WO2021008117A1 PCT/CN2020/071740 CN2020071740W WO2021008117A1 WO 2021008117 A1 WO2021008117 A1 WO 2021008117A1 CN 2020071740 W CN2020071740 W CN 2020071740W WO 2021008117 A1 WO2021008117 A1 WO 2021008117A1
Authority
WO
WIPO (PCT)
Prior art keywords
transaction
confirmer
signature
information
designated
Prior art date
Application number
PCT/CN2020/071740
Other languages
English (en)
French (fr)
Inventor
祁鹏涛
Original Assignee
创新先进技术有限公司
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 创新先进技术有限公司 filed Critical 创新先进技术有限公司
Priority to US16/779,201 priority Critical patent/US10951417B2/en
Publication of WO2021008117A1 publication Critical patent/WO2021008117A1/zh
Priority to US17/201,181 priority patent/US11240041B2/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3825Use of electronic signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3829Payment protocols; Details thereof insuring higher security of transaction involving key management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/40Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
    • G06Q20/401Transaction verification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/42Confirmation, e.g. check or permission by the legal debtor of payment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/04Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange

Definitions

  • the present disclosure relates to the field of blockchain technology, in particular, to methods and devices for transaction verification.
  • Blockchain technology uses chained data structures to verify and store data, and uses distributed node consensus algorithms to generate and update data, and uses cryptography to ensure data transmission and access security.
  • blockchain technology uses blockchain technology to process transactions, for transactions initiated by the client, the transaction will be executed only when the transaction is verified, thus ensuring the security of the transaction.
  • the transaction initiated by the initiator may have other related parties, and only when the transaction is confirmed by other related parties can the transaction be confirmed as a legal transaction.
  • the transaction initiated by the initiator may have other related parties, and only when the transaction is confirmed by other related parties can the transaction be confirmed as a legal transaction.
  • a supply chain collaboration scenario involving the transfer of transactions between multiple transaction parties, in order to ensure transaction security, before executing the transaction, it is necessary to confirm that each transaction party has confirmed the transaction before the transaction can be executed.
  • the present disclosure provides a method and device for transaction verification.
  • a customized transaction verification process can be provided for each transaction, and the amount of data access in the verification process can be reduced.
  • a method for transaction verification including: receiving transaction data to be verified, the transaction data to be verified including transaction information plaintext and at least one confirming party signature for the transaction information plaintext Data, the transaction information plaintext includes a designated confirmer information set, the designated confirmer information set includes designated confirmer information of at least one designated confirmer designated to confirm the transaction information plaintext, and the confirmer signature data
  • the signature of the confirming party is included; for the confirming party signature in the at least one confirming party signature data, based on the confirming party signature data and the transaction information plaintext, verifying the confirming party signature in the confirming party signature data to obtain verification Passed confirmer information set; and when the verified confirmer information set includes a predetermined number of designated confirmer information in the designated confirmer information set, it is determined that the data to be verified has passed the verification.
  • each designated confirming party may have a designated confirming party weight
  • the verification passed confirming party information set includes a predetermined number of designated confirming party information in the designated confirming party information set
  • the verification of the to-be-verified data may further include: when the verified party information set includes a predetermined number of designated confirming party information in the designated confirming party information set, and the information corresponding to the predetermined number of designated confirming party information
  • the sum of the weights of the designated confirming party is not lower than the first predetermined value, it is determined that the verification of the data to be verified passes.
  • the designated confirmer public key of the at least one designated confirmer may have a public key weight, and when the verification passed the confirmer information set includes a predetermined number of designated confirmers in the designated confirmer information set.
  • determining that the data to be verified has passed verification may further include: when the verified party information set includes a predetermined number of designated determiner information in the designated confirmer information set, and the predetermined number of designated determiner information When the sum of the weights of the public keys corresponding to the confirming party information is not lower than the second predetermined value, it is determined that the verification of the data to be verified passes.
  • the confirmer's signature data may also include the confirmer's public key, and based on the confirmer's signature data and the transaction information plaintext, verifying the confirmer's signature in the confirmer's signature data may be Including: using the confirming party’s public key in the confirming party’s signature data to decrypt the confirming party’s signature in the confirming party’s signature data to obtain the transaction information in the confirming party’s signature; when the transaction information in the confirming party’s signature When the transaction information is consistent in plain text, it is confirmed that the confirming party's signature verification is passed.
  • the designated confirming party information may include a designated confirming party public key
  • the verified verification party information set may include a verified verification party public key set.
  • the confirming party information may include a designated confirming party account
  • the verified verification party information set includes a verified verification party public key set
  • the method may further include: confirming based on the designated confirming party. At least one designated confirmer account in the party account set obtains the corresponding designated confirmer public key in the blockchain system to obtain the designated confirmer public key set.
  • determining that the data to be verified is verified may include: when the verified public key set of the verified party includes predetermined When there are a number of public keys of the designated confirming party, it is determined that the verification of the data to be verified passes.
  • the confirming party’s signature data may also include the confirming party’s account.
  • verifying the confirming party’s signature in the confirming party’s signature data may include : Based on the confirmer account, obtain the confirmer public key in the blockchain system; use the obtained confirmer public key to decrypt the confirmer signature in the confirmer’s signature data to obtain the transaction in the confirmer’s signature Information; When the transaction information in the signature of the confirming party is consistent with the plaintext of the transaction information, it is confirmed that the verification of the confirming party's signature is passed.
  • the designated confirming party information may include a designated confirming party public key
  • the verified verification party information set may include a verified verification party public key set.
  • the designated confirmer information may include a designated confirmer account
  • the verified confirmer information set may include a verified confirmer account set
  • the transaction data to be verified may further include transaction initiator signature data in plaintext of the transaction information, and the transaction initiator signature data includes the transaction initiator signature
  • the method may further include : Verify the signature of the transaction initiator based on the transaction information plaintext and the transaction initiator signature data; when the verification is passed, the confirmer information set includes a predetermined number of designated confirmers in the designated confirmer information set Information, determining that the data to be verified has passed the verification may include: when the verification passed confirmer information set includes a predetermined number of designated confirmer information in the designated confirmer information set and the transaction party passes the verification, determining all The data to be verified is verified.
  • the transaction initiator signature data may also include the transaction initiator public key, and based on the transaction information plaintext and the transaction initiator signature data, verifying the transaction initiator may include : Use the transaction initiator’s public key in the transaction initiator’s signature data to decrypt the transaction initiator’s signature to obtain the transaction information in the transaction initiator’s signature; based on the transaction initiator’s account in the plaintext of the transaction information, obtain The public key of the transaction initiator in the blockchain system; when the transaction information in the signature of the transaction initiator is consistent with the plaintext of the transaction information, and the transaction initiator’s public key in the transaction initiator’s signature data is consistent with the block When the public keys of the transaction initiator in the chain system are consistent, it is determined that the signature data of the transaction initiator has passed the verification.
  • verifying the transaction initiator based on the transaction information plaintext and the transaction initiator signature data may include: obtaining a region based on the transaction initiator account number in the transaction information plaintext The public key of the transaction initiator in the block chain system; using the acquired public key of the transaction initiator to decrypt the signature of the transaction initiator to obtain the transaction information in the signature of the transaction initiator; and when the transaction is initiated When the transaction information signed by the party is consistent with the plaintext of the transaction information, it is determined that the verification of the signature data of the transaction initiator passes.
  • a device for performing transaction verification including: a transaction data receiving unit to be verified, configured to receive transaction data to be verified, the transaction data to be verified including transaction information plaintext and counter At least one confirmer signature data in the transaction information plaintext, the transaction information plaintext includes a designated confirmer information set, and the designated confirmer information set includes at least one designated confirmer designated to confirm the transaction information plaintext Specify confirmer information, the confirmer signature data includes the confirmer signature; the confirmer signature verification unit is configured to sign for the confirmer in the at least one confirmer signature data, based on the confirmer signature data and the transaction Information plaintext, verifying the confirming party signature in the confirming party’s signature data to obtain the verified party information set; and the to-be-verified data verification unit is configured to when the verified party information set includes the designated confirmation When a predetermined number of designated party information is in the party information set, it is determined that the verification of the data to be verified passes.
  • each designated confirming party may have a designated confirming party weight
  • the to-be-verified data verification unit may be configured to: when the verification passed confirming party information set includes the designated confirming party information When the predetermined number of designated confirming party information is collected, and when the sum of the designated confirming party weights corresponding to the predetermined number of designated confirming party information is not lower than the first predetermined value, it is determined that the data to be verified has passed the verification.
  • the designated confirming party public key of the at least one designated confirming party may have a public key weight
  • the to-be-verified data verification unit may be configured to: when the verification passes, the confirming party information set includes When the predetermined number of designated confirming party information in the designated confirming party information set, and when the sum of the public key weights corresponding to the predetermined number of designated confirming party information is not lower than the second predetermined value, it is determined that the data to be verified is verified by.
  • the confirmer signature data may further include the confirmer public key
  • the confirmer signature verification unit may include: a confirmer signature decryption module configured to use the validator signature data
  • the confirming party’s public key is used to decrypt the confirming party’s signature in the confirming party’s signature data to obtain the transaction information in the confirming party’s signature; and the confirming party’s signature verification module is configured to match the transaction information in the confirming party’s signature
  • the transaction information is consistent in plain text, it is confirmed that the confirming party's signature verification is passed.
  • the confirmer information may include a designated confirmer account
  • the verified confirmer information set includes a verified confirmer public key set
  • the device may further include: a designated confirmer public key
  • the set obtaining unit is configured to obtain the corresponding designated confirming party public key in the blockchain system based on at least one designated confirming party account in the designated confirming party account set to obtain the designated confirming party public key set.
  • the to-be-verified data verification unit is configured to: determine that the to-be-verified data is verified as being passed when the public key set of the verified party that has passed the verification includes a predetermined number of public keys of the designated confirming party.
  • the confirmer’s signature data may further include the confirmer’s account
  • the confirmer’s signature verification unit may include: a confirmer’s public key acquisition module configured to acquire based on the confirmer’s account.
  • the confirmer public key in the blockchain system the confirmer signature decryption module is configured to use the obtained confirmer public key to decrypt the confirmer’s signature in the confirmer’s signature data to obtain the transaction in the confirmer’s signature Information; and the confirming party signature verification module, configured to confirm that the confirming party's signature verification is passed when the transaction information in the confirming party's signature is consistent with the plaintext of the transaction information.
  • the transaction data to be verified may also include transaction initiator signature data in plaintext of the transaction information, the transaction initiator signature data includes the transaction initiator signature, and the device may also include :
  • the transaction initiator signature data verification unit is configured to verify the transaction initiator signature based on the transaction information plaintext and the transaction initiator signature data.
  • the data verification unit to be verified is configured to determine the data to be verified when the verified verification party information set includes a predetermined number of designated verification party information in the designated verification party information set and the transaction party is verified Verification passed.
  • the transaction initiator signature data may also include the transaction initiator public key
  • the transaction initiator signature data verification unit may include: a transaction initiator signature decryption module configured to use the The transaction initiator public key in the transaction initiator signature data decrypts the transaction initiator signature to obtain the transaction information in the transaction initiator signature
  • the public key acquisition module is configured to initiate the transaction based on the transaction information in the plain text Party account to obtain the public key of the transaction initiator in the blockchain system
  • the transaction initiator signature verification module configured to: when the transaction information in the transaction initiator’s signature is consistent with the transaction information, and the transaction
  • the public key of the transaction initiator in the signature data of the initiator is consistent with the public key of the transaction initiator in the blockchain system, it is determined that the verification of the signature data of the transaction initiator is passed.
  • the transaction initiator signature data verification unit may include: a public key acquisition module configured to obtain the transaction in the blockchain system based on the transaction initiator account in the plaintext of the transaction information The public key of the initiator; the signature decryption module of the transaction initiator, configured to use the acquired public key of the transaction initiator to decrypt the signature of the transaction initiator to obtain the transaction information in the signature of the transaction initiator; and The initiator signature verification module is configured to determine that the transaction initiator signature data verification passes when the transaction information signed by the transaction initiator is consistent with the transaction information plaintext.
  • a computing device including: at least one processor; and a memory that stores instructions, and when the instructions are executed by the at least one processor, the at least one The processor executes the method described above.
  • a non-transitory machine-readable storage medium which stores executable instructions, which when executed cause the machine to perform the method as described above.
  • the transaction confirmer can be designated according to the nature of the transaction to provide a customized verification process for the transaction. In addition, the verification process also reduces the amount of data access.
  • each designated confirming party is given a designated confirming party weight.
  • the confirmed confirming party that has passed the verification includes a predetermined number of designated confirming parties, and the sum of the designated confirming party weights of the predetermined number of designated confirming parties reaches the first When the predetermined value is determined, it is determined that the transaction data to be verified has passed the verification, which can further improve the transaction security.
  • the public key weight is assigned to the public key of the designated confirming party, and the verification is passed when the confirming party information set includes a predetermined number of designated confirming party public keys in the designated confirming party public key set, and the predetermined number of designated confirmations
  • the sum of the weights of the public keys corresponding to the public keys of the parties is not lower than the second predetermined value, it is determined that the data to be verified has passed the verification, which can further improve the transaction security.
  • the public key set of the designated confirming party in the transaction data to be verified it is determined whether the verified party includes a predetermined number of Specifying the confirming party can simplify the verification process.
  • the transaction initiator by verifying the transaction initiator, when the transaction initiator passes the verification and the verified verification party information set includes a predetermined number of designated confirming party information, it is determined that the transaction data to be verified has passed the verification, thereby enabling When it is determined that the transaction initiator is a legitimate initiator, it is determined that the transaction data to be verified passes the verification, so as to improve transaction security.
  • FIG. 1 shows a schematic diagram of an example of an environment that can be used to execute a transaction verification method according to an embodiment of the present disclosure
  • Fig. 2 shows a schematic diagram of an example of a system architecture for executing a transaction verification method according to an embodiment of the present disclosure
  • Fig. 3 is a flowchart of a transaction verification method according to an embodiment of the present disclosure
  • Fig. 4 is an exemplary flowchart of a process of generating transaction data to be verified in a transaction verification method according to an embodiment of the present disclosure
  • FIG. 5 is a flowchart of the verification process of the transaction initiator and the verification process of the transaction data to be verified in the transaction verification method according to an embodiment of the present disclosure
  • FIG. 6 is a flowchart of an example of the verification process of the signature data of the transaction initiator in the transaction verification method according to an embodiment of the present disclosure
  • FIG. 7 is a flowchart of another example of the verification process of the signature data of the transaction initiator in the transaction verification method according to an embodiment of the present disclosure
  • FIG. 8 is a flowchart of an example of the verification process of the confirming party's signature in the transaction verification method according to an embodiment of the present disclosure
  • FIG. 9 is a flowchart of another example of the verification process of the confirmer's signature in the transaction verification method according to an embodiment of the present disclosure.
  • Fig. 10 is a structural block diagram of a transaction verification device according to an embodiment of the present disclosure.
  • FIG. 11 is a structural block diagram of an example of a transaction initiator signature data verification unit in the transaction verification device shown in FIG. 10;
  • FIG. 12 is a structural block diagram of another example of the transaction initiator signature data verification unit in the transaction verification device shown in FIG. 10;
  • FIG. 13 is a structural block diagram of an example of the confirmer's signature verification unit in the transaction verification device shown in FIG. 10;
  • FIG. 14 is a structural block diagram of another example of the signature verification unit of the confirming party in the transaction verification device shown in FIG. 10;
  • Fig. 15 is a structural block diagram of a computing device for implementing a transaction verification method according to an embodiment of the present disclosure.
  • the term “including” and its variants means open terms, meaning “including but not limited to.”
  • the term “based on” means “based at least in part on.”
  • the terms “one embodiment” and “an embodiment” mean “at least one embodiment.”
  • the term “another embodiment” means “at least one other embodiment.”
  • the terms “first”, “second”, etc. may refer to different or the same objects. Other definitions can be included below, whether explicit or implicit. Unless clearly indicated in the context, the definition of a term is consistent throughout the specification.
  • Blockchain is a chained data structure that connects and combines data blocks sequentially in chronological order, and cryptographically guarantees that the data blocks cannot be tampered with or forged.
  • the blockchain includes one or more blocks. Each block in the blockchain is linked to the previous block by including the encrypted hash of the immediately preceding block in the blockchain. Each block also includes a timestamp, a cryptographic hash of the block, and one or more transactions.
  • the transactions that have been verified by the nodes of the blockchain network are hashed to form a Merkle tree. In the Merkle tree, the data at the leaf nodes is hashed, and for each branch of the Merkle tree, all the hash values of the branch are concatenated at the root of the branch.
  • the above processing is performed on the Merkle tree until the root node of the entire Merkle tree.
  • the root node of the Merkle tree stores hash values representing all the data in the Merkle tree.
  • Blockchain is a data structure used to store transactions.
  • the blockchain network is a network of computing nodes used to manage, update and maintain one or more blockchain structures.
  • the blockchain network can include a public blockchain network, a private blockchain network, or a consortium blockchain network.
  • the consensus process is controlled by the nodes of the consensus network.
  • the public blockchain network can be considered as a public network of participating entities.
  • most entities nodes must sign each block in sequence, and add the signed block to the blockchain of the blockchain network.
  • Examples of public blockchain networks may include specific peer-to-peer payment networks.
  • blockchain does not specifically refer to any particular blockchain.
  • the public blockchain network supports public transactions. Public transactions are shared among all nodes in the public blockchain network and stored in the global blockchain.
  • a global blockchain refers to a blockchain that is replicated across all nodes.
  • consensus protocols include but are not limited to: proof-of-work (POW), proof-of-stake (POS), and proof-of-authority (POA).
  • POW is taken as a non-limiting example.
  • Private blockchain networks are provided for specific entities.
  • the read and write permissions of each node in the private blockchain network are strictly controlled. Therefore, a private blockchain network is usually also called a permissioned network, which restricts who is allowed to participate in the network and the level of network participation (for example, only in certain transaction situations).
  • a private blockchain network various types of access control mechanisms can be used (for example, existing participants vote on adding new entities, regulatory agencies control permissions, etc.).
  • the alliance blockchain network is private among participating entities.
  • the consensus process is controlled by authorized nodes.
  • a consortium composed of several (for example, 10) entities (for example, financial institutions, insurance companies) can operate a consortium blockchain network, and each entity operates at least one node in the consortium blockchain network. Therefore, the consortium blockchain network can be considered as a private network of participating entities.
  • each participating entity node
  • each block may be signed by a subset of participating entities (nodes) (for example, at least 7 entities), and the block may be added to the blockchain.
  • Blockchain is a tamper-proof shared digital ledger that records transactions in a public or private peer-to-peer network.
  • the ledger is distributed to all member nodes in the network, and the history of asset transactions that occurred in the network is permanently recorded in the block.
  • the consensus mechanism ensures that all network nodes in the distributed blockchain network execute transactions in the same order and then write to the same ledger.
  • the consensus model aims to solve the Byzantine problem.
  • components such as servers or network nodes in the distributed blockchain network may malfunction or deliberately spread wrong information to other nodes. Since other network nodes need to reach a consensus on which network node fails first, it is difficult for other network nodes to declare the component failure and exclude it from the blockchain network.
  • FIG. 1 shows a schematic diagram of an example of an environment 100 that can be used to execute a transaction verification method according to an embodiment of the present disclosure.
  • the environment 100 enables entities to participate in the blockchain network 102.
  • the environment 100 includes a network 104, and computing devices/systems 106, 108.
  • the network 104 may include a local area network (LAN), a wide area network (WAN), the Internet, or a combination thereof, and connects websites, user devices (eg, computing devices), and back-end systems.
  • the network 104 may be accessed through wired and/or wireless communication links.
  • the computing devices/systems 106 and 108 communicate with each other through the network 104, and communicate with the blockchain network 102 through the network 104, and the nodes (or node devices) in the blockchain network 102 pass through The network 104 communicates.
  • the network 104 represents one or more communication networks.
  • the computing devices/systems 106, 108 may be nodes of a cloud computing system (not shown), or each computing device/system 106, 108 may be a separate cloud computing system, including interconnection through the network 104 Multiple computers and used as a distributed processing system.
  • each of the computing devices/systems 106, 108 may include any suitable computing system capable of participating as a node in the blockchain network 102.
  • Examples of computing devices/systems include, but are not limited to, servers, desktop computers, laptops, tablet devices, smart phones, etc.
  • one or more computer-implemented services for interacting with the blockchain network 102 may be installed on the computing device/system 106, 108.
  • the computing device/system 106 may be installed with the services of the first entity (for example, user A), for example, the first entity is used to manage transactions with one or more other entities (for example, other users). Management system.
  • the computing device/system 108 may be installed with services of a second entity (for example, user B), for example, a transaction management system used by the second entity to manage transactions with one or more other entities (for example, other users) .
  • a second entity for example, user B
  • a transaction management system used by the second entity to manage transactions with one or more other entities (for example, other users) .
  • the blockchain network 102 is represented as a peer-to-peer network of nodes, and the computing devices/systems 106, 108 serve as the nodes of the first entity and the second entity participating in the blockchain network 102, respectively.
  • FIG. 2 shows a schematic diagram of an example of a system architecture 200 for executing a transaction verification method according to an embodiment of the present disclosure.
  • An example of the system architecture 200 includes participant systems 202, 204, 206 corresponding to participant A, participant B, and participant C, respectively.
  • Each participant eg, user, enterprise
  • the blockchain network 212 includes a plurality of nodes 214, wherein at least some of the nodes 214 record information in the blockchain 216, and the recorded information cannot be changed.
  • a single blockchain 216 is schematically shown within the blockchain network 212, multiple copies of the blockchain 216 can be provided, and multiple copies are maintained in the blockchain network 212, as described in detail later of.
  • each participant system 202, 204, 206 is provided by participant A, participant B, and participant C, or provided as participant A, participant B, and participant C, respectively, And it serves as the corresponding node 214 in the blockchain network 212.
  • a node generally refers to a single system (eg, computer, server) connected to the blockchain network 212 and enables corresponding participants to participate in the blockchain network.
  • the participant corresponds to each node 214.
  • one participant can operate multiple nodes 214 within the blockchain network 212, and/or multiple participants can share a single node 214.
  • the participant systems 202, 204, 206 use protocols (e.g., hypertext transfer protocol security (HTTPS)) and/or use remote procedure calls (RPC) to communicate with the blockchain network 212, or through the blockchain
  • HTTPS hypertext transfer protocol security
  • RPC remote procedure calls
  • the degree of participation of the node 214 in the blockchain network 212 may vary. For example, some nodes 214 may participate in the consensus process (eg, as miner nodes that add blocks to the blockchain 216), while other nodes 214 do not participate in the consensus process. As another example, some nodes 214 store a complete copy of the blockchain 216, while other nodes 214 only store a partial copy of the blockchain 216. In the example of Figure 2, the participant systems 202, 204, 206 each store a complete copy 216', 216", 216"' of the block chain 216.
  • a blockchain (for example, the blockchain 216 in FIG. 2) is composed of a series of blocks, and each block stores data.
  • Examples of data may include transaction data representing transactions between two or more participants.
  • transactions are used as a non-limiting example, and it is expected that any appropriate data can be stored in the blockchain (for example, documents, images, videos, audios).
  • Examples of transactions may include, but are not limited to, the exchange of valuable things (for example, assets, products, services, currency, etc.).
  • Transaction data is stored immutably in the blockchain.
  • hash Before storing in the block, hash the transaction data. Hashing is the process of converting transaction data (provided as string data) into a fixed-length hash value (also provided as string data). After the transaction verse is hashed, even a slight change in the transaction data will result in a completely different hash value.
  • the hash value is usually generated by hashing transaction data using a hash function. Examples of hash functions include, but are not limited to, Secure Hash Algorithm (SHA)-256, which outputs a 256-bit hash value.
  • SHA Secure Hash Algorithm
  • the transaction data of multiple transactions is hashed and stored in blocks. For example, two transaction data are hashed to obtain two hash values, and then the two obtained hash values are hashed again to obtain another hash value. This process is repeated until a single hash value is obtained for all transactions to be stored in the block.
  • This hash value is called the Merkle root hash and is stored at the head of the block. Any transaction change will cause its hash value to change, and eventually the Merkle root hash value will change.
  • the block is added to the blockchain through a consensus protocol.
  • Multiple nodes in the blockchain network participate in the consensus protocol and compete to add blocks to the blockchain.
  • Such nodes are called miner nodes (or accounting nodes).
  • the POW introduced above serves as a non-limiting example.
  • the miner node performs a consensus process to add the transaction (corresponding block) to the blockchain. Although multiple miner nodes participate in the consensus process, only one miner node can write a block to the blockchain. In other words, miner nodes compete in the consensus process to add their blocks to the blockchain.
  • the miner node periodically collects pending transactions from the transaction pool (for example, until a predetermined limit of the number of transactions that can be included in the block is reached, if any).
  • the transaction pool includes transaction messages from participants in the blockchain network.
  • the miner node creates a block and adds transactions to the block. Before adding the transaction to the block, the miner node checks whether there is a transaction in the block of the blockchain among the transactions to be added. If the transaction has been added to another block, the transaction will be discarded.
  • the miner node generates a block header, hashes all transactions in the block, and combines the hash values in pairs to generate further hash values until a single hash value (Merkle root) is obtained for all transactions in the block. Hash). Then, add the Merkle root hash to the block header.
  • the miner also determines the hash value of the latest block in the blockchain (ie, the last block added to the blockchain). Miner nodes can also add random values (noune values) and timestamps to the block header.
  • the miner node tries to find a hash value that meets the required parameters. The miner node keeps changing the nonce value until it finds a hash value that meets the required parameters.
  • Each miner in the blockchain network tries to find a hash value that meets the required parameters and competes with each other in this way.
  • a miner node finds a hash value that meets the required parameters and advertises the hash value to all other miner nodes in the blockchain network.
  • Other miner nodes verify the hash value, and if it is determined to be correct, verify each transaction in the block, accept the block, and attach the block to their copy of the blockchain. In this way, the global state of the blockchain is agreed upon on all miner nodes within the blockchain network.
  • the above process is a POW consensus protocol.
  • participant A wants to send a certain amount of funds to participant B.
  • Participant A generates a transaction message and sends the transaction message to the blockchain network, and the transaction message is added to the transaction pool.
  • Each miner node in the blockchain network creates a block, obtains transactions from the transaction pool, and adds the transaction to the block. In this way, the transaction issued by participant A is added to the block of the miner node.
  • cryptography is implemented to maintain the privacy of transactions. For example, if two nodes want to keep the transaction private so that other nodes in the blockchain network cannot learn the details of the transaction, the node can encrypt the transaction data.
  • encryption methods include, but are not limited to, symmetric encryption and asymmetric encryption.
  • Symmetric encryption refers to the encryption process that uses a single key to encrypt (generate ciphertext from plaintext) and decrypt (generate plaintext from ciphertext).
  • symmetric encryption multiple nodes can use the same key, so each node can encrypt/decrypt transaction data.
  • Asymmetric encryption refers to the use of key pairs for encryption.
  • Each key pair includes a private key and a public key.
  • the private key is only known to the corresponding node, and the public key is known to any or all other nodes in the blockchain network.
  • a node can use another node's public key to encrypt data, and can use the other node's private key to decrypt the encrypted data.
  • Participant A can use the public key of participant B to encrypt data, and send the encrypted data to participant B.
  • Participant B can use its private key to decrypt the encrypted data (ciphertext) and extract the original data (plain text). Messages encrypted with the public key of the node can only be decrypted with the private key of the node.
  • Asymmetric encryption is used to provide digital signatures, which enables participants in a transaction to confirm other participants in the transaction and the validity of the transaction. For example, a node can digitally sign a message, and another node can confirm that the message was sent by the node based on the digital signature of participant A. Digital signatures can also be used to ensure that messages are not tampered with during transmission. For example, refer to Figure 1 again. Participant A will send a message to participant B. Participant A generates a hash value of the message, and then uses its private key to encrypt the hash value to generate a digital signature. Participant A attaches the digital signature to the message, and sends the message with the digital signature to participant B.
  • Participant B uses the public key of participant A to decrypt the digital signature, thereby decrypting the corresponding hash value. Participant B hashes the received message to obtain another hash value, and then compares the two hash values. If the hash value is the same, participant B can confirm that the message is indeed from participant A and has not been tampered with.
  • Fig. 3 is a flowchart of a transaction verification method according to an embodiment of the present disclosure.
  • transaction data to be verified is received.
  • the transaction data to be verified includes transaction information plaintext and at least one confirming party signature data for the transaction information plaintext, and the transaction information plaintext includes a designated confirming party information set.
  • the clear text of transaction information refers to unencrypted transaction information, and its essential content is consistent with the content of the transaction information in the absence of tampering or loss of information.
  • the transaction initiator and confirmer involved in the transaction For each transaction, the transaction initiator and confirmer involved in the transaction.
  • the confirming party may, for example, confirm whether the transaction is a legal transaction, whether to agree to the transaction, and so on.
  • the parties to the transaction can negotiate to determine the transaction confirmation rules, and confirm the transaction in accordance with the transaction rules confirmed by each other when the transaction occurs.
  • the transaction parties other than the transaction initiator can be regarded as the confirming party, and the confirming party designated to confirm the transaction is the designated confirming party.
  • the designated confirming party for each transaction can be designated by the transaction initiator, or the related parties of the transaction can jointly agree on designated rules or confirm the designated confirming party in a designated list.
  • There can be one or more designated confirmers for each transaction and the specific number of designated confirmers can be determined according to business scenarios.
  • the transaction initiator When the transaction initiator initiates a transaction, it can be sent to each designated confirming party after signing for signature by the designated confirming party. After obtaining the signature data of the transaction initiator and the confirming party, the transaction data to be verified can be generated and sent to the blockchain system to verify the transaction.
  • the zone chain system may be, for example, the system shown in FIGS. 1 and 2.
  • Fig. 4 is an exemplary flowchart of a process of generating transaction data to be verified in a transaction verification method according to an embodiment of the present disclosure.
  • the transaction initiator generates transaction information when initiating the transaction.
  • the transaction information may include, for example, the account of the transaction initiator, the account of the transaction partner, the transaction amount, the transaction summary, and the time stamp.
  • the transaction information also includes the designated confirming party information set.
  • the designated confirming party information set includes designated confirming party information of at least one designated confirming party designated to confirm the transaction.
  • the designated confirmer information may be, for example, the designated confirmer public key, or the designated confirmer account.
  • the transaction initiator uses its private key to sign the generated transaction information to obtain the transaction initiator's signature. Then, in the process of sending transaction information such as block 406 and block 412, the transaction data (including the plaintext of the transaction information and the signature data of the transaction initiator) are sent to each confirming party.
  • the transaction initiator signature data may include the transaction initiator public key and the transaction initiator signature.
  • the transaction initiator may only send the transaction information plaintext and the transaction initiator signature data to the designated confirming party. In another example, the transaction initiator may send the transaction information plaintext and the transaction initiator signature to all confirming parties. After receiving these data, each confirmer can confirm whether it is the designated confirmer of the corresponding transaction based on the designated confirmer information set in the plaintext of the transaction information.
  • each confirming party can verify the received transaction data after the transaction initiator’s signature verification is legal, and sign the transaction information plaintext after the verification is passed to obtain the confirming party’s signature data .
  • the designated confirming party can use the public key in the signature data of the transaction initiator to verify the signature of the transaction initiator.
  • the transaction initiator’s public key can be used to decrypt the transaction initiator’s signature to obtain the transaction information in the transaction initiator’s signature.
  • the transaction data sent to each confirming party or designated confirming party may not include the transaction initiator signature data.
  • each designated confirming party does not need to perform the signature verification operation of the transaction initiator.
  • each confirming party can verify and sign when determining that it is the designated confirming party of the corresponding transaction.
  • each confirming party can verify and sign all the transaction data received, or decide whether to verify or sign according to the confirming party's own rules.
  • each confirming party After obtaining the confirming party's signature data, each confirming party sends the confirming party's signature data to the transaction initiator in processes such as block 410 and block 416. Then, the transaction initiator generates transaction data to be verified in block 418, and sends the transaction data to be verified to the blockchain system in block 420. After receiving the transaction data to be verified, the blockchain system performs transaction verification on the transaction data to be verified in block 422.
  • the signature data of the confirming party may only include the signature data of the designated confirming party.
  • a confirmer who is not designated as the designated confirmer may also sign the received transaction data.
  • the confirmer signature data in the transaction data to be verified sent to the blockchain system includes the designated confirmer signature data and the non-designated confirmer signature data.
  • the transaction data to be verified may adopt the following format: [Payload,[PubA,SignA],[PubB,signB],[PubC,signC]].
  • Payload is the plaintext of transaction information, and its data format can be [XX,XX,XX,[PubB,PubC]].
  • PubA is the signature of the transaction initiator
  • PubB and PubC are the signatures of designated confirmers B and C, respectively
  • [PubB, PubC] is the information set of designated confirmers.
  • the validator signature for each validator signature data in at least one validator signature data is verified to obtain the verified party information set.
  • the verified party information set includes the verifying party information of each verifying party whose signature is verified as legal. The verification process of the verifier's signature will be described later with reference to FIG. 8 and FIG. 9.
  • verified verifying party information set After obtaining the verified verifying party information set, in block 306, it is determined whether the verified verifying party information set includes a predetermined number of designated confirming party information in the designated verifying party information set. When the verified verification party information set includes a predetermined number of designated determiner information in the designated verification party information set, in block 308, it is determined that the data to be verified is verified, otherwise, it is determined in block 310 that the corresponding transaction is illegal and the transaction fails.
  • the transaction data to be verified has passed the verification when the verification passed confirmer information set includes all designated confirmer information in the designated confirmer information set.
  • the condition for passing the verification is that all designated confirmers have signed the transaction information plaintext and the signatures of all designated confirmers have been verified as legal.
  • each transaction related party can also agree on a majority pass rule, that is, when a majority of designated confirming parties have signed the transaction information plaintext and these signatures are verified as legal, it is determined that the transaction data to be verified is passed (that is, the corresponding transaction has obtained a majority Confirmation by designated confirmer).
  • each designated confirmer may have a designated confirmer weight.
  • the confirmer information set includes a predetermined number of designated confirmer information in the designated confirmer information set
  • the weight of the designated confirming party can be stored in the blockchain system or included in the confirming party's signature data.
  • each confirming party signs the received transaction information, it can also use the private key to encrypt the weight of the designated confirming party, and include the encrypted designated confirming party weight in the confirming party's signature data and send it to the transaction initiator.
  • the blockchain system can execute a smart contract to execute the corresponding transaction of the transaction data to be verified.
  • Smart contracts can be specified by the transaction initiator, or smart contracts can be specified in the blockchain system.
  • Fig. 5 is a flowchart of the verification process of the transaction initiator and the verification process of the transaction data to be verified in the transaction verification method according to an embodiment of the present disclosure.
  • the transaction initiator signature data is verified based on the transaction information plaintext and the transaction initiator signature data. Then in block 504, it is judged whether the signature data of the transaction initiator is verified.
  • the transaction initiator signature data may include the transaction initiator signature, and may also include the transaction initiator public key.
  • the verification of the signature data of the transaction initiator may include the signature verification process of the transaction initiator, and may also include the public key verification process of the transaction initiator. The verification process of the signature data of the transaction initiator will be described below with reference to FIGS. 6 and 7.
  • Fig. 6 is a flowchart of an example of a process of verifying signature data of a transaction initiator in a transaction verification method according to an embodiment of the present disclosure.
  • the transaction initiator signature data includes the transaction initiator public key and the transaction initiator signature.
  • the transaction initiator's signature is decrypted by using the transaction initiator's public key in the transaction initiator's signature data to obtain the transaction information in the transaction initiator's signature. Then in block 604, it is determined whether the transaction information obtained by decryption is consistent with the plaintext of the transaction information in the transaction data to be verified.
  • the decrypted transaction information and the plaintext of the transaction information may be hashed separately to obtain a hash value, and then the hash values of the two may be compared whether they are consistent.
  • the transaction initiator account in the transaction information plaintext is obtained based on the transaction initiator account in the blockchain system Public key.
  • the public key of the transaction party will be sent to the blockchain system and stored. Therefore, the account of the transaction initiator can be obtained from the plaintext of the transaction information, and then the corresponding public key of the transaction initiator can be obtained from the blockchain system according to the account of the transaction initiator. Taking the blockchain system based on Ethereum as an example, the public key of the transaction initiator can be obtained from the world state of the blockchain.
  • the public key of the transaction initiator obtained from the blockchain system is consistent with the public key of the transaction initiator in the signature of the transaction initiator.
  • it indicates that the transaction initiator is a legal user of the transaction initiator's public key so in block 610, it is determined that the transaction initiator signature data is verified. If the two are inconsistent, it indicates that the transaction initiator is not a legitimate user of the public key of the transaction initiator. Therefore, at block 612, it is confirmed that the verification of the signature data of the transaction initiator fails, and the corresponding transaction fails.
  • the processes in Figure 6 can be arranged and combined in other orders. For example, when confirming that the transaction initiator public key in the blockchain system is consistent with the transaction initiator signature data in the transaction initiator signature data, the transaction initiator public key determined to be consistent can be used to verify the transaction initiator signature.
  • FIG. 7 is a flowchart of another example of the verification process of the signature data of the transaction initiator in the transaction verification method according to an embodiment of the present disclosure.
  • the transaction initiator signature data includes the transaction initiator signature.
  • the public key of the transaction initiator in the blockchain system is obtained based on the transaction initiator account in the plaintext of the transaction information.
  • the transaction initiator signature is decrypted by using the obtained transaction initiator public key to obtain the transaction information in the transaction initiator signature. Then at block 706, it is determined whether the transaction information obtained by decryption is consistent with the plaintext of the transaction information in the transaction data to be verified. When the two are consistent, it indicates that the transaction initiator is a legitimate user of the transaction initiator's public key. In block 708, it is determined that the transaction initiator signature data is verified. If the two are inconsistent, it indicates that the transaction initiator is not a legitimate user of the public key of the transaction initiator. In block 710, it is confirmed that the verification of the signature data of the transaction initiator fails, and the corresponding transaction fails.
  • Fig. 8 is a flowchart of an example of a verification process of a confirmer's signature in a transaction verification method according to an embodiment of the present disclosure.
  • the confirmer signature data includes the confirmer public key.
  • the confirmer's signature in the confirmer's signature data is decrypted by using the confirmer's public key in the confirmer's signature data to obtain the transaction information in the confirmer's signature.
  • block 804 it is determined whether the transaction information decrypted from the confirming party's signature is consistent with the plaintext of the transaction information in the transaction data to be verified.
  • the two can be hashed and then compared whether their hash values are consistent.
  • the two are consistent, in block 806, it is confirmed that the verification of the signature data of the confirming party has passed. If the two are inconsistent, in block 808, it is confirmed that the verifying party's signature verification fails. After verifying the signatures of all confirmers, the public key set of the confirmed confirmers can be generated based on the public keys of the confirmed confirmers that have passed the verification.
  • the designated confirmer information in the transaction data to be verified may include the designated confirmer public key.
  • the designated confirmer information set may be a designated confirmer public key set.
  • the designated confirmer information may also include the designated confirmer account.
  • the designated confirmer information set is the designated confirmer account set. At this time, based on at least one designated confirmer account in the designated confirmer account set, the corresponding designated confirmer public key in the blockchain system can be obtained to obtain the designated confirmer public key set.
  • the verified public key set can be compared with the public key set of the designated confirmer to determine whether the public key set of the verified confirmer includes a predetermined number of designations in the public key set of the designated confirmer The public key of the confirming party.
  • a predetermined number of public keys of the designated confirming party are included in the public key set of the verified parties, it can be determined that the transaction data to be verified has passed the verification.
  • the designated confirming party can have multiple public keys.
  • the designated confirming party can choose to take the private key corresponding to one of the public keys to sign, and put the corresponding public key Enter the confirming party’s signature data.
  • Multiple public keys of each designated confirmer can have public key weight, and the designated confirmer can decide to use a public key with a higher weight or a lower weight according to the business scenario.
  • the verified party information set includes a predetermined number of designated confirmer information in the designated confirmer information set, it can be further confirmed whether the sum of the public key weights of the public keys used by the predetermined number of designated confirmers Not lower than the second predetermined value.
  • the sum of the public key weights corresponding to the predetermined number of designated confirming party information is not lower than the second predetermined value, it may be determined that the data to be verified has passed the verification.
  • the public key weight of the public key of the designated confirmer can be stored in the blockchain system in the form of an index, so that the corresponding public key weight can be queried according to the public key of the designated confirmer.
  • the public key weight may also be included in the corresponding designated confirming party signature.
  • the public key of each designated confirming party that has passed the verification may also be stored locally for use in the execution of the smart contract.
  • Smart contracts can be configured according to business scenarios. In some business scenarios, smart contracts can include rules that require the use of the public key of the designated confirming party. When storing the public key of the designated confirming party, the public key query process during the execution of the smart contract can be omitted.
  • the confirmer signature data may include the confirmer account.
  • the example shown in FIG. 9 can be used to verify the signature of the confirming party.
  • FIG. 9 is a flowchart of another example of the verification process of the confirmer's signature in the transaction verification method according to an embodiment of the present disclosure.
  • the confirmer public key in the blockchain system is obtained. Since each transaction party has stored the public key in the blockchain system when participating in the blockchain network, the confirmer public key can be obtained based on the confirmer account. For example, the public key of the confirming party can be obtained from the world state.
  • the confirmer public key is obtained, in block 904, the confirmer's signature in the confirmer's signature data is decrypted by using the obtained confirmer's public key to obtain the transaction information in the confirmer's signature.
  • a set of verified confirmer accounts can be generated based on the confirmer account of the verified confirmer.
  • the designated confirmer information in the transaction data to be verified may include the designated confirmer account.
  • the account set of the verified confirmer can be compared with the account set of the designated confirmer to confirm whether the account set of the verified confirmer includes a predetermined number of designated confirmer accounts. As a result, it can be confirmed whether the number of designated parties confirming the corresponding transaction meets the requirements.
  • the designated confirmer information in the transaction data to be verified may include the designated confirmer public key, and the designated confirmer information set is the designated confirmer public key set.
  • the public key set of the verified party can be compared with the public key set of the designated confirmer to confirm whether the public key set of the verified party includes a predetermined number of public keys of the designated confirmer.
  • Fig. 10 is a structural block diagram of a transaction verification device according to an embodiment of the present disclosure.
  • the transaction verification device 1000 includes a transaction data receiving unit 1010 to be verified, a confirmer signature verification unit 1020, a transaction initiator signature data verification unit 1030, and a data verification unit 1040 to be verified.
  • the transaction data receiving unit 1010 to be verified is configured to receive transaction data to be verified.
  • the transaction data to be verified includes transaction information plaintext and at least one confirmer signature data for the transaction information plaintext.
  • the transaction information plaintext includes a designated confirmer information set, and the designated confirmer
  • the information set includes designated confirming party information of at least one designated confirming party designated to confirm the transaction data, and the confirming party signature data includes the confirming party's signature.
  • the confirming party signature verification unit 1020 is configured to verify the confirming party signature in the confirming party signature data based on the confirming party signature data and the transaction information plaintext in the at least one confirming party signature data, to Obtain the verified party information set.
  • the transaction initiator signature data verification unit 1030 is configured to verify the transaction initiator signature based on the transaction information plaintext and the transaction initiator signature data.
  • the to-be-verified data verification unit 1040 is configured to determine that the to-be-verified data is verified as being passed when the verification passed confirmer information set includes a predetermined number of designated confirmer information in the designated confirmer information set and the transaction party passes verification.
  • the transaction verification device may not include a transaction initiator signature data verification unit.
  • the to-be-verified data verification unit 1040 may be configured to determine that the to-be-verified data is verified as being passed when the verification passed confirmer information set includes a predetermined number of designated confirmer information in the designated confirmer information set.
  • each designated confirming party may have a designated confirming party weight
  • the data-to-be-verified verification unit 1040 may be configured to, when the verified verifying party information set includes a predetermined number of designated confirming party information in the designated confirming party information set, and When the sum of the weights of the designated confirming party corresponding to the predetermined number of designated confirming party information is not lower than the first predetermined value, it is determined that the verification of the data to be verified passes.
  • Fig. 11 is a structural block diagram of an example of a transaction initiator signature data verification unit in the transaction verification device shown in Fig. 10.
  • the transaction initiator signature data verification unit 1030 includes a transaction initiator signature decryption module 1031, a public key acquisition module 1032, and a transaction initiator signature verification module 1033.
  • the transaction initiator signature data may also include the transaction initiator public key.
  • the transaction initiator signature decryption module 1031 is configured to use the transaction initiator public key in the transaction initiator signature data to decrypt the transaction initiator signature to obtain the transaction information in the transaction initiator signature.
  • the public key obtaining module 1032 is configured to obtain the public key of the transaction initiator in the blockchain system based on the transaction initiator account in the plaintext of the transaction information.
  • the transaction initiator signature verification module 1033 is configured when the transaction information in the transaction initiator’s signature is consistent with the transaction information plaintext, and the transaction initiator’s public key in the transaction initiator’s signature data is consistent with the transaction initiator’s public key in the blockchain system When the verification of the signature data of the transaction initiator is passed.
  • Fig. 12 is a structural block diagram of another example of a transaction initiator signature data verification unit in the transaction verification device shown in Fig. 10.
  • the transaction initiator signature data verification unit 1030 includes a public key acquisition module 1034, a transaction initiator signature decryption module 1035, and a transaction initiator signature verification module 1036.
  • the public key obtaining module 1034 is configured to obtain the public key of the transaction initiator in the blockchain system based on the transaction initiator account in the plaintext of the transaction information.
  • the transaction initiator signature decryption module 1035 is configured to use the acquired transaction initiator public key to decrypt the transaction initiator signature to obtain the transaction information in the transaction initiator signature.
  • the transaction initiator signature verification module 1036 is configured to determine that the transaction initiator signature data verification is passed when the transaction information signed by the transaction initiator is consistent with the plaintext of the transaction information.
  • Fig. 13 is a structural block diagram of an example of a confirmer signature verification unit in the transaction verification device shown in Fig. 10.
  • the confirmer signature verification unit 1020 includes a confirmer signature decryption module 1021 and a confirmer signature verification module 1022.
  • the confirmer signature data may also include the confirmer public key.
  • the confirmer signature decryption module 1021 is configured to use the confirmer's public key in the confirmer's signature data to decrypt the confirmer's signature in the confirmer's signature data to obtain the transaction information in the confirmer's signature.
  • the confirming party signature verification module 1022 is configured to confirm that the confirming party's signature verification is passed when the transaction information in the confirming party's signature is consistent with the plaintext of the transaction information.
  • the designated confirmer information may include the designated confirmer account, and the verified confirmer information set includes the verified public key set.
  • the transaction verification device may further include a designated confirming party public key set obtaining unit (not shown in the figure).
  • the designated confirmer public key set acquisition unit is configured to obtain the corresponding designated confirmer public key in the blockchain system based on at least one designated confirmer account in the designated confirmer account set to obtain the designated confirmer public key set.
  • the to-be-verified data verification unit is configured to determine that the to-be-verified data is successfully verified when the verification-passed confirmer information set includes a predetermined number of designated confirmer public keys.
  • the designated confirmer public key of at least one designated confirmer may have public key weight
  • the data verification unit to be verified may be configured to verify that the confirmer information set includes a predetermined number of designated confirmers in the designated confirmer information set. In case of party information, and when the sum of the public key weights corresponding to the predetermined number of designated confirming party information is not lower than the second predetermined value, it is determined that the data to be verified has passed the verification.
  • Fig. 14 is a structural block diagram of another example of the signature verification unit of the confirming party in the transaction verification device shown in Fig. 10.
  • the confirmer signature verification unit 1020 includes a confirmer public key acquisition module 1023, a confirmer signature decryption module 1024 and a confirmer signature verification module 1025.
  • the confirmer’s signature data can also include the confirmer’s account
  • the confirmer public key acquisition module 1023 is configured to obtain the confirmer public key in the blockchain system based on the confirmer account.
  • the confirmer signature decryption module 1024 is configured to use the obtained confirmer public key to decrypt the confirmer's signature in the confirmer's signature data to obtain the transaction information in the confirmer's signature.
  • the confirming party signature verification module 1025 is configured to confirm that the confirming party's signature verification is passed when the transaction information in the confirming party's signature is consistent with the plaintext of the transaction information.
  • the device for verifying transactions in the present disclosure can be implemented by hardware, or by software or a combination of hardware and software.
  • the various embodiments in this specification are described in a progressive manner, and the same or similar parts among the various embodiments are referred to each other.
  • the device for verifying transactions in the present disclosure can be implemented by hardware, or by software or a combination of hardware and software. Taking software implementation as an example, as a logical device, it is formed by reading the corresponding computer program instructions in the memory into the memory through the processor of the device where it is located. In the present disclosure, the means for verifying the transaction can be implemented by using a computing device, for example.
  • Fig. 15 is a structural block diagram of a computing device for implementing a transaction verification method according to an embodiment of the present disclosure.
  • the computing device 1500 includes a processor 1510, a memory 1520, a memory 1530, a communication interface 1540, and an internal bus 1550, and a processor 1510, a memory (for example, a non-volatile memory) 1520, a memory 1530, and a communication interface 1540 is connected together via a bus 1550.
  • a processor 1510 for example, a non-volatile memory
  • a memory 1530 for example, a non-volatile memory
  • a communication interface 1540 is connected together via a bus 1550.
  • the computing device 1500 may include at least one processor 1510 that executes at least one computer-readable instruction (ie, the above-mentioned memory 1520) stored or encoded in a computer-readable storage medium (ie, the memory 1520) Elements implemented in software).
  • processor 1510 that executes at least one computer-readable instruction (ie, the above-mentioned memory 1520) stored or encoded in a computer-readable storage medium (ie, the memory 1520) Elements implemented in software).
  • computer-executable instructions are stored in the memory 1520, which when executed, cause at least one processor 1510 to: receive transaction data to be verified, the transaction data to be verified including transaction information plaintext and plaintext for the transaction information Signature data of at least one confirming party in the transaction information, the transaction information plaintext includes a designated confirming party information set, and the designated confirming party information set includes designated confirming party information of at least one designated confirming party designated to confirm the transaction information plaintext,
  • the confirming party signature data includes the confirming party signature; for the confirming party signature in the at least one confirming party signature data, based on the confirming party signature data and the transaction information plaintext, the confirming party signature in the confirming party signature data Perform verification to obtain a verified party information set; and when the verified party information set includes a predetermined number of designated determiner information in the designated confirmer information set, it is determined that the data to be verified has passed verification.
  • a program product such as a non-transitory machine-readable medium.
  • the non-transitory machine-readable medium may have instructions (ie, the above-mentioned elements implemented in the form of software), which when executed by a machine, cause the machine to execute the various embodiments described above in conjunction with FIGS. 1-15 in the various embodiments of the present disclosure. Operation and function.
  • a system or device equipped with a readable storage medium may be provided, and the software program code for realizing the function of any one of the above embodiments is stored on the readable storage medium, and the computer or device of the system or device The processor reads out and executes the instructions stored in the readable storage medium.
  • the program code itself read from the readable medium can realize the function of any one of the above embodiments, so the machine readable code and the readable storage medium storing the machine readable code constitute the present invention a part of.
  • Examples of readable storage media include floppy disks, hard disks, magneto-optical disks, optical disks (such as CD-ROM, CD-R, CD-RW, DVD-ROM, DVD-RAM, DVD-RW, DVD-RW), magnetic tape, Volatile memory card and ROM.
  • the program code can be downloaded from a server computer or cloud via a communication network.
  • the device structure described in the foregoing embodiments may be a physical structure or a logical structure. That is, some units may be implemented by the same physical entity, or some units may be implemented by multiple physical entities, or may be implemented by multiple physical entities. Some components in independent devices are implemented together.

Landscapes

  • Business, Economics & Management (AREA)
  • Accounting & Taxation (AREA)
  • Engineering & Computer Science (AREA)
  • Finance (AREA)
  • Physics & Mathematics (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Development Economics (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Technology Law (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

一种进行交易验证的方法及装置。该方法包括:接收待验证交易数据(302),所述待验证交易数据包括交易信息明文和针对所述交易信息明文的至少一个确认方签名数据,所述交易信息明文包括指定确认方信息集,所述指定确认方信息集包括被指定对所述交易信息明文进行确认的至少一个指定确认方的指定确认方信息,所述确认方签名数据包括确认方签名;针对所述至少一个确认方签名数据中的确认方签名,基于该确认方签名数据和所述交易信息明文,对该确认方签名数据中的确认方签名进行验证,以获取验证通过确认方信息集(304);以及当所述验证通过确认方信息集包括所述指定确认方信息集中的预定数量的指定确定方信息时,确定所述待验证数据验证通过(308)。

Description

用于进行交易验证的方法及装置 技术领域
本公开涉及区块链技术领域,具体地,涉及用于进行交易验证的方法及装置。
背景技术
区块链技术利用链式数据结构来验证和存储数据,并利用分布式节点共识算法来生成和更新数据,利用密码学的方式保证数据传输和访问安全。在利用区块链技术处理交易时,针对客户端发起的交易,只有在该交易通过验证时才会执行该交易,因而能够保证交易安全性。
在某些交易场景下,发起方发起的交易可能存在其它关联方,只有该交易得到其它关联方的确认时,才能够确认该交易为合法交易。例如,在供应链协作场景中,涉及在多个交易方之间的交易转让,为了保证交易安全,在执行该交易之前,需要在确定各个交易方均确认了该交易,才能够执行该交易。
发明内容
鉴于上述,本公开提供了一种用于进行交易验证的方法及装置。利用该方法和装置,能够根据为每笔交易提供定制化的交易验证过程,并且能够减少验证过程的数据访问量。
根据本公开的一个方面,提供了一种用于进行交易验证的方法,包括:接收待验证交易数据,所述待验证交易数据包括交易信息明文和针对所述交易信息明文的至少一个确认方签名数据,所述交易信息明文包括指定确认方信息集,所述指定确认方信息集包括被指定对所述交易信息明文进行确认的至少一个指定确认方的指定确认方信息,所述确认方签名数据包括确认方签名;针对所述至少一个确认方签名数据中的确认方签名,基于该确认方签名数据和所述交易信息明文,对该确认方签名数据中的确认方签名进行验证,以获取验证通过确认方信息集;以及当所述验证通过确认方信息集包括所述指定确认方信息集中的预定数量的指定确定方信息时,确定所述待验证数据验证通过。
可选地,在一个示例中,所述各个指定确认方可以具有指定确认方权重,当所述验证通过确认方信息集包括所述指定确认方信息集中的预定数量的指定确定方信息时, 确定所述待验证数据验证通过还可以包括:当所述验证通过确认方信息集包括所述指定确认方信息集中的预定数量的指定确定方信息时,以及该预定数量的指定确认方信息所对应的指定确认方权重之和不低于第一预定值时,确定所述待验证数据验证通过。
可选地,在一个示例中,所述至少一个指定确认方的指定确认方公钥可以具有公钥权重,当所述验证通过确认方信息集包括所述指定确认方信息集中的预定数量的指定确定方信息时,确定所述待验证数据验证通过还可以包括:当所述验证通过确认方信息集包括所述指定确认方信息集中的预定数量的指定确定方信息时,以及该预定数量的指定确认方信息所对应的公钥权重之和不低于第二预定值时,确定所述待验证数据验证通过。
可选地,在一个示例中,所述确认方签名数据还可以包括确认方公钥,基于该确认方签名数据和所述交易信息明文,对该确认方签名数据中的确认方签名进行验证可以包括:利用该确认方签名数据中的确认方公钥,对该确认方签名数据中的确认方签名进行解密以得到确认方签名中的交易信息;当所述确认方签名中的交易信息与所述交易信息明文一致时,确认该确认方签名验证通过。
可选地,在一个示例中,所述指定确认方信息可以包括指定确认方公钥,所述验证通过确认方信息集可以包括验证通过确认方公钥集。
可选地,在一个示例中,所述确认方信息可以包括指定确认方账号,所述验证通过确认方信息集包括验证通过确认方公钥集,所述方法还可以包括:基于所述指定确认方账号集中的至少一个指定确认方账号,获取区块链系统中的对应指定确认方公钥,以获取指定确认方公钥集。当所述验证通过确认方信息集包括所述指定确认方信息集中的预定数量的指定确定方信息时,确定所述待验证数据验证通过可以包括:当所述验证通过确认方公钥集包括预定数量的指定确认方公钥时,确定所述待验证数据验证通过。
可选地,在一个示例中,所述确认方签名数据还可以包括确认方账号,基于该确认方签名数据和所述交易信息明文,对该确认方签名数据中的确认方签名进行验证可以包括:基于所述确认方账号,获取区块链系统中的确认方公钥;利用所获取的确认方公钥,对该确认方签名数据中的确认方签名进行解密以得到确认方签名中的交易信息;当所述确认方签名中的交易信息与所述交易信息明文一致时,确认该确认方签名验证通过。
可选地,在一个示例中,所述指定确认方信息可以包括指定确认方公钥,所述验证通过确认方信息集可以包括验证通过确认方公钥集。
可选地,在一个示例中,所述指定确认方信息可以包括指定确认方账号,所述验证通过确认方信息集可以包括验证通过确认方账号集。
可选地,在一个示例中,所述待验证交易数据还可以包括针对所述交易信息明文的交易发起方签名数据,所述交易发起方签名数据包括交易发起方签名,所述方法还可以包括:基于所述交易信息明文和所述交易发起方签名数据,对所述交易发起方签名进行验证;当所述验证通过确认方信息集包括所述指定确认方信息集中的预定数量的指定确定方信息时,确定所述待验证数据验证通过可以包括:当所述验证通过确认方信息集包括所述指定确认方信息集中的预定数量的指定确定方信息且所述交易方通过验证时,确定所述待验证数据验证通过。
可选地,在一个示例中,所述交易发起方签名数据还可以包括交易发起方公钥,基于所述交易信息明文和所述交易发起方签名数据,对所述交易发起方进行验证可以包括:利用所述交易发起方签名数据中的交易发起方公钥对所述交易发起方签名进行解密以得到交易发起方签名中的交易信息;基于所述交易信息明文中的交易发起方账号,获取区块链系统中的交易发起方公钥;当所述交易发起方签名中的交易信息与所述交易信息明文一致,且所述交易发起方签名数据中交易发起方公钥与所述区块链系统中的交易发起方公钥一致时,确定所述交易发起方签名数据验证通过。
可选地,在一个示例中,基于所述交易信息明文和所述交易发起方签名数据,对所述交易发起方进行验证可以包括:基于所述交易信息明文中的交易发起方账号,获取区块链系统中的交易发起方公钥;利用所获取到的交易发起方公钥,对所述交易发起方签名进行解密以得到所述交易发起方签名中的交易信息;以及当所述交易发起方签名的交易信息与所述交易信息明文一致时,确定所述交易发起方签名数据验证通过。
根据本公开的另一方面,还提供一种用于进行交易验证的装置,包括:待验证交易数据接收单元,被配置为接收待验证交易数据,所述待验证交易数据包括交易信息明文和针对所述交易信息明文的至少一个确认方签名数据,所述交易信息明文包括指定确认方信息集,所述指定确认方信息集包括被指定对所述交易信息明文进行确认的至少一个指定确认方的指定确认方信息,所述确认方签名数据包括确认方签名;确认方签名验证单元,被配置为针对所述至少一个确认方签名数据中的确认方签名,基于该确认方签名数据和所述交易信息明文,对该确认方签名数据中的确认方签名进行验证,以获取验证通过确认方信息集;以及待验证数据验证单元,被配置为当所述验证通过确认方信息集包括所述指定确认方信息集中的预定数量的指定确定方信息时,确定所述待验证数据 验证通过。
可选地,在一个示例中,所述各个指定确认方可以具有指定确认方权重,所述待验证数据验证单元可以被配置为:当所述验证通过确认方信息集包括所述指定确认方信息集中的预定数量的指定确定方信息时,以及该预定数量的指定确认方信息所对应的指定确认方权重之和不低于第一预定值时,确定所述待验证数据验证通过。
可选地,在一个示例中,所述至少一个指定确认方的指定确认方公钥可以具有公钥权重,所述待验证数据验证单元可以被配置为:当所述验证通过确认方信息集包括所述指定确认方信息集中的预定数量的指定确定方信息时,以及该预定数量的指定确认方信息所对应的公钥权重之和不低于第二预定值时,确定所述待验证数据验证通过。
可选地,在一个示例中,所述确认方签名数据还可以包括确认方公钥,所述确认方签名验证单元可以包括:确认方签名解密模块,被配置为利用该确认方签名数据中的确认方公钥,对该确认方签名数据中的确认方签名进行解密以得到确认方签名中的交易信息;以及确认方签名验证模块,被配置为当所述确认方签名中的交易信息与所述交易信息明文一致时,确认该确认方签名验证通过。
可选地,在一个示例中,所述确认方信息可以包括指定确认方账号,所述验证通过确认方信息集包括验证通过确认方公钥集,所述装置还可以包括:指定确认方公钥集获取单元,被配置为基于所述指定确认方账号集中的至少一个指定确认方账号,获取区块链系统中的对应指定确认方公钥,以获取指定确认方公钥集。述待验证数据验证单元被配置为:当所述验证通过确认方公钥集包括预定数量的指定确认方公钥时,确定所述待验证数据验证通过。
可选地,在一个示例中,所述确认方签名数据还可以包括确认方账号,所述确认方签名验证单元可以包括:确认方公钥获取模块,被配置为基于所述确认方账号,获取区块链系统中的确认方公钥;确认方签名解密模块,被配置为利用所获取的确认方公钥,对该确认方签名数据中的确认方签名进行解密以得到确认方签名中的交易信息;以及确认方签名验证模块,被配置为当所述确认方签名中的交易信息与所述交易信息明文一致时,确认该确认方签名验证通过。
可选地,在一个示例中,所述待验证交易数据还可以包括针对所述交易信息明文的交易发起方签名数据,所述交易发起方签名数据包括交易发起方签名,所述装置还可以包括:交易发起方签名数据验证单元,被配置为基于所述交易信息明文和所述交易发 起方签名数据,对所述交易发起方签名进行验证。所待验证数据验证单元被配置为:当所述验证通过确认方信息集包括所述指定确认方信息集中的预定数量的指定确定方信息且所述交易方通过验证时,确定所述待验证数据验证通过。
可选地,在一个示例中,所述交易发起方签名数据还可以包括交易发起方公钥,所述交易发起方签名数据验证单元可以包括:交易发起方签名解密模块,被配置为利用所述交易发起方签名数据中的交易发起方公钥对所述交易发起方签名进行解密以得到交易发起方签名中的交易信息;公钥获取模块,被配置为基于所述交易信息明文中的交易发起方账号,获取区块链系统中的交易发起方公钥;以及交易发起方签名验证模块,被配置为当所述交易发起方签名中的交易信息与所述交易信息明文一致,以及所述交易发起方签名数据中交易发起方公钥与所述区块链系统中的交易发起方公钥一致时,确定所述交易发起方签名数据验证通过。
可选地,在一个示例中,所述交易发起方签名数据验证单元可以包括:公钥获取模块,被配置为基于所述交易信息明文中的交易发起方账号,获取区块链系统中的交易发起方公钥;交易发起方签名解密模块,被配置为利用所获取到的交易发起方公钥,对所述交易发起方签名进行解密以得到所述交易发起方签名中的交易信息;以及交易发起方签名验证模块,被配置为当所述交易发起方签名的交易信息与所述交易信息明文一致时,确定所述交易发起方签名数据验证通过。
根据本公开的另一方面,还提供一种计算设备,包括:至少一个处理器;以及存储器,所述存储器存储指令,当所述指令被所述至少一个处理器执行时,使得所述至少一个处理器执行如上所述的方法。
根据本公开的另一方面,还提供一种非暂时性机器可读存储介质,其存储有可执行指令,所述指令当被执行时使得所述机器执行如上所述的方法。
利用本公开的方法和装置,通过为交易指定对该交易进行确认的指定确认方,在对待验证交易数据中的至少一个确认方签名进行验证之后,当验证通过确认方包括预定数量的指定确认方时,确定该待验证交易数据通过验证,由此能够根据交易的性质来指定交易确认方,以为交易提供定制化的验证过程。此外,该验证过程还降低了数据访问量。
利用本公开的方法和装置,为各个指定确认方赋予指定确认方权重,在验证通过的确认方包括预定数量的指定确认方,该预定数量的指定确认方的指定确认方权重之和 达到第一预定值时,确定待验证交易数据验证通过,能够进一步提高交易安全性。
利用本公开的方法和装置,为指定确认方公钥赋予公钥权重,验证通过确认方信息集包括指定确认方公钥集中的预定数量的指定确定方公钥时,以及该预定数量的指定确认方公钥所对应的公钥权重之和不低于第二预定值时,确定待验证数据验证通过,能够进一步提高交易安全性。
利用本公开的方法和装置,通过在待验证交易数据中包括指定确认方公钥集,以通过分析验证通过确认方公钥和指定确认方公钥集来判断验证通过确定方是否包括预定数量的指定确认方,能够简化验证过程。
利用本公开的方法和装置,通过对交易方发起方进行验证,当交易发起方通过验证且验证通过确认方信息集中包括预定数量的指定确认方信息时,确定待验证交易数据通过验证,从而能够在确定交易发起方是合法发起方时确定待验证交易数据通过验证,以提高交易安全性。
附图说明
通过参照下面的附图,可以实现对于本公开内容的本质和优点的进一步理解。在附图中,类似组件或特征可以具有相同的附图标记。附图是用来提供对本发明实施例的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开的实施例,但并不构成对本公开的实施例的限制。在附图中:
图1示出了可用于执行根据本公开的实施例的交易验证方法的环境的示例的示意图;
图2示出了执行根据本公开的实施例的交易验证方法的系统架构的示例的示意图;
图3是根据本公开的一个实施例的交易验证方法的流程图;
图4是根据本公开的一个实施例的交易验证方法中的待验证交易数据生成过程的示例性流程图;
图5是根据本公开的一个实施例的交易验证方法中的交易发起方验证过程和待验证交易数据验证过程的流程图;
图6是根据本公开的一个实施例的交易验证方法中的交易发起方签名数据验证过程的一个示例的流程图;
图7是根据本公开的一个实施例的交易验证方法中的交易发起方签名数据验证过程的另一示例的流程图;
图8是根据本公开的一个实施例的交易验证方法中的确认方签名验证过程的一个示例的流程图;
图9是根据本公开的一个实施例的交易验证方法中的确认方签名验证过程的另一示例的流程图;
图10是根据本公开的一个实施例的交易验证装置的结构框图;
图11是图10所示的交易验证装置中的交易发起方签名数据验证单元的一个示例的结构框图;
图12是图10所示的交易验证装置中的交易发起方签名数据验证单元的另一示例的结构框图;
图13是图10所示的交易验证装置中的确认方签名验证单元的一个示例的结构框图;
图14是图10所示的交易验证装置中的确认方签名签名验证单元的另一示例的结构框图;
图15是根据本公开的一个实施例的用于实现交易验证方法的计算设备的结构框图。
具体实施方式
以下将参考示例实施方式讨论本文描述的主题。应该理解,讨论这些实施方式只是为了使得本领域技术人员能够更好地理解从而实现本文描述的主题,并非是对权利要求书中所阐述的保护范围、适用性或者示例的限制。可以在不脱离本公开内容的保护范围的情况下,对所讨论的元素的功能和排列进行改变。各个示例可以根据需要,省略、替代或者添加各种过程或组件。另外,相对一些示例所描述的特征在其它例子中也可以进行组合。
如本文中使用的,术语“包括”及其变型表示开放的术语,含义是“包括但不限于”。术语“基于”表示“至少部分地基于”。术语“一个实施例”和“一实施例”表示“至少一个实施例”。术语“另一个实施例”表示“至少一个其他实施例”。术语“第一”、“第二”等可以指代不同的或相同的对象。下面可以包括其他的定义,无论是明 确的还是隐含的。除非上下文中明确地指明,否则一个术语的定义在整个说明书中是一致的。
现在结合附图来描述本公开的用于进行交易验证的方法及装置。
区块链是一种按照时间顺序来将数据区块顺序相连组合而成的链式数据结构,并且以密码学方式保证数据区块不可篡改和不可伪造。区块链包括一个或多个区块。区块链中的每个区块通过包括该区块链中紧接其之前的前一个区块的加密散列而链接到该前一个区块。每个区块还包括时间戳、该区块的加密哈希以及一个或多个交易(transaction)。对已经被区块链网络的节点验证的交易进行哈希处理并形成Merkle树。在Merkle树中,对叶节点处的数据进行哈希处理,并且针对Merkle树的每个分支,在该分支的根处级联该分支的所有哈希值。针对Merkle树执行上述处理,直到整个Merkle树的根节点。Merkle树的根节点存储代表该Merkle树中的所有数据的哈希值。当一个哈希值声称是Merkle树中存储的交易时,可以通过判断该哈希值是否与Merkle树的结构一致来进行快速验证。
区块链是用于存储交易的数据结构。区块链网络是用于管理、更新和维护一个或多个区块链结构的计算节点网络。如上所述,区块链网络可以包括公有区块链网络、私有区块链网络或联盟区块链网络。
在公有区块链网络中,共识过程由共识网络的节点控制。例如,在公有区块链网络中可以存在成千上万个实体协作处理,每个实体操作该公有区块链网络中的至少一个节点。因此,公有区块链网络可以被认为是参与实体的公有网络。在一些示例中,大多数实体(节点)必须按序对每个区块进行签名,并且将签名后的区块添加到区块链网络的区块链中。公有区块链网络的示例可以包括特定对等支付网络。此外,术语“区块链”不特别指代任何特定的区块链。
公有区块链网络支持公有交易。公有交易在公有区块链网络内的所有节点之间共享,并且存储在全局区块链中。全局区块链是指跨所有节点复制的区块链。为了达成共识(例如,同意向区块链添加区块),在公有区块链网络内实现共识协议。共识协议的示例包括但不限于:工作量证明(POW,proof-of-work),权益证明(POS,proof-of-stake)和权威证明(POA,proof-of-authority)。在本公开中,采用POW作为非限制性示例。
私有区块链网络被提供来用于特定实体。私有区块链网络中的各个节点的读写权限被严格控制。因此,私有区块链网络通常也称为许可网络,其对允许谁参与网络以及 的网络参与水平(例如,仅在某些交易情形下)进行限制。在私有区块链网络中,可以使用各种类型的访问控制机制(例如,现有参与方对添加新实体进行投票,监管机构控制许可等)。
联盟区块链网络在参与实体之间是私有的。在联盟区块链网络中,共识过程由授权节点控制。例如,由若干个(例如,10个)实体(例如,金融机构,保险公司)组成的联盟可以操作联盟区块链网络,每个实体操作该联盟区块链网络中的至少一个节点。因此,联盟区块链网络可以被认为是参与实体的私有网络。在一些示例中,每个参与实体(节点)必须按序对每个区块进行签名,并将该区块添加到区块链。在一些示例中,可以由参与实体(节点)的子集(例如,至少7个实体)来对每个区块进行签名,并将该区块添加到区块链。
在本公开中参考联盟区块链网络来详细描述本公开的实施例。然而,可以预期,本公开的实施例可以在任何适合的区块链网络中实现。
区块链是防篡改的共享数字分类账,其在公有或私有对等网络中记录交易。分类帐被分发到网络中的所有成员节点,并且网络中发生的资产交易历史记录被永久记录在区块中。
共识机制确保分布式区块链网络中的所有网络节点按照相同的顺序执行交易,并且随后写入相同的分类账。共识模型旨在解决拜占庭问题。在拜占庭问题中,分布式区块链网络中的比如服务器或网络节点的组件可能会出现故障,或者故意向其他节点传播错误的信息。由于其他网络节点需要首先就哪个网络节点首先失败达成共识,从而其他网络节点很难将该组件声明失败并将其排除出区块链网络。
图1示出了可用于执行根据本公开的实施例的交易验证方法的环境100的示例的示意图。在一些示例中,环境100使得实体能够参与区块链网络102。如图1所示,环境100包括网络104、和计算设备/系统106、108。在一些示例中,网络104可以包括局域网(LAN),广域网(WAN),因特网或其组合,并且连接网站、用户设备(例如,计算设备)和后端系统。在一些示例中,可以通过有线和/或无线通信链路来访问网络104。在一些示例中,计算设备/系统106、108通过网络104相互通信,以及通过网络104实现与区块链网络102之间的通信,以及区块链网络102中的节点(或,节点设备)通过网络104来进行通信。通常,网络104表示一个或多个通信网络。在一些情况下,计算设备/系统106、108可以是云计算系统(未示出)的节点,或者每个计算设备/系统106、108可以是单独的云计算系统,其包括通过网络104互连的多个计算机并且用作分 布式处理系统。
在所描绘的示例中,计算设备/系统106、108中的每个可以包括能够参与作为区块链网络102中的节点的任何合适的计算系统。计算设备/系统的示例包括但不限于,服务器,台式计算机,笔记本电脑,平板电脑设备和智能手机等。在一些示例中,计算设备/系统106、108上可以安装有用于与区块链网络102交互的一个或多个计算机实现的服务。例如,计算设备/系统106可以上可以安装有第一实体(例如,用户A)的服务,比如,第一实体用于管理其与一个或多个其他实体(例如,其他用户)的交易的交易管理系统。计算设备/系统108可以上可以安装有第二实体(例如,用户B)的服务,比如,第二实体用于管理其与一个或多个其他实体(例如,其他用户)的交易的交易管理系统。在图1的示例中,区块链网络102被表示为节点的对等网络,并且计算设备/系统106、108分别作为参与区块链网络102的第一实体和第二实体的节点。
图2示出了执行根据本公开的实施例的交易验证方法的系统架构200的示例的示意图。系统架构200的示例包括分别与参与方A,参与方B和参与方C对应的参与方系统202、204、206。每个参与方(例如,用户,企业)参与被提供来作为对等网络的区块链网络212。区块链网络212包括多个节点214,其中,节点214中的至少一些节点在区块链216中记录信息,并且所记录的信息不可更改。尽管在区块链网络212内示意性地示出了单个区块链216,但是可以提供区块链216的多个副本,并且在区块链网络212中维护多个副本,如稍后详细描述的。
在所示出的示例中,每个参与方系统202、204、206分别由参与方A,参与方B和参与方C提供,或者被提供来作为参与方A,参与方B和参与方C,并且充当区块链网络212内的对应节点214。如这里所使用的,节点通常是指连接到区块链网络212的单个系统(例如,计算机,服务器),并且使得相应的参与方能够参与区块链网络。在图2示出的示例中,参与方对应于每个节点214。然而,一个参与方可以操作区块链网络212内的多个节点214,和/或多个参与方可以共享单个节点214。在一些示例中,参与方系统202、204、206使用协议(例如,超文本传输协议安全(HTTPS))和/或使用远程过程调用(RPC)来与区块链网络212通信,或者通过区块链网络212进行通信。
节点214在区块链网络212的参与度可以不同。例如,一些节点214可以参与共识过程(例如,作为将区块添加到区块链216的矿工节点),而其他节点214不参与共识过程。作为另一示例,一些节点214存储区块链216的完整副本,而其他节点214仅存储区块链216的部分副本。在图2的示例中,参与方系统202、204、206各自存储区 块链216的完整副本216'、216″、216″′。
区块链(例如,图2中的区块链216)由一连串的区块组成,每个区块存储数据。数据的示例可以包括表示两个或更多参与方之间的交易的交易数据。在本公开中,交易被使用来作为非限制性示例,可以预期的是,任何适当的数据都可以存储在区块链中(例如,文档,图像,视频,音频)。交易的示例可以包括但不限于交换有价值的东西(例如,资产,产品,服务和货币等)。交易数据被不可更改地存储在区块链中。
在存储在区块中之前,对交易数据进行哈希处理。哈希处理是将(作为字符串数据提供的)交易数据转换为固定长度的哈希值(也被作为字符串数据提供)的过程。通过对交易诗句进行哈希处理后,即使交易数据出现轻微更改,也会导致得到完全不同的哈希值。哈希值通常是通过使用哈希函数来对交易数据进行哈希处理而生成的。哈希函数的示例包括但不限于安全散列算法(SHA)-256,其输出256比特的哈希值。
多个交易的交易数据被哈希化并且存储在区块中。例如,对两个交易数据进行哈希处理得到两个哈希值,然后,对所得到的两个哈希值再次进行哈希处理以得到另一哈希值。重复该过程,直到对于要存储在区块中的所有交易,得到单个哈希值。该哈希值被称为Merkle根哈希,并且被存储在区块的头部。任何交易的更改都会导致其哈希值发生变化,最终导致Merkle根哈希值发生变化。
通过共识协议来将区块添加到区块链中。区块链网络中的多个节点参与共识协议,并且竞争来将区块添加到区块链中。这样的节点被称为矿工节点(或记账节点)。以上介绍的POW用作非限制性示例。
矿工节点执行共识过程来将交易(所对应的区块)添加到区块链。虽然多个矿工节点参与共识过程,但只有一个矿工节点可以将区块写入区块链。也就是说,矿工节点在共识过程中竞争以将其区块添加到区块链中。更详细地,矿工节点周期性地从交易池中收集待处理的交易(例如,直到达到在区块中可以包括的交易数量的预定限制,如果有的话)。交易池包括来自区块链网络中的参与方的交易消息。矿工节点创建区块,并将交易添加到区块中。在将交易添加到区块之前,矿工节点检查待添加的交易中是否存在区块链的区块中具有的交易。如果该交易已被添加到另一个区块中,则该交易将被丢弃。
矿工节点生成区块头,对区块中的所有交易进行哈希处理,并且成对地组合哈希值以生成进一步的哈希值,直到针对区块中的所有交易得到单个哈希值(Merkle根哈希)。 然后,将Merkle根哈希添加到区块头中。矿工还确定区块链中的最新区块(即,添加到区块链的最后一个区块)的哈希值。矿工节点还可以在区块头中添加随机数值(noune值)和时间戳。在挖掘过程中,矿工节点尝试找到满足所需参数的哈希值。矿工节点不断更改nonce值,直到找到满足所需参数的哈希值。
区块链网络中的每个矿工都试图找到满足所需参数的哈希值,并且以这种方式彼此竞争。最终,一个矿工节点找到满足所需参数的哈希值,并将该哈希值通告给区块链网络中的所有其他矿工节点。其他矿工节点验证哈希值,如果确定为正确,则验证区块中的每个交易,接受该区块,并将该区块附加到它们的区块链副本中。以这种方式,区块链的全局状态在区块链网络内的所有矿工节点上达成一致。上述过程是POW共识协议。
在图2所提供的示例中,参与方A想要向参与方B发送一定数量的资金。参与方A生成交易消息,并将交易消息发送到区块链网络,该交易消息被增加到交易池中。区块链网络中的每个矿工节点创建区块,并从交易池中获取交易,并将交易添加到区块。按照这种方式,参与方A所发布的交易被添加到矿工节点的区块中。
在一些区块链网络中,实施密码技术来维护交易的隐私性。例如,如果两个节点想要保持交易私密性,使得区块链网络中的其他节点不能获悉交易细节,则节点可以对交易数据进行加密处理。加密方法的示例包括但不限于对称加密和非对称加密。对称加密是指使用单个密钥进行加密(根据明文生成密文)和解密(根据密文生成明文)的加密过程。在对称加密中,多个节点可以使用相同的密钥,因此每个节点都可以对交易数据进行加密/解密。
非对称加密是指使用密钥对来进行加密。每个密钥对包括私钥和公钥,私钥仅对于相应节点是已知的,并且公钥对于区块链网络中的任何或所有其他节点是已知的。节点可以使用另一个节点的公钥来加密数据,并且可以使用其他节点的私钥来解密经过加密的数据。例如,再次参考图1。参与方A可以使用参与方B的公钥来加密数据,并将加密数据发送给参与方B.参与方B可以使用其私钥来解密加密数据(密文)并提取原始数据(明文)。使用节点的公钥加密的消息,只能使用该节点的私钥解密。
非对称加密用于提供数字签名,这使得交易中的参与方能够确认交易中的其他参与方以及交易的有效性。例如,节点可以对消息进行数字签名,而另一个节点可以根据参与方A的数字签名确认消息是由该节点发送的。数字签名还可以用于确保消息在传输过程中不被篡改。例如,再次参考图1。参与方A将向参与方B发送消息。参与方A 生成消息的哈希值,然后使用其私钥对哈希值进行加密来生成数字签名。参与方A将该数字签名附加到消息,并将具有数字签名的消息发送给参与方B。参与方B使用参与方A的公钥解密数字签名,从而解密出对应的哈希值。参与方B对所接收的消息进行哈希处理以得到另一哈希值,然后比较两个哈希值。如果哈希值相同,则参与方B可以确认该消息确实来自参与方A,并且未被篡改。
图3是根据本公开的一个实施例的交易验证方法的流程图。
如图3所示,在块302,接收待验证交易数据。待验证交易数据包括交易信息明文和针对交易信息明文的至少一个确认方签名数据,交易信息明文包括指定确认方信息集。交易信息明文是指未加密的交易信息,在未出现被篡改或信息丢失等情形下,其实质内容与交易信息的内容一致。
当交易涉及多个关联交易方时,针对每笔交易,涉及该交易的交易发起方和确认方。确认方例如可以确认该交易是否为合法交易、是否同意该交易进行等。各交易方之间可以协商确定交易确认规则,在产生交易时按照彼此之间确认的交易规则对交易进行确认。针对每笔交易,可以将除交易发起方之外的其它交易方看作确认方,而被指定对该交易进行确认的确认方为指定确认方。每笔交易的指定确认方可以由交易发起方指定,也可以由该交易的关联交易方共同约定指定规则或以指定列表的方式确认指定确认方。每笔交易的指定确认方可以为一个或多个,指定确认方的具体数量可以根据业务场景来确定。
交易发起方发起一笔交易时,可以在签名之后发送给各个指定确认方以由指定确认方签名。在获得交易发起方签名数据和确认方签名数据之后,可以生成待验证交易数据,并发送给区块链系统以对该交易进行验证。区链系统例如可以是如图1和图2所示的系统。
图4是根据本公开的一个实施例的交易验证方法中的待验证交易数据生成过程的示例性流程图。
如图4所示,在块402,交易发起方在发起交易时生成交易信息。交易信息例如可以包括交易发起方账号、交易对象账号、交易金额、交易摘要、时间戳等信息。在交易信息中还包括指定确认方信息集。指定确认方信息集包括被指定对该交易进行确认的至少一个指定确认方的指定确认方信息。指定确认方信息例如可以是指定确认方公钥,还可以是指定确认方账号。
在生成交易信息之后,在块404,交易发起方利用自己的私钥对所生成的交易信息进行签名,以得到交易发起方签名。然后在块406、块412等交易信息发送过程中,将交易数据(包括交易信息明文和交易发起方签名数据)发送给各个确认方。交易发起方签名数据可以包括交易发起方公钥和交易发起方签名。
在一个示例中,交易发起方可以仅向指定确认方发送交易信息明文和交易发起方签名数据。在另一示例中,交易发起方可以向所有确认方发送交易信息明文和交易发起方签名。各个确认方可以在接收到这些数据之后,基于交易信息明文中的指定确认方信息集确认自己是否是相应交易的指定确认方。
在块408、块414等过程中,各确认方可以在交易发起方签名验证合法之后对所接收到的交易数据进行验证,并在验证通过后对交易信息明文进行签名,以得到确认方签名数据。指定确认方可以利用交易发起方签名数据中的公钥对交易发起方签名进行验证。具体地,可以利用交易发起方公钥对交易发起方签名进行解密以得到交易发起方签名中的交易信息,当解密得到的交易信息与交易信息明文一致时,确认所接收到的交易数据来自于合法的交易发起方。在一个示例中,当信息网络环境的安全性时,在发送给各个确认方或指定确认方的交易数据中可以不包括交易发起方签名数据。在该示例中,各个指定确认方不需要执行交易发起方签名验证操作。在一个示例中,各确认方可以在确定自己为对应交易的指定确认方时进行验签和签名。在另一示例中,各个确认方可以对所接收到的所有交易数据进行验签和签名,或者按照该确认方自身的规则来决定是否验签或签名。
在得到确认方签名数据之后,在块410、块416等过程,各个确认方将确认方签名数据发送给交易发起方。然后,交易发起方在块418,生成待验证交易数据,并在块420,将待验证交易数据发送给区块链系统。区块链系统在接收到待验证交易数据之后,在块422,对待验证交易数据执行交易验证。
确认方签名数据可以只包括指定确认方签名数据。未被指定为指定确认方的确认方也可能对所接收到的交易数据进行签名。此时,发送给区块链系统的待验证交易数据中的确认方签名数据包括指定确认方签名数据和非指定确认方签名数据。
作为示例,待验证交易数据例如可以采用如下数格式:[Payload,[PubA,SignA],[PubB,signB],[PubC,signC]]。其中Payload为交易信息明文,其数据格式可以为[XX,XX,XX,[PubB,PubC]]。PubA为交易发起方签名,PubB、PubC分别为指定确认方B和C的签名,[PubB,PubC]为指定确认方信息集。
在接收到待验证交易数据之后,在块304,针对至少一个确认方签名数据中的各个确认方签名数据的确认方签名,基于该确认方签名数据和交易信息明文,对该确认方签名数据中的确认方签名进行验证,以获取验证通过确认方信息集。验证通过确认方信息集包括确认方签名被验证为合法的各个确认方的确认方信息。对确认方签名的验证过程将在后述参考图8和图9进行说明。
在获取验证验证通过确认方信息集之后,在块306,判断验证通过确认方信息集中是否包括指定确认方信息集中的预定数量的指定确认方信息。当验证通过确认方信息集包括指定确认方信息集中的预定数量的指定确定方信息时,在块308,确定待验证数据验证通过,否则在块310确定相应交易不合法,该交易失败。
在一个示例中,可以在验证通过确认方信息集包括指定确认方信息集中的所有指定确认方信息时,确定待验证交易数据验证通过。在该示例中,验证通过的条件是所有指定确认方都对交易信息明文进行了签名且所有指定确认方签名被验证为合法。在另一示例中,各个交易关联方也可以约定多数通过规则,即当多数指定确认方对交易信息明文进行了签名且这些签名验证为合法时确定待交易数据验证通过(即对应交易得到了多数指定确认方的确认)。
在一个示例中,各个指定确认方可以具有指定确认方权重。当验证通过确认方信息集包括指定确认方信息集中的预定数量的指定确定方信息时,还可以进一步判断该预定数量的指定确认方信息所对应的各个指定确认方的指定确认方权重之和是否不低于第一预定值。如果该预定数量的指定确认方信息所对应的指定确认方权重之和不低于第一预定值,可以确定待验证数据验证通过。例如,可以在各个指定确认方的确认方权重之和达到100时,确定待验证交易数据验证通过。指定确认方权重可以存储在区块链系统中,也可以被包括在确认方签名数据中。各个确认方在对所接收到的交易信息进行签名时,还可以利用私钥对指定确认方权重进行加密,并将加密后的指定确认方权重包括在确认方签名数据中发送给交易发起方。
当待验证交易数据通过验证时,区块链系统可以执行智能合约,以执行待验证交易数据的对应交易。智能合约可以由交易发起方指定,还可以以在区块链系统中指定智能合约。
在另一示例中,还可以对交易方签名数据进行验证,以验证对应交易是否由合法的交易发起方发起。图5是根据本公开的一个实施例的交易验证方法中的交易发起方验证过程和待验证交易数据验证过程的流程图。
如图5所示,在块502,基于交易信息明文和交易发起方签名数据,对交易发起方签名数据进行验证。然后在块504,判断交易发起方签名数据是否验证通过。交易发起方签名数据可以包括交易发起方签名,还可以包括交易发起方公钥。对交易发起方签名数据的验证可以包括交易发起方签名验证过程,还可以包括交易发起方公钥验证过程。对交易发起方签名数据的验证过程将在下文参照图6和图7进行说明。
当交易发起方数据验证通过时,在块506,判断验证通过方信息集是否包括预定数量的指定确认方信息。当交易发起方数据验证通过且验证通过确认方信息集包括预定数量的指定确认方信息时,在块508,确定待验证交易数据验证通过,否则在块510,确定待验证交易未通过验证,对应交易失败。
图6是根据本公开的一个实施例的交易验证方法中的交易发起方签名数据验证过程的一个示例的流程图。在该示例中,交易发起方签名数据包括交易发起方公钥和交易发起方签名。
如图6所示,在块602,利用交易发起方签名数据中的交易发起方公钥对交易发起方签名进行解密以得到交易发起方签名中的交易信息。然后在块604,判断解密得到的交易信息是否与待验证交易数据中的交易信息明文一致。在一个示例中,可以对解密得到的交易信息和交易信息明文分别进行哈希运算以得到哈希值,然后比较二者的哈希值是否一致。
当从交易发起方签名中解密得到的交易信息与待验证交易数据中的交易信息明文一致时,在块606,基于交易信息明文中的交易发起方账号,获取区块链系统中的交易发起方公钥。在各个交易方参与到区块链网络中时,该交易方的公钥会发送到区块链系统中并进行存储。因而,可以从交易信息明文中获取交易发起方的账号,然后可根据交易发起方账号从区块链系统中获取相应的交易发起方公钥。以基于以太坊实现的区块链系统为例,可以从区块链的世界状态中获取交易发起方公钥。
然后,在块608,判断从区块链系统中获取的交易发起方公钥是否与交易发起方签名中的交易发起方公钥一致。当二者一致时,表明交易发起方是该交易发起方公钥的合法使用者,因而在块610,确定交易发起方签名数据验证通过。如果二者不一致,则表明交易发起方不是该交易发起方公钥的合法使用者,因而在块612,确认交易发起方签名数据验证不通过,对应交易失败。
图6中的各个过程可以以其它顺序进行排列组合。例如,可以在确认区块链系统 中的交易发起方公钥与交易发起方签名数据中的交易发起方签名数据一致时,利用被确定为一致的交易发起方公钥来验证交易发起方签名。
图7是根据本公开的一个实施例的交易验证方法中的交易发起方签名数据验证过程的另一示例的流程图。在该示例中,交易发起方签名数据包括交易发起方签名。
如图7所示,在块702,基于交易信息明文中的交易发起方账号,获取区块链系统中的交易发起方公钥。
在获取到交易发起方公钥后,在块704,利用所获取到的交易发起方公钥,对交易发起方签名进行解密以得到交易发起方签名中的交易信息。然后在块706,判断解密得到的交易信息是否与待验证交易数据中的交易信息明文一致。当二者一致时,表明交易发起方是该交易发起方公钥的合法使用者,在块708,确定交易发起方签名数据验证通过。如果二者不一致,则表明交易发起方不是该交易发起方公钥的合法使用者,在块710,确认交易发起方签名数据验证不通过,对应交易失败。
图8是根据本公开的一个实施例的交易验证方法中的确认方签名验证过程的一个示例的流程图。在该示例中,确认方签名数据包括确认方公钥。
如图8所示,在块802,利用该确认方签名数据中的确认方公钥,对该确认方签名数据中的确认方签名进行解密以得到确认方签名中的交易信息。
然后,在块804,判断从确认方签名中解密得到的交易信息是否与待验证交易数据中的交易信息明文一致。在一个示例中,可以对二者进行哈希运算后比较二者的哈希值是否一致。
当二者一致时,在块806,确认该确认方签名数据验证通过。如果二者不一致,则在块808,确认该确认方签名验证不通过。在对所有确认方签名进行验证后,可基于验证通过的确认方的确认方公钥来生成验证通过确认方公钥集。
待验证交易数据中的指定确认方信息可以包括指定确认方公钥。相应地,指定确认方信息集可以是指定确认方公钥集。在另一示例中,在确认方签名数据包括确认方公钥时,指定确认方信息还可以包括指定确认方账号。相应地,指定确认方信息集为指定确认方账号集。此时,可以基于指定确认方账号集中的至少一个指定确认方账号,获取区块链系统中的对应指定确认方公钥,以获取指定确认方公钥集。
在对各个确认方签名进行验证之后,可以对验证通过公钥集和指定确认方公钥集进行比对,以确定验证通过确认方公钥集是否包括指定确认方公钥集中的预定数量的指 定确认方公钥。当验证通过确认方公钥集中包括预定数量的指定确认方公钥时,可以确定待验证交易数据通过验。
指定确认方可以具有多个公钥,在对交易数据进行签名以生成确认方签名数据时,指定确认方可以选择取其中一个公钥所对应的私钥来进行签名,并将对应的公钥放入确认方签名数据中。各个指定确认方的多个公钥可以具有公钥权重,指定确认方可根据业务场景决定使用权重高还是权重低的公钥。在该示例中,当验证通过确认方信息集包括指定确认方信息集中的预定数量的指定确定方信息时,可以进一步确认该预定数量的指定确认方所使用的公钥的公钥权重之和是否不低于第二预定值。可以在该预定数量的指定确认方信息所对应的公钥权重之和不低于第二预定值时,确定待验证数据验证通过。
指定确认方公钥的公钥权重可以以索引的形式存储在区块链系统中,从而可以根据指定确认方公钥来查询对应的公钥权重。在另一示例中,公钥权重也可以被包括在对应的指定确认方签名中。
在一个示例中,在待验证交易数据通过验证时,还可以将通过验证的各个指定确认方的公钥存储在本地,以供智能合约执行时使用。智能合约可以根据业务场景来配置,在某些业务场景中,智能合约中可以包括需要使用指定确认方公钥的规则。在存储指定确认方公钥时,可以省去智能合约执行过程中的公钥查询过程。
在另一示例中,确认方签名数据可以包括确认方账号。此时,可以采用图9所示的示例来进行确认方签名验证。图9是根据本公开的一个实施例的交易验证方法中的确认方签名验证过程的另一示例的流程图。
如图9所示,在块902,基于确认方签名数据中的确认方账号,获取区块链系统中的确认方公钥。由于各个交易方在参与区块链网络时已将公钥存储在区块链系统中,因而可以基于确认方账号获取确认方公钥。例如,可以从世界状态中获取确认方公钥。
在获取到确认方公钥之后,在块904,利用所获取的确认方公钥,对该确认方签名数据中的确认方签名进行解密以得到确认方签名中的交易信息。
然后,在块906,确定从确认方签名中解密得到的交易信息是否与待验证交易数据中的交易信息明文一致。当二者一致时,表明确认方签名合法,在块908,确定该确认方签名验证通过。当二者不一致时,该确认方签名不合法,在块910,确定该确认方签名验证不通过。
在对各个确认方签名进行验证之后,可以基于验证通过的确认方的确认方账号生 成验证通过确认方账号集。此时,待验证交易数据中的指定确认方信息可以包括指定确认方账号。在获取验证通过确认方账号集之后,可以对验证通过确认方账号集和指定确认方账号集进行比对,以确认验证通过确认方账号集中是否包括预定数量的指定确认方账号。由此,可以确认对相应交易进行确认的指定数认方数量是否达到要求。
还可以基于验证通过的确认方的确认方公钥生成验证通过确认方公钥集。相应地,待验证交易数据中的指定确认方信息可以包括指定确认方公钥,指定确认方信息集为指定确认方公钥集。在获取验证通过确认方账号集之后,可以对验证通过确认方公钥集和指定确认方公钥集进行比对,以确认验证通过确认方公钥集中是否包括预定数量的指定确认方公钥。
图10是根据本公开的一个实施例的交易验证装置的结构框图。如图10所示,交易验证装置1000包括待验证交易数据接收单元1010、确认方签名验证单元1020、交易发起方签名数据验证单元1030和待验证数据验证单元1040。
待验证交易数据接收单元1010被配置为接收待验证交易数据,待验证交易数据包括交易信息明文和针对交易信息明文的至少一个确认方签名数据,交易信息明文包括指定确认方信息集,指定确认方信息集包括被指定对交易数据进行确认的至少一个指定确认方的指定确认方信息,确认方签名数据包括确认方签名。
确认方签名验证单元1020被配置为针对所述至少一个确认方签名数据中的确认方签名,基于该确认方签名数据和交易信息明文,对该确认方签名数据中的确认方签名进行验证,以获取验证通过确认方信息集。交易发起方签名数据验证单元1030被配置为基于所述交易信息明文和所述交易发起方签名数据,对交易发起方签名进行验证。
待验证数据验证单元1040被配置为当验证通过确认方信息集包括指定确认方信息集中的预定数量的指定确定方信息且交易方通过验证时,确定待验证数据验证通过。在另一示例中,交易验证装置可以不包括交易发起方签名数据验证单元。此时,待验证数据验证单元1040可以被配置为当验证通过确认方信息集包括所述指定确认方信息集中的预定数量的指定确定方信息时,确定待验证数据验证通过。
在一个示例中,各个指定确认方可以具有指定确认方权重,待验证数据验证单元1040可以被配置为当验证通过确认方信息集包括指定确认方信息集中的预定数量的指定确定方信息时,以及该预定数量的指定确认方信息所对应的指定确认方权重之和不低于第一预定值时,确定待验证数据验证通过。
图11是图10所示的交易验证装置中的交易发起方签名数据验证单元的一个示例的结构框图。如图11所示,交易发起方签名数据验证单元1030包括交易发起方签名解密模块1031、公钥获取模块1032和交易发起方签名验证模块1033。在该示例中,交易发起方签名数据还可以包括交易发起方公钥。
交易发起方签名解密模块1031被配置为利用交易发起方签名数据中的交易发起方公钥对交易发起方签名进行解密以得到交易发起方签名中的交易信息。公钥获取模块1032被配置为基于交易信息明文中的交易发起方账号,获取区块链系统中的交易发起方公钥。交易发起方签名验证模块1033被配置为当交易发起方签名中的交易信息与交易信息明文一致,以及交易发起方签名数据中交易发起方公钥与区块链系统中的交易发起方公钥一致时,确定交易发起方签名数据验证通过。
图12是图10所示的交易验证装置中的交易发起方签名数据验证单元的另一示例的结构框图。交易发起方签名数据验证单元1030包括公钥获取模块1034、交易发起方签名解密模块1035和交易发起方签名验证模块1036。
公钥获取模块1034被配置为基于交易信息明文中的交易发起方账号,获取区块链系统中的交易发起方公钥。交易发起方签名解密模块1035被配置为利用所获取到的交易发起方公钥,对交易发起方签名进行解密以得到交易发起方签名中的交易信息。交易发起方签名验证模块1036被配置为当交易发起方签名的交易信息与交易信息明文一致时,确定交易发起方签名数据验证通过。
图13是图10所示的交易验证装置中的确认方签名验证单元的一个示例的结构框图。如图13所示,确认方签名验证单元1020包括确认方签名解密模块1021和确认方签名验证模块1022。在该示例中,确认方签名数据还可以包括确认方公钥。
确认方签名解密模块1021被配置为利用该确认方签名数据中的确认方公钥,对该确认方签名数据中的确认方签名进行解密以得到确认方签名中的交易信息。确认方签名验证模块1022被配置为当确认方签名中的交易信息与交易信息明文一致时,确认该确认方签名验证通过。
在另一示例中,指定确认方信息可以包括指定确认方账号,验证通过确认方信息集包括验证通过确认方公钥集。在该示例中,交易验证装置还可以包括指定确认方公钥集获取单元(图中未示出)。指定确认方公钥集获取单元被配置为基于指定确认方账号集中的至少一个指定确认方账号,获取区块链系统中的对应指定确认方公钥,以获取指 定确认方公钥集。此时,待验证数据验证单元被配置为当验证通过确认方信息集包括预定数量的指定确认方公钥时,确定待验证数据验证通过。
在一个示例中,至少一个指定确认方的指定确认方公钥可以具有公钥权重,待验证数据验证单元可以被配置为当验证通过确认方信息集包括指定确认方信息集中的预定数量的指定确定方信息时,以及该预定数量的指定确认方信息所对应的公钥权重之和不低于第二预定值时,确定待验证数据验证通过。
图14是图10所示的交易验证装置中的确认方签名签名验证单元的另一示例的结构框图。如图14所示,确认方签名验证单元1020包括确认方公钥获取模块1023、确认方签名解密模块1024和确认方签名验证模块1025。在该示例中,确认方签名数据还可以包括确认方账号
确认方公钥获取模块1023被配置为基于所述确认方账号,获取区块链系统中的确认方公钥。确认方签名解密模块1024被配置为利用所获取的确认方公钥,对该确认方签名数据中的确认方签名进行解密以得到确认方签名中的交易信息。确认方签名验证模块1025被配置为当确认方签名中的交易信息与交易信息明文一致时,确认该确认方签名验证通过。
以上参照图1到图14,对根据本公开的对交易进行验证的方法及装置的实施例进行了描述。在以上对方法实施例的描述中所提及的细节,同样适用于本公开的装置的实施例。
本公开的对交易进行验证的装置可以采用硬件实现,也可以采用软件或者硬件和软件的组合来实现。本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见。
本公开的对交易进行验证的装置可以采用硬件实现,也可以采用软件或者硬件和软件的组合来实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在设备的处理器将存储器中对应的计算机程序指令读取到内存中运行形成的。在本公开中,对交易进行验证的装置例如可以利用计算设备实现。
图15是根据本公开的一个实施例的用于实现交易验证方法的计算设备的结构框图。如图15所示,计算设备1500包括处理器1510、存储器1520、内存1530、通信接口1540和内部总线1550,并且处理器1510、存储器(例如,非易失性存储器)1520、内存1530、通信接口1540经由总线1550连接在一起。根据一个实施例,计算设备1500可以包括 至少一个处理器1510,该至少一个处理器1510执行在计算机可读存储介质(即,存储器1520)中存储或编码的至少一个计算机可读指令(即,上述以软件形式实现的元素)。
在一个实施例中,在存储器1520中存储计算机可执行指令,其当执行时使得至少一个处理器1510:接收待验证交易数据,所述待验证交易数据包括交易信息明文和针对所述交易信息明文的至少一个确认方签名数据,所述交易信息明文包括指定确认方信息集,所述指定确认方信息集包括被指定对所述交易信息明文进行确认的至少一个指定确认方的指定确认方信息,所述确认方签名数据包括确认方签名;针对所述至少一个确认方签名数据中的确认方签名,基于该确认方签名数据和所述交易信息明文,对该确认方签名数据中的确认方签名进行验证,以获取验证通过确认方信息集;以及当所述验证通过确认方信息集包括所述指定确认方信息集中的预定数量的指定确定方信息时,确定所述待验证数据验证通过。
应该理解,在存储器1520中存储的计算机可执行指令当执行时使得至少一个处理器1510进行本公开的各个实施例中以上结合图1-15描述的各种操作和功能。
根据一个实施例,提供了一种例如非暂时性机器可读介质的程序产品。非暂时性机器可读介质可以具有指令(即,上述以软件形式实现的元素),该指令当被机器执行时,使得机器执行本公开的各个实施例中以上结合图1-15描述的各种操作和功能。
具体地,可以提供配有可读存储介质的系统或者装置,在该可读存储介质上存储着实现上述实施例中任一实施例的功能的软件程序代码,且使该系统或者装置的计算机或处理器读出并执行存储在该可读存储介质中的指令。
在这种情况下,从可读介质读取的程序代码本身可实现上述实施例中任何一项实施例的功能,因此机器可读代码和存储机器可读代码的可读存储介质构成了本发明的一部分。
可读存储介质的实施例包括软盘、硬盘、磁光盘、光盘(如CD-ROM、CD-R、CD-RW、DVD-ROM、DVD-RAM、DVD-RW、DVD-RW)、磁带、非易失性存储卡和ROM。可选择地,可以由通信网络从服务器计算机上或云上下载程序代码。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是 可以的或者可能是有利的。
上述各流程和各系统结构图中不是所有的步骤和单元都是必须的,可以根据实际的需要忽略某些步骤或单元。各步骤的执行顺序不是固定的,可以根据需要进行确定。上述各实施例中描述的装置结构可以是物理结构,也可以是逻辑结构,即,有些单元可能由同一物理实体实现,或者,有些单元可能分由多个物理实体实现,或者,可以由多个独立设备中的某些部件共同实现。
在整个本说明书中使用的术语“示例性”意味着“用作示例、实例或例示”,并不意味着比其它实施例“优选”或“具有优势”。出于提供对所描述技术的理解的目的,具体实施方式包括具体细节。然而,可以在没有这些具体细节的情况下实施这些技术。在一些实例中,为了避免对所描述的实施例的概念造成难以理解,公知的结构和装置以框图形式示出。
以上结合附图详细描述了本公开的实施例的可选实施方式,但是,本公开的实施例并不限于上述实施方式中的具体细节,在本公开的实施例的技术构思范围内,可以对本公开的实施例的技术方案进行多种简单变型,这些简单变型均属于本公开的实施例的保护范围。
本公开内容的上述描述被提供来使得本领域任何普通技术人员能够实现或者使用本公开内容。对于本领域普通技术人员来说,对本公开内容进行的各种修改是显而易见的,并且,也可以在不脱离本公开内容的保护范围的情况下,将本文所定义的一般性原理应用于其它变型。因此,本公开内容并不限于本文所描述的示例和设计,而是与符合本文公开的原理和新颖性特征的最广范围相一致。

Claims (23)

  1. 一种用于进行交易验证的方法,包括:
    接收待验证交易数据,所述待验证交易数据包括交易信息明文和针对所述交易信息明文的至少一个确认方签名数据,所述交易信息明文包括指定确认方信息集,所述指定确认方信息集包括被指定对所述交易信息明文进行确认的至少一个指定确认方的指定确认方信息,所述确认方签名数据包括确认方签名;
    针对所述至少一个确认方签名数据中的确认方签名,基于该确认方签名数据和所述交易信息明文,对该确认方签名数据中的确认方签名进行验证,以获取验证通过确认方信息集;以及
    当所述验证通过确认方信息集包括所述指定确认方信息集中的预定数量的指定确定方信息时,确定所述待验证数据验证通过。
  2. 如权利要求1所述的方法,其中,所述各个指定确认方具有指定确认方权重,当所述验证通过确认方信息集包括所述指定确认方信息集中的预定数量的指定确定方信息时,确定所述待验证数据验证通过还包括:
    当所述验证通过确认方信息集包括所述指定确认方信息集中的预定数量的指定确定方信息时,以及该预定数量的指定确认方信息所对应的指定确认方权重之和不低于第一预定值时,确定所述待验证交易数据验证通过。
  3. 如权利要求1所述的方法,其中,所述至少一个指定确认方的指定确认方公钥具有公钥权重,当所述验证通过确认方信息集包括所述指定确认方信息集中的预定数量的指定确定方信息时,确定所述待验证数据验证通过还包括:
    当所述验证通过确认方信息集包括所述指定确认方信息集中的预定数量的指定确定方信息时,以及该预定数量的指定确认方信息所对应的公钥权重之和不低于第二预定值时,确定所述待验证数据验证通过。
  4. 如权利要求1-3中任一所述的方法,其中,所述确认方签名数据还包括确认方公钥,基于该确认方签名数据和所述交易信息明文,对该确认方签名数据中的确认方签名进行验证包括:
    利用该确认方签名数据中的确认方公钥,对该确认方签名数据中的确认方签名进行解密以得到确认方签名中的交易信息;以及
    当所述确认方签名中的交易信息与所述交易信息明文一致时,确认该确认方签名验证通过。
  5. 如权利要求4所述的方法,其中,所述指定确认方信息包括指定确认方公钥, 所述验证通过确认方信息集包括验证通过确认方公钥集。
  6. 如权利要求4所述的方法,其中,所述确认方信息包括指定确认方账号,所述验证通过确认方信息集包括验证通过确认方公钥集,所述方法还包括:
    基于所述指定确认方账号集中的至少一个指定确认方账号,获取区块链系统中的对应指定确认方公钥,以获取指定确认方公钥集,
    当所述验证通过确认方信息集包括所述指定确认方信息集中的预定数量的指定确定方信息时,确定所述待验证数据验证通过包括:
    当所述验证通过确认方公钥集包括预定数量的指定确认方公钥时,确定所述待验证数据验证通过。
  7. 如权利要求1-3中任一所述的方法,其中,所述确认方签名数据还包括确认方账号,基于该确认方签名数据和所述交易信息明文,对该确认方签名数据中的确认方签名进行验证包括:
    基于所述确认方账号,获取区块链系统中的确认方公钥;
    利用所获取的确认方公钥,对该确认方签名数据中的确认方签名进行解密以得到确认方签名中的交易信息;以及
    当所述确认方签名中的交易信息与所述交易信息明文一致时,确认该确认方签名验证通过。
  8. 如权利要求7所述的方法,其中,所述指定确认方信息包括指定确认方公钥,所述验证通过确认方信息集包括验证通过确认方公钥集。
  9. 如权利要求7所述的方法,其中,所述指定确认方信息包括指定确认方账号,所述验证通过确认方信息集包括验证通过确认方账号集。
  10. 如权利要求1-3中任一所述的方法,其中,所述待验证交易数据还包括针对所述交易信息明文的交易发起方签名数据,所述交易发起方签名数据包括交易发起方签名,所述方法还包括:
    基于所述交易信息明文和所述交易发起方签名数据,对所述交易发起方签名数据进行验证;
    当所述验证通过确认方信息集包括所述指定确认方信息集中的预定数量的指定确定方信息时,确定所述待验证数据验证通过包括:
    当所述验证通过确认方信息集包括所述指定确认方信息集中的预定数量的指定确定方信息且所述交易方签名数据通过验证时,确定所述待验证数据验证通过。
  11. 如权利要求10所述的方法,其中,所述交易发起方签名数据还包括交易发起 方公钥,基于所述交易信息明文和所述交易发起方签名数据,对所述交易发起方签名数据进行验证包括:
    利用所述交易发起方签名数据中的交易发起方公钥对所述交易发起方签名进行解密以得到交易发起方签名中的交易信息;
    基于所述交易信息明文中的交易发起方账号,获取区块链系统中的交易发起方公钥;以及
    当所述交易发起方签名中的交易信息与所述交易信息明文一致,且所述交易发起方签名数据中交易发起方公钥与所述区块链系统中的交易发起方公钥一致时,确定所述交易发起方签名数据验证通过。
  12. 如权利要求11所述的方法,其中,基于所述交易信息明文和所述交易发起方签名数据,对所述交易发起方进行验证包括:
    基于所述交易信息明文中的交易发起方账号,获取区块链系统中的交易发起方公钥;
    利用所获取到的交易发起方公钥,对所述交易发起方签名进行解密以得到所述交易发起方签名中的交易信息;以及
    当所述交易发起方签名的交易信息与所述交易信息明文一致时,确定所述交易发起方签名数据验证通过。
  13. 一种用于进行交易验证的装置,包括:
    待验证交易数据接收单元,被配置为接收待验证交易数据,所述待验证交易数据包括交易信息明文和针对所述交易信息明文的至少一个确认方签名数据,所述交易信息明文包括指定确认方信息集,所述指定确认方信息集包括被指定对所述交易信息明文进行确认的至少一个指定确认方的指定确认方信息,所述确认方签名数据包括确认方签名;
    确认方签名验证单元,被配置为针对所述至少一个确认方签名数据中的确认方签名,基于该确认方签名数据和所述交易信息明文,对该确认方签名数据中的确认方签名进行验证,以获取验证通过确认方信息集;以及
    待验证数据验证单元,被配置为当所述验证通过确认方信息集包括所述指定确认方信息集中的预定数量的指定确定方信息时,确定所述待验证数据验证通过。
  14. 如权利要求13所述的装置,其中,所述各个指定确认方具有指定确认方权重,所述待验证数据验证单元被配置为:
    当所述验证通过确认方信息集包括所述指定确认方信息集中的预定数量的指定确定方信息时,以及该预定数量的指定确认方信息所对应的指定确认方权重之和不低于第一预定值时,确定所述待验证数据验证通过。
  15. 如权利要求13所述的装置,其中,所述至少一个指定确认方的指定确认方公钥具有公钥权重,所述待验证数据验证单元被配置为:
    当所述验证通过确认方信息集包括所述指定确认方信息集中的预定数量的指定确定方信息时,以及该预定数量的指定确认方信息所对应的公钥权重之和不低于第二预定值时,确定所述待验证数据验证通过。
  16. 如权利要求13-15中任一所述的装置,其中,所述确认方签名数据还包括确认方公钥,所述确认方签名验证单元包括:
    确认方签名解密模块,被配置为利用该确认方签名数据中的确认方公钥,对该确认方签名数据中的确认方签名进行解密以得到确认方签名中的交易信息;以及
    确认方签名验证模块,被配置为当所述确认方签名中的交易信息与所述交易信息明文一致时,确认该确认方签名验证通过。
  17. 如权利要求16所述的装置,其中,所述确认方信息包括指定确认方账号,所述验证通过确认方信息集包括验证通过确认方公钥集,所述装置还包括:
    指定确认方公钥集获取单元,被配置为基于所述指定确认方账号集中的至少一个指定确认方账号,获取区块链系统中的对应指定确认方公钥,以获取指定确认方公钥集,所述待验证数据验证单元被配置为:
    当所述验证通过确认方公钥集包括预定数量的指定确认方公钥时,确定所述待验证数据验证通过。
  18. 如权利要求13-15中任一所述的装置,其中,所述确认方签名数据还包括确认方账号,所述确认方签名验证单元包括:
    确认方公钥获取模块,被配置为基于所述确认方账号,获取区块链系统中的确认方公钥;
    确认方签名解密模块,被配置为利用所获取的确认方公钥,对该确认方签名数据中的确认方签名进行解密以得到确认方签名中的交易信息;以及
    确认方签名验证模块,被配置为当所述确认方签名中的交易信息与所述交易信息明文一致时,确认该确认方签名验证通过。
  19. 如权利要求13-15中任一所述的装置,其中,所述待验证交易数据还包括针对所述交易信息明文的交易发起方签名数据,所述交易发起方签名数据包括交易发起方签名,所述装置还包括:
    交易发起方签名数据验证单元,被配置为基于所述交易信息明文和所述交易发起方签名数据,对所述交易发起方签名数据进行验证;
    所述待验证数据验证单元被配置为:
    当所述验证通过确认方信息集包括所述指定确认方信息集中的预定数量的指定确定方信息且所述交易方交易发起方签名数据通过验证时,确定所述待验证数据验证通过。
  20. 如权利要求19所述的装置,其中,所述交易发起方签名数据还包括交易发起方公钥,所述交易发起方签名数据验证单元包括:
    交易发起方签名解密模块,被配置为利用所述交易发起方签名数据中的交易发起方公钥对所述交易发起方签名进行解密以得到交易发起方签名中的交易信息;
    公钥获取模块,被配置为基于所述交易信息明文中的交易发起方账号,获取区块链系统中的交易发起方公钥;以及
    交易发起方签名验证模块,被配置为当所述交易发起方签名中的交易信息与所述交易信息明文一致,以及所述交易发起方签名数据中交易发起方公钥与所述区块链系统中的交易发起方公钥一致时,确定所述交易发起方签名数据验证通过。
  21. 如权利要求19所述的装置,其中,所述交易发起方签名数据验证单元包括:
    公钥获取模块,被配置为基于所述交易信息明文中的交易发起方账号,获取区块链系统中的交易发起方公钥;
    交易发起方签名解密模块,被配置为利用所获取到的交易发起方公钥,对所述交易发起方签名进行解密以得到所述交易发起方签名中的交易信息;以及
    交易发起方签名验证模块,被配置为当所述交易发起方签名的交易信息与所述交易信息明文一致时,确定所述交易发起方签名数据验证通过。
  22. 一种计算设备,包括:
    至少一个处理器;以及
    存储器,所述存储器存储指令,当所述指令被所述至少一个处理器执行时,使得所述至少一个处理器执行如权利要求1到12中任一所述的方法。
  23. 一种机器可读存储介质,其存储有可执行指令,所述指令当被执行时使得所述机器执行如权利要求1到12中任一所述的方法。
PCT/CN2020/071740 2019-07-12 2020-01-13 用于进行交易验证的方法及装置 WO2021008117A1 (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US16/779,201 US10951417B2 (en) 2019-07-12 2020-01-31 Blockchain-based transaction verification
US17/201,181 US11240041B2 (en) 2019-07-12 2021-03-15 Blockchain-based transaction verification

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201910630854.0 2019-07-12
CN201910630854.0A CN110458560B (zh) 2019-07-12 2019-07-12 用于进行交易验证的方法及装置

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US16/779,201 Continuation US10951417B2 (en) 2019-07-12 2020-01-31 Blockchain-based transaction verification

Publications (1)

Publication Number Publication Date
WO2021008117A1 true WO2021008117A1 (zh) 2021-01-21

Family

ID=68481117

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2020/071740 WO2021008117A1 (zh) 2019-07-12 2020-01-13 用于进行交易验证的方法及装置

Country Status (3)

Country Link
CN (1) CN110458560B (zh)
TW (1) TWI740378B (zh)
WO (1) WO2021008117A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022268995A3 (en) * 2021-06-24 2023-02-02 Nchain Licensing Ag Method and system for synchronising user event streams with dust-based rendezvous transactions

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10951417B2 (en) 2019-07-12 2021-03-16 Advanced New Technologies Co., Ltd. Blockchain-based transaction verification
CN110458560B (zh) * 2019-07-12 2021-10-12 创新先进技术有限公司 用于进行交易验证的方法及装置
CN110942292B (zh) * 2019-11-21 2021-04-30 腾讯科技(深圳)有限公司 一种用户信息处理方法、装置、电子设备以及存储介质
CN111080292B (zh) * 2019-11-25 2021-09-10 支付宝(杭州)信息技术有限公司 用于获取区块链交易签名数据的方法及装置
CN111242617B (zh) * 2020-01-02 2022-05-10 支付宝(杭州)信息技术有限公司 用于执行交易正确性验证的方法及装置
CN111200741B (zh) * 2020-04-02 2022-04-15 上海商魁信息科技有限公司 一种视频处理方法、装置和机器可读存储介质
CN111460527A (zh) * 2020-04-28 2020-07-28 北京俩撇科技有限公司 一种基于区块链的电子数据交换方法、装置及区块链系统
CN113469690B (zh) * 2021-07-23 2024-03-26 佳乔(深圳)投资有限公司 一种基于区块链的交易结算方法
TWI817863B (zh) * 2022-12-09 2023-10-01 臺灣網路認證股份有限公司 區塊鏈合約交易的驗證系統及其方法

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105608588A (zh) * 2016-01-04 2016-05-25 布比(北京)网络技术有限公司 一种溯源记录处理的方法及装置
CN106656974A (zh) * 2016-10-17 2017-05-10 江苏通付盾科技有限公司 区块链的分组共识方法及系统
CN107330787A (zh) * 2017-05-24 2017-11-07 智牛股权投资基金(平潭)合伙企业(有限合伙) 一种高效安全的区块链链下高频交易支付方法、系统
CN108023729A (zh) * 2017-10-13 2018-05-11 中国银联股份有限公司 区块链网络及其交易方法
CN109067543A (zh) * 2018-07-24 2018-12-21 腾讯科技(深圳)有限公司 数字证书管理方法、装置、计算机设备和存储介质
CN109165944A (zh) * 2018-08-21 2019-01-08 北京京东金融科技控股有限公司 基于区块链的多方签名认证方法、装置、设备及存储介质
CN110458560A (zh) * 2019-07-12 2019-11-15 阿里巴巴集团控股有限公司 用于进行交易验证的方法及装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107590738A (zh) * 2017-08-24 2018-01-16 阿里巴巴集团控股有限公司 选择共识节点的处理方法、装置及服务器
GB2569278A (en) * 2017-10-23 2019-06-19 Cygnetise Ltd Methods and apparatus for verifying a user transaction
CN108596619B (zh) * 2018-04-26 2022-11-01 深圳怡化电脑股份有限公司 用于区块链系统的交易方法、装置、中心节点及系统
CN108848148B (zh) * 2018-06-04 2021-05-18 立旃(上海)科技有限公司 基于区块链的交易信息确认方法及装置
CN109936457B (zh) * 2019-02-20 2022-04-26 深圳前海微众银行股份有限公司 区块链多方见证方法、装置、设备及计算机可读存储介质

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105608588A (zh) * 2016-01-04 2016-05-25 布比(北京)网络技术有限公司 一种溯源记录处理的方法及装置
CN106656974A (zh) * 2016-10-17 2017-05-10 江苏通付盾科技有限公司 区块链的分组共识方法及系统
CN107330787A (zh) * 2017-05-24 2017-11-07 智牛股权投资基金(平潭)合伙企业(有限合伙) 一种高效安全的区块链链下高频交易支付方法、系统
CN108023729A (zh) * 2017-10-13 2018-05-11 中国银联股份有限公司 区块链网络及其交易方法
CN109067543A (zh) * 2018-07-24 2018-12-21 腾讯科技(深圳)有限公司 数字证书管理方法、装置、计算机设备和存储介质
CN109165944A (zh) * 2018-08-21 2019-01-08 北京京东金融科技控股有限公司 基于区块链的多方签名认证方法、装置、设备及存储介质
CN110458560A (zh) * 2019-07-12 2019-11-15 阿里巴巴集团控股有限公司 用于进行交易验证的方法及装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022268995A3 (en) * 2021-06-24 2023-02-02 Nchain Licensing Ag Method and system for synchronising user event streams with dust-based rendezvous transactions

Also Published As

Publication number Publication date
TW202103079A (zh) 2021-01-16
TWI740378B (zh) 2021-09-21
CN110458560A (zh) 2019-11-15
CN110458560B (zh) 2021-10-12

Similar Documents

Publication Publication Date Title
WO2021008117A1 (zh) 用于进行交易验证的方法及装置
CN111062716B (zh) 生成区块链签名数据的方法及装置、区块链交易发起系统
US11032077B2 (en) Blockchain-based transaction method and apparatus, and remitter device
US11050549B2 (en) Blockchain-based transaction method and apparatus, and remitter device
WO2021184885A1 (zh) 用于更新区块链节点处的公钥集合的方法及装置
US11126739B2 (en) Invoice access method and apparatus based on blockchain, and electronic device
EP3639232B1 (en) Anti-replay attack authentication protocol
WO2021135757A1 (zh) 用于执行交易正确性验证的方法及装置
WO2021135857A1 (zh) 对信任节点信息进行更新的方法及装置
US11240041B2 (en) Blockchain-based transaction verification
US11126458B2 (en) Method, apparatus, and electronic device for resource allocation based on blockchain
CN111080292B (zh) 用于获取区块链交易签名数据的方法及装置
WO2021135744A1 (zh) 用于区块链节点的数据同步方法及装置
US11386426B2 (en) Invoice invalidation method and apparatus based on blockchain, and electronic device
EP3808030B1 (en) Managing blockchain-based centralized ledger systems
WO2021143364A1 (zh) 获取去中心化应用集群中的交易处理状态的方法及装置
WO2023035477A1 (zh) 一种基于区块链的文书验真方法
WO2021135755A1 (zh) 发送针对数据请求的应答消息的方法及装置、区块链系统
WO2021114796A1 (zh) 用于更新多层块链式结构中的信任点的方法及装置
CN110827034B (zh) 用于发起区块链交易的方法及装置
CN111144894B (zh) Utxo处理方法及装置
WO2021114926A1 (zh) 用于生成多层块链式结构的方法及装置
Meister et al. Password-less key recovery via multi-factor multi-party authentication

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 20840706

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 20840706

Country of ref document: EP

Kind code of ref document: A1