Method and system for quantum-resistant hashing scheme
Patent Information
- Application Number
- JP2024194560
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2021-05-11
- Filing Date
- 2024-11-06
- Publication Date
- 2025-02-19
- Estimated Expiration
- 2042-04-07
Smart Images

Figure 2025024014000001_ABST
Abstract
Description
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This application claims the benefit of U.S. Patent Application No. 17 / 317,456, filed May 11, 2021. No. 6,399,625, the entire contents of which are incorporated by reference for all purposes. [Technical field]
[0002] The present disclosure provides a method for detecting and analyzing a computer program that is resistant to attack or decryption using computational techniques, including quantum computing. By using a hashing scheme that has This relates to making it possible to verify proofs of assertions such as [Background technology]
[0003] Many cryptographic techniques are nearly impossible to solve for standard computers. It involves complex algorithms involving mathematical problems. For example, blockchain technology that relies on digital signatures Rivest-Shamir-Adleman (RSA) or other techniques often rely on prime factorization. Elliptic Curve Digital Signature Algorithm (ECDSA) using the Discrete Logarithm Problem In either case, a standard computer is too slow and inefficient to solve these mathematical problems, so The algorithms used must be appropriately cryptographically secure.
[0004] However, quantum computing is under development, and if successful, the above numbers could be realized. As a result, the underlying mathematical problem may become solvable. In such cases, the use of digital signatures via algorithms such as RSA and ECDSA may be invalid. This can lead to some vulnerabilities and security threats. Conventional hash-based signatures entail data sizes that are too impractical for practical use. Therefore, proofs of identity and assertions available from existing algorithms A cryptographic algorithm that is resistant to quantum computing-based solution attempts while providing A technical system is needed that can employ the methodology. Summary of the Invention
[0005] This disclosure describes a method for making assertions about values using a hash-oriented transaction scheme. This paper provides a description of a system and method for proving mathematical problems. By using hashing instead of standard algorithms such as SHA-256, collisions are reduced. If a sufficiently complex hash is used that results in a value of sufficient size to be resistant This provides resistance to quantum computing, especially when ), and the blockchain is used to store the declarative message. Provides an immutable, time-stamped record of declaration messages The declaration includes documents such as identity cards, contracts, land titles, voting records, etc. that users wish to later verify. The declaration also contains a hash value, which is a unique identifier known only to the user. It is generated by hashing a value with at least one other item. If a user wishes to prove ownership or otherwise authenticate the authenticity of a The user can issue a confirmation message on the blockchain. The confirmation message is used to create a hash value that is stored in the declaration. The disclosure of those values, known to the user, Therefore, any entity wishing to audit a user's assertions may request A hash value can be calculated using the confirmation message and one or more other items in the confirmation message, and This can be checked against the hash value in the declaration. A match is performed on the user's assertion. As a result, users will be able to use hashing and blockchain technology. This allows value assertions to be quickly, easily, and safely proven, A system that is resistant to quantum computing is obtained.
[0006] How to use a hash-based scheme to achieve coordination in a permissioned blockchain The method includes the steps of: storing a plurality of blocks, including the latest block, in a memory of a processing server. storing a blockchain comprising the latest block, the latest block being a block header; and receiving one or more transaction data by a receiving unit of the processing server. receiving a first reference value and a second reference value by the receiving unit of the processing server; receiving a reference value; and computing, by a processing device of the processing server, the first reference value. generating a first hash value by hashing the first hash value; The processing device generates at least the first hash value, the second hash value, and a third hash value. generating a block proof including a reference value and a block value; The processing device uses the block proof to determine the previous block included in the latest block. a step of verifying the block header; and a step of receiving the new block header from the receiving unit of the processing server. receiving a block value; and, by the processing device of the processing server, at least , including the first reference value, the second reference value, the fourth reference value, and the new block value. generating a new block header; and, by the processing device of the processing server, The block including the new block header and the one or more transaction data values. generating a new block for the block chain and sending the The new block is then transferred to one or more blockchains associated with the blockchain by the and transmitting the received signal to an additional node on the
[0007] A system that uses a hash-based scheme to coordinate on a permissioned blockchain The system consists of: a processing server as a node associated with the blockchain; and one or more additional nodes associated with the lock chain; At least, a sending unit and a blockchain with multiple blocks including the latest block a memory for storing the latest block, the latest block including a block header; a receiver for receiving the transaction data value, the first reference value and the second reference value; and a processor for generating a first reference value by hashing the first reference value. generating a hash value; and computing at least the first hash value and a second hash value. generating a block proof including the block value, the third reference value, and the block value; Validate the block header contained in the latest block using a lock proof. and the receiving unit further receives new block values and the processing unit further performs the steps of Then, at least the first reference value, the second reference value, the fourth reference value, and the new block generating a new block header including a check value; and the one or more transaction data values. and generating a new block, and the sending unit to one or more additional nodes associated with the blockchain. [Brief description of the drawings]
[0008] The scope of the present disclosure can be best understood from the following detailed description of exemplary embodiments, read in conjunction with the accompanying drawings. The drawings include the following figures:
[0009] [Figure 1] FIG. 1 is a block diagram illustrating a high-level system architecture for proving value assertions using a hash-oriented transaction scheme and blockchain, according to an example embodiment. [Diagram 2] FIG. 2 is a block diagram illustrating a processing server of the system of FIG. 1 for verifying value assertions using a hash-oriented transaction scheme and a blockchain, according to an exemplary embodiment. [Diagram 3] 2 illustrates example declaration and confirmation messages that may be stored in the blockchain of FIG. 1 according to an example embodiment. [Figure 4] FIG. 2 illustrates an example message for ownership transfer via a block header that may be stored in the blockchain of FIG. 1 in accordance with an example embodiment. [Figure 5A]2 is a flow diagram illustrating a process for verifying asserted values in the system of FIG. 1 using a hash-oriented transaction scheme and blockchain, according to an example embodiment. [Figure 5B] 2 is a flow diagram illustrating a process for verifying asserted values in the system of FIG. 1 using a hash-oriented transaction scheme and blockchain, according to an example embodiment. [Figure 6] 4 is a flow diagram illustrating an example method for verifying proofs of value assertions using a hash-oriented transaction scheme, according to an example embodiment. [Figure 7] 1 is a flow diagram illustrating an example method for performing reconciliation in a permissioned blockchain using a hash-oriented scheme, according to an example embodiment. [Figure 8] FIG. 1 is a block diagram illustrating a computer system architecture, in accordance with an exemplary embodiment.
[0010] Further aspects of the applicability of the present disclosure will become apparent from the detailed description provided below. The detailed description of the exemplary embodiments is for purposes of illustration only and therefore should not be construed as limiting the present disclosure. It should be understood that they are not intended to necessarily limit the scope of the disclosure. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0011] Glossary Blockchain: All transactions involving blockchain-based digital assets such as cryptocurrencies. A shared ledger of transactions. One or more computing devices The blockchain network can have a blockchain It can be configured to process and record transactions as part of a block in Once a block is completed, it is added to the blockchain, thereby In most cases, blockchains are used to record transactions in chronological order. It may be a ledger of transactions or may be suitable for use by a blockchain network. In some configurations, the assets may be presented in any other order that is convenient for the recipient. The blockchain records the transaction that was recorded on the blockchain. A transaction may include a destination address and an amount of digital assets. Transactions may be financial and others may not be financial, or may be source addresses, time In some embodiments, the block may include additional or different information such as a timestamp. The chain may additionally or alternatively be protected against tampering and modification, even by its operators. The data is stored in a distributed database that maintains a continuously growing list of enriched data records. Almost any type of transaction that needs to be made or placed. It can contain data and is supported by the blockchain network, which allows proof-of-work. verification and validation via proof of work (PoW) and / or any other suitable verification techniques related thereto. In some cases, data about a given transaction can be verified. Additional data that is not a direct part of the transaction that is attached to the transaction data In some cases, such data may be stored in a blockchain. In such cases, the inclusion of the data in the blockchain may constitute a transaction. The transaction is directly related to a particular digital currency, virtual currency, fiat currency, or other type of currency. It doesn't have to be attached.
[0012] Assertion Proof System Using Hashing and Blockchain Figure 1 shows the assimilation of values using a hash-based scheme and blockchain. 1 illustrates a system 100 for verifying a proof of identity.
[0013] The system 100 may include a processing server 102. The processing server 102, which is described in more detail below, may, among other things, The method may be configured to verify a proof provided by a user 104 that asserts a certain value. In the system 100, a user 104 may enter a particular value into a blockchain network 106. The specific value can be provided to the blockchain associated with the This can be submitted as a declaration message to the blockchain network 106, This is described in more detail below.
[0014] The blockchain network 106 may include multiple nodes. Computing configured to perform functions related to processing and management of the chain. The system may include, for example, the following: Validating proposed blockchain transactions, verifying digital signatures, and creating new blockchains Generates locks, validates new blocks, and maintains a copy of the blockchain. A chain can be a distributed ledger that comprises at least a number of blocks. Each block header may contain at least a block header and one or more data values. At a minimum, the time stamp, the block reference value, and the data reference value may be included. The time stamp can be the time when the block header was generated, or it can be determined in any suitable way. It can be expressed using any timestamp (e.g. UNIX timestamp, DateTime, etc.). Block Reference The value references the previous block in the blockchain (e.g., based on a timestamp). In some embodiments, the block reference value in the block header may be a value that corresponds to each It is a reference to the block header of the most recently added block that precedes each block. In an exemplary embodiment, the block reference value is the block reference value of the most recently added block. It may be a hash value generated through hashing of the block header. A data reference is a reference to one or more data values stored in a block, including the block header. In an exemplary embodiment, a data reference value may be a It can be a hash value generated through hashing. For example, a block reference value is The above data values can be used to create the root of a Merkle tree.
[0015] The block reference value and data reference value are used in each block header to Any attempt to modify the data values can be made immutable. , a new data reference value for that block needs to be generated, which This requires that new block references for subsequent blocks be generated, which Requires the generation of a new block reference for every subsequent block. Makes the change permanent. To be effective, a new block must be generated and added to the blockchain before it can be used. In this regard, any individual node in the blockchain network 106 Due to computational and communication constraints, such This makes modifications extremely difficult, if not impossible, and thus the blockchain The result is that the object becomes immutable.
[0016] Each blockchain data value is sent in a confirmation or declaration message, as described below. Desktop computers, laptop computers, notebook computers computers, tablet computers, mobile phones, smartphones, smart watches, smart television, wearable computing device or other device configured to perform the functions described herein. Any other type of computing device specifically configured for such a purpose may be used. An announcement message can be submitted to a node by a user 104 using a routing device 108 . An assertion message provides proof of authenticity of the value itself or proof of possession of the value. It may contain a particular value that the user may wish to prove at a later time. For example, the particular value may be written on an identification card. In some cases, the method described allows a user 104 to identify themselves by their identity card. In another example, it may be possible to prove that the person being identified is the person in question. Certain values may relate to land titles and may be obtained by the user using the methods described. The owner of the land title deed is himself and therefore the owner of the land to which it applies It becomes possible to prove one's identity.
[0017] The declaration message also includes a hash value, also called the "identity hash value." A hash value is a combination of a particular value and one or more additional values, also called "chain values." The chain value is generated by the user when the declaration message is submitted. 104, but otherwise may be known to any other entity (especially , any node in the blockchain network 106) may be unknown The user 104 may then check the particular value using any suitable hashing algorithm, such as SHA-256. The identity hash value may be hashed to generate the identity hash value. In the preferred embodiment, a collision resistant hash algorithm is used for generating the hash value. The creation of the blockchain network may use at least two chain values. A declaration message can be submitted to a node in the network 106, the declaration message including at least: The declaration message contains a unique value and an identity hash value. It can then be included in a valid block, which can then be verified and added to the blockchain.
[0018] In the system 100, the request system 110 may request an assertion about a particular value. For example, a particular value may be associated with an identity document. In the example, the request system 110 prompts the user 104 to provide proof of his / her identity. In such an example, the user 104 may request that the blockchain and identity The identity of the person identified by the identity card stored in the declaration message is verified using the identity hash value. An individual can verify their identity. The request system 110 The verification request can be submitted to the processing server 102. In some cases, each announcement message can specify a unique identifier. , and may include a declaration message identification code for the processing server 102 to utilize. may be included in the authorization request.
[0019] The processing server 102 then uses the assertion proof provided by the user 104 to It is possible to attempt to validate the values contained in the declaration message. This can be done by using a confirmation message stored in the In this case, a confirmation message may be sent by the user 104 (e.g., via the computing device 108). The blockchain may be submitted to a node in the blockchain network 106 (as a set of 106 tokens). The processing server 102 may then request that the user 104 submit a confirmation message (e.g., This may be done after receiving a confirmation request from the Quest system 110, which may be done by the user 104. (Contact information for the request may be included in the request.) The est system 110 can request that the user 104 post a confirmation message. For example, in the above example, the request system 110 may request that the user 104 identify himself / herself as If requested to provide proof, the user 104 sends a confirmation message to the blockchain and submitting an identifier for the declaration message, including his / her identity, to the request system. The system 110 can respond by providing the
[0020] A processing server is used to verify a user's attestation of an assertion about a particular value. The server 102 can first identify the confirmation message stored in the blockchain. In this case, each confirmation message contains the identifier found in the corresponding declaration message. In other cases, each confirmation message may include its own identifier, The identifier is therefore unique for every message in the blockchain and is used by the user. 104 or the request system 110 uses the identifier to identify the confirmation message. The processing server 102 can then provide the processed data.
[0021] The confirmation message generates the identity hash value that was stored in the declaration message. The processing server 102 may include at least the check value used by the user 104 in generating the ,Identify the check value in the confirmation message, and also,indicate the check value and the identified declaration message. The processing server 102 can generate a check hash value using the specific value included in the verification result. Correlate the verification hash value with the identity hash value found in the declaration message. to see if there is a match. If there is a match, it declares possession of the particular value. At the time of addition to the blockchain (e.g., the block containing the declaration message) The user 104 must have had Because the hash used to generate the identity hash value This is because they had check values. In this case, the processing server 102 can act as a proof of concept for the request system. If a match is found between the check value and the identity hash value, the system 110 may be notified accordingly. If not, the processing server 102 notifies the request system 110 that the user's authentication attempt has failed. For example, we may notify you accordingly.
[0022] Thus, the described method and system provides a method for determining whether a value exists at a particular time or not. It allows users 104 to assert, and uses blockchain This is done via a hash-oriented transaction key. The verification message can then be submitted to the blockchain via the blockchain. The detection is performed by a processing server 102 specially configured as disclosed. The request system 110 can easily provide a proof of concept, and the request system 110 does not itself have to perform any complex operations. The certificate can be easily verified without requiring any work to be done. By using a hash instead of On the other hand, it is resistant to decryption attempts via a sufficiently complex hashing algorithm. The algorithm guarantees the absence of collisions, making it possible to implement a secure yet easy-to-implement protocol. A system is obtained.
[0023] In some embodiments, confirmation and declaration messages may be chained together to determine ownership and assumption. Additional security for the application as well as the ability to transfer ownership of a specific value to another user. Chaining can be achieved by using additional chain values. For example, the confirmation message may contain the identity hash found in the declaration message. The declaration message may contain two chain values that are used to calculate the value. These new chain values may be used in new declaration and confirmation messages. It can be part of a hash chain used in combining pages.
[0024] For example, a declaration message consists of a value X and a hash of X, A, and B. and an identity hash value generated by It can be the chain value found in the confirmation message used to verify the value X. In addition, the announcement message may include two new chain values C2 and D2. The statement message can be submitted by user 104 for a later proof round for value X. The declaration message is generated by hashing the combination of X, C1, and D1. The values for C2 and D2 may include the generated identity hash value. and D1, for example, by hashing the values of C1 and D1. etc., where C2 = H(C1) and D2 = H(D1), and H is the hashing operation. This refers to the application.
[0025] For example, prior to voting in a public election, voters must disclose their identity to election officials. Each person may be asked to prove their identity, and let that identity be the value X. An attacker may have possession of C1 and may generate C2 via hashing accordingly. Yes. To establish proof of identity, election officials can provide voters with D1. The person can generate D2 through hashing D1, and then combine C2, D2, the ID, and C You can post a declaration message containing 1+D1+a hash of your identity. At this point Election officials can then view the declaration and recognize D2 based on the value provided. The elections official then confirms that the voter has posted a confirmation message with his / her C1 and the provided D1. It can wait for the test to be completed and use the value to verify the hash in the declaration message. Once verified, the identity document is in the possession of the voter and Therefore, voter identity can be verified.
[0026] In some cases, one of the new chain values used in the declaration message is the new For example, user 104 may send the first declaration message for value X. The user can submit a message containing the identity hash value H(X+A1+B1), where The first declaration message contains the chain values A1 and B1. The second announcement message may also contain new hash values A2 and B2. The second declaration message contains the value X and the identity chain. The confirmation message for the second declaration message shall contain the flash value H(X+B3+C1). The message may therefore contain chain values B3 and C1. Thus, a malicious actor could We simply continue hashing on the chain values in the declaration message, and The new hash chain C1 cannot be used to guess the combination of the Similarly, if user 104 wants to transfer ownership of value X, the new user The user can then provide the identity hash value H(X+B3+C1), where the new user The user knows the value C1, which is unknown to user 104. can provide a verifiable proof of an assertion about the value X. Therefore, the declaration message does not include the hash chain or any other newly introduced chain. By using the signature value, the system 100 can make ownership or other assertions about the value. Can be used for easy transfer
[0027] In some cases, blockchains are permissioned or otherwise coordinated blockchains. A block chain may be a set of blocks, in which case one or more coordinating entities 112 may The computing device 108, the processing server 102, and the and / or coordinate the participation of other systems involved in the blockchain. If so, the coordinating entity 112 adds its digital signature to the blockchain. A new block can be requested to be provided, so that Any new action depicted may involve three entities: Therefore, the inclusion of the coordinating entity 112 requires declarations and confirmation messages. In such cases, the use of hash chains in conjunction with the above-mentioned Block headers can be used in conjunction with each other, and each block header is a hash chain. It may contain a value.
[0028] In such an embodiment, the block header contains a value X and a combination of X and the chain value. The chain value itself is stored in the hash value H generated by hashing the In these embodiments, the chain value may be used to identify the entities involved in the transfer. The chain values A1 and B2 may include values associated with the chain. It may also include another chain value associated with the coordinating entity (e.g., Figure 4 shows an example of a block header in a coordinated blockchain. This is explained in more detail below. This transfer of ownership means that the “owner” of the block has the right to see the next block. In some cases, an entity may assume ownership of each new block that is added. You can repeat the process as the owner by transferring it back to yourself. For example, Entity 112 maintains full ownership of all block confirmations and does not share any other The entity will participate in it as described above.
[0029] In such an embodiment, the value X included in the header of each block is the block version The version data, network identifier, and slot number, block number of the previous block, The hash of the block header (i.e., the block reference value) and the It may contain the root of the Merkle tree (e.g., data reference value) of all transactions that are This value X can be included in a hash value that is added to each block, where , the value X is combined with the chain value as described above and shown in FIG. It is possible.
[0030] Processing Server FIG. 2 illustrates one embodiment of the processing server 102 in the system 100. The embodiment of server 102 is provided by way of example only and is not intended to perform the functions described herein. It should be understood that this is not intended to be an exhaustive list of all possible configurations of a processing server 102 suitable for For example, the control shown in FIG. 8 and described in more detail below will be apparent to those skilled in the art. The computer system 800 may be a suitable configuration for the processing server 102 .
[0031] The processing server 102 may include a receiving device 202. The receiving device 202 may include one or more networks. configured to receive data over one or more networks via a network protocol In some examples, the receiver 202 may be a radio frequency, a local area network, Wireless area networks, cellular communication networks, Bluetooth, the Internet, etc. Through one or more communication methods, the blockchain network 106, the computing device 108, requesting system 110, and receiving data from other systems and entities. In some embodiments, the receiver device 202 may be configured to receive signals from different networks. A different receiving device for receiving data via a network (via a local area network) a first receiving device for receiving data via the Internet, and a second receiving device for receiving data via the Internet. The receiving device 202 may be composed of multiple devices, such as a first receiving device for receiving the signal, a second receiving device for receiving the signal, etc. where the data is superimposed on the data signal or Otherwise, the data signal is encoded and decoded and analyzed upon reception by the receiver 202. In some examples, the receiving device 202 may receive, read, or otherwise obtain an analysis module for analyzing the received data signal to obtain data superimposed thereon; For example, the receiver 202 may include a data processor. Transforming the input into usable input for the functions performed by the processor as described herein. It may also include an analysis program configured to carry out the methods and systems.
[0032] The receiving device 202 may be overlaid with the blockchain data or may not be The blockchain network 106 may then be electronically encoded by the nodes. and configured to receive a data signal transmitted to the blockchain. The data includes blockchain data values that may include confirmation messages and declaration messages. In some embodiments, the receiver 202 receives a block chain that contains all the new blocks. In another embodiment, the receiving device 202 may receive a complete copy of the requested block. In other embodiments, the receiving device 202 may receive a blockchain data value. In some embodiments, the processing server 102 may be a node in the blockchain network 106. can be verified and tracked by other nodes in the blockchain network 106. The receiving device 202 may also receive a declaration and / or confirmation message. A verification request that may include an identifier for the message is superimposed or otherwise encoded electronically. The transmitted data signal is sent to the computing device 108 and / or the requesting system. The wireless LAN may also be configured to receive signals transmitted by the wireless LAN system 110.
[0033] The processing server 102 may also include a communications module 204. modules, engines, databases, memories, and the like that perform the functions described herein 102 for use in transmitting data between other components of the processing server 102. The communication module 204 may be configured with one or more communication types and may include a computing Various communication methods can be used for communication within the device. For example, a communication module 204 may consist of a bus, contact pin connectors, wiring, etc. The communication module 204 also communicates with the internal components of the processing server 102 and with external connection databases. , a display device, an input device, etc. The processing server 102 may also include a processing device. In addition, the processing device may be configured to perform the functions of the processing server 102 described herein. In some embodiments, the processing device may include a query module 218, a generated module, Module 220, validation module 222, etc., may be specially configured to perform one or more functions of a processing device. The system may include and / or consist of multiple engines and / or modules. As used herein, the term "module" refers to a device that receives input and can be configured to and is specifically programmed to use the input to perform one or more operations and provide an output. The functions executed by the various modules can be software or hardware. The inputs, outputs, and processing involved will be apparent to one of ordinary skill in the art based on this disclosure.
[0034] The processing server 102 may include a query module 218. The module 218 may be configured to perform a query on the database to identify the information. The query module 218 may receive one or more data values or query strings. and executing the query string based on the indicated database, such as memory 226, The information stored therein can be identified. The query module 218 then The determined content is output to an appropriate engine of the processing server 102 as appropriate. The rule 218 may, for example, query the memory 226 to identify the block using the identifier. It is possible to identify the declaration or confirmation message stored in a block in the chain. do.
[0035] The processing server 102 may also include a generation module 220. Generates data for use by the processing server 102 in performing the functions described herein. The generation module 220 may be configured to receive instructions as input and generate a and outputting the generated data to one or more modules of the processing server 102. For example, the generation module 220 may be configured to generate notifications and other data messages. For example, a confirmation message and / or a prompt for an identifier can be provided. The results of the verification or attempted verification may be transmitted to the computing device 108 or the request system 106. 10 and requesting, for example, a new block or blockchain data value The creation model can be sent to a node in the blockchain network 106. The module 220 is configured to generate a verification hash value by hashing the data. The processing server 102 may be configured to In an embodiment where the blockchain is a It may also be configured to generate block headers and new blocks for addition to
[0036] The processing server 102 may also include a validation module 222. The validation module 222 As explained above, the processing server 102 is configured to validate data as part of its functionality. The validation module 222 receives as input the data to be validated. It can then attempt to validate the data and pass the results of the validation to another module in the processing server. In some cases, the input may be a database or engine that is used for validation. In some cases, the validation module 222 may include a data set to be used for validation. The generating module 220 may be configured to identify the search data. This can be done by instructing the verification module 222 to generate a verification hash value. The chain value in the declaration message is used as the verification hash value by the verification module. The rule 222 may, for example, verify the identity hash value found in the declaration message. and a chain found in the corresponding confirmation message. This can be done using a check hash value that is generated using the value.
[0037] The processing server 102 may also include a transmitting device 224. The transmitting device 224 may transmit one or more configured to transmit data over one or more networks via a network protocol In some examples, the transmitting device 224 may be connected to a local area network, a wireless area network, or a Network, cellular, Bluetooth, radio frequency, Internet, etc. Through the communication method, a blockchain network 106, a computing device 108, and a request The data may be configured to be transmitted to the est system 110, as well as to other entities. In some embodiments, the transmitting device 224 may transmit data over different networks. Different transmitting devices for transmitting data over a local area network a first transmitting device, and a second transmitting device for transmitting data via the Internet, etc. The sending device 224 may be composed of multiple devices such as a receiving computing device, The data signal can be electronically transmitted with the data superimposed thereon, which can be analyzed by the In some examples, the transmitter 224 may overlay, encode, or otherwise generate a data signal suitable for transmission. The signal may include one or more modules for formatting data into a signal.
[0038] The transmitter 224 electronically transmits the data signal to a node in the blockchain network 106. These may include a blockchain data value or The requirements for the block are superimposed or otherwise encoded and declared or The confirmation message may include an identifier for the confirmation message. The devices 108 may also be configured to electronically transmit data signals to the devices 108. The requirements for submitting a confirmation message, the requirements for the confirmation message identifier, etc. The signal may be superimposed or otherwise encoded. is also configured to electronically transmit a data signal to the request system 110. These may have the verification result superimposed or otherwise encoded thereon. It is possible.
[0039] The processing server 102 may also include a memory 226. The memory 226 may store public and private keys, symmetric keys, etc., used by the processing server 102 in performing the functions described herein The memory 226 may be configured to store the appropriate data shaping method and scheme. The memory may be configured to store data using a read only memory, a random access memory, The memory 226 may be any suitable type of memory, such as a cryptographically-accessible memory. Keys and algorithms, communication protocols and standards, data format standards and protocols modules for processing devices and application programs The code, as well as the performance of the functions disclosed herein, as will be apparent to one of ordinary skill in the art, The data may include other data that may be suitable for use by the processing server 102 in accordance with some In an embodiment, the memory 226 stores, identifies, modifies, or retrieves structured data sets stored therein. Relational databases that use structured query languages to access, update, etc. The database may consist of a database or may otherwise include a relational database. The memory 226 stores blockchain data including, for example, confirmation messages and declaration messages. , hash algorithm for generating blocks, hash algorithm for generating check hash values system, authentication information for validation, usage rule templates, communication data for blockchain nodes, The computing device 108 and the request system 110 are configured to store communication data and the like. The present invention can be configured as follows.
[0040] Message Declaration and Confirmation FIG. 3 illustrates an example of a method for verifying a proof of a value assertion in the system 100 of FIG. This section describes the explicit declaration and confirmation messages.
[0041] As mentioned above, users 104 can create new blocks that are verified and added to the blockchain. The declaration message 302 is sent to the blockchain network 106 for inclusion in the blockchain. The declaration message may include a specific value 304, and the user 104 may submit the specific value 304. You might want to assert proof of 4 (e.g., the ID in the example above). The message may also include an identity hash value 308. The hash value is a hash value generated by hashing a specific value and two chain values 312. At the time of submission of the declaration message 302, the chain value 312 is known to the user 104. The announcement message 302 also creates two new chains. The chain may include a value 306, shown in FIG. 3 as new chain values 306a and 306b, which may include It can be made part of a hash chain that is used for subsequent declaration and confirmation message pairs.
[0042] If the user 104 wishes to prove an assertion of a particular value 304, the user 104 receives a confirmation message. The message 310 can be submitted to the blockchain. The confirmation message can include a chain value 312. These are shown in FIG. 3 as chain values 312a and 312b. In some embodiments, the chain is used to generate a hash value 308. The value 312 can be made part of a hash chain with the new chain value 306. In the example, the new chain value 306a may be a hash of the chain value 312a, and The new chain value 306b may be a hash of the chain value 312b. The hash chain value 312a may be the start of a new hash chain, and the chain value 312b may be the declaration and and part of an existing hash chain as used in the previous set of confirmation messages. There may be cases where this occurs.
[0043] Block headers in reconciled blockchains FIG. 4 illustrates an example block header for use in the system 100 of FIG. This is about verifying the block header of a coordinated blockchain that utilizes the blockchain. do.
[0044] In the system 100, a request system 110 requests a new block on the blockchain. There is interest in taking ownership of the blockchain in the sense that it allows the creation of a blockchain. The request system 110 may be labeled "B" in the example shown. The requesting system 110 may be represented by a chain value that is currently owned , and wants to take ownership so that the successor block 404 can be constructed. To obtain possession, the request system 110 requests possession from the current owner. For the processing server 102, the chain value is labeled "A" in the illustrated example. Prior to taking possession, the request system 110 may The entity must be aware of the transfer and label such subsequent entity with a "C" The chain value may be represented by an appended chain value.
[0045] To receive ownership, the requesting system 110 must provide the chain values 406b and 406c to the processing server. The request sends the chain value 406b to server 102, which is B2, which is a hash of B1. The chain value 406c is C3, which is a value known only to the chain system 110. hash, known by subsequent entities to be the requesting system 110. The underlying values are unknown to the requesting system 110. The management server 102 has a specific value 410a and chain values 406b and 406c. To be able to add a new block 402, the request system 110 must 412a, which is known to the requesting system 110 but is not available to the processing server. The chain value is a hash of a chain value that is unknown to the processing server 102. The processing server 102 then A new block consisting of the chain values 406a, 406b, and 406c, the specific value 410a, and the hash value 412a. With the addition of the new block 402, ownership of the block construction is transferred to the request The request system 110 is transferred to the chain. Because it is the only entity that has knowledge of the value 408a, and The requesting system 110 may then generate a value 2 (410b ) and 408c and 412b to obtain the subsequent chain value 408b having the underlying value. This allows ownership to be transferred to the entity, and for subsequent new blocks But that is what will be done.
[0046] The process of verifying proof of assertions using hashing and blockchain 5A and 5B are diagrams illustrating a blockchain network 106 and a hash-directed transaction The authentication scheme is used to verify the assertion of a particular value provided by the user 104. An example of a process in the system 100 of FIG. 1 for verifying the authentication is shown.
[0047] In step S502, the user 104 uses the computing device 108 to declare A message is submitted to the blockchain network 106. In both cases, the identifier (referred to herein as a data entry identifier) and the specific value and identifier In S504, the blockchain network 106 declares In S506, the declaration message can be included in a new block. In some embodiments, the declaration message can be The Sage data entry identifier is registered in the blockchain network in S504 or S506. The packet may be identified by query 106, which may be returned to computing device 108.
[0048] At S508, the computing device 108 and the requesting system 110 enter into an agreement. For example, in the above example, the request system 110 may receive a request for a user 104 to The user may be required to provide proof of identity and identity verification, and the ... 104 uses the ID as a specific value, which is the blockchain network 1 The declaration was included in the declaration message submitted on 06. S510 states that, as part of the arrangement, The user 104 sends a data entry identifier for the declaration message to the request system 110. , via the computing device 108. In S512, the request system The system 110 may submit a verification request to the processing server 102 using any suitable communication network and method. The validation request may include at least a data entry identifier.
[0049] In S514, the receiving device 202 of the processing server 102 receives the confirmation request from the request system 110. In S516, the processing server 102 receives a request message. can be electronically transmitted to the computing device 108 and a particular value (e.g., A user 104 may then enter into the blockchain network to assert a certificate of authenticity (e.g., the identity of the user 104 in the above example). In step S518, the computing device 106 is requested to submit a confirmation message. The device 108 can receive a request message from the management server 102 .
[0050] At S520, the computing device 108 transmits the confirmation message to the blockchain network. The confirmation message may be submitted to the network 106. The confirmation message may include at least the data entry identifier and At S522, the blockchain network 106 A confirmation message can be received. In S524, the confirmation message is included in a new block. A token can be generated, verified, and posted to the blockchain. S52 In 6, the receiving device 202 of the processing server 102 receives the update of the blockchain network via In S528, the generation module 220 of the processing server 102 receives the confirmation message. The chain value found in the acknowledgement message and the specific value found in the declaration message are A verification hash value can be generated by hashing the
[0051] In S530, the verification module 222 of the processing server 102 performs verification of the check hash value. by comparing it with the identity hash value found in the message. This can be seen as a verification of the assertion proof by the user 104. S5 At 32, the sending device 224 of the processing server 102 sends a confirmation notification. The confirmation notice may include the results of the verification. If this is successful, the user's assertion can be verified (e.g. (That person is the person identified by the above example of identification.) In S534, the request The client system 110 can receive an acknowledgement from the processing server 102 .
[0052] Exemplary Methods for Verifying Proofs About Assertions About Values Figure 6 shows the blockchain in combination with a hash-oriented transaction scheme. A method 600 for verifying a proof about an assertion about a value via using This is shown below.
[0053] In S602, the confirmation request is sent to a receiving unit (e.g., In S604, the confirmation message is received by the processing server. The identification may be made by a management device (e.g., query module 218) and a confirmation message may be sent. The message contains at least one chain value and is either: It is stored in a block that is included in the blockchain and requires verification. In S606, the declaration message is identified by a reference identifier included in the request. The declaration message can be identified by a processor of the server, and the declaration message can include at least an assertor. The received value and the identity hash value.
[0054] In S608, at least the asserted value and one or more chain values are hashed. The processing server's processing device (e.g., the generation module 220) generates the inspection hardware. In S610, the processing server uses the identity hash value to generate a hash value. The check hash value can be verified by the processing device (e.g., verification module 222). In the step 12, the result of the verification of the check hash value is transmitted to the processing device in response to the received verification request. It can be transmitted by a transmitting unit (eg, transmitting device 224).
[0055] An Exemplary Method for Reconciliation in a Permissioned Blockchain Figure 7 shows a permission-based transaction scheme using a hash-based transaction scheme. 1 illustrates a method 700 for reconciliation on a blockchain.
[0056] In S702, the blockchain is stored in the memory ( For example, the blockchain can be stored in memory 226. The newest block has a block header. In S704, one or more transaction data values are transmitted to a receiving portion of a processing server (e.g., In S706, the first reference value and the second reference value are received by the receiving device 202. The value may be received by a receiving unit of the processing server. At S708, the first reference value is hashed. By generating the first image, the processing unit (e.g., the generating module 220) of the processing server generates the first image. In S710, the processing device of the processing server generates at least one hash value. Also, a block including the first hash value, the second hash value, the third reference value, and the block value A proof can be generated.
[0057] In S712, block headers included in the latest block are checked using block proof. The verification may be performed by a processing device (e.g., the verification module 222) using the received data. In step S716, the new block value can be received by the receiving unit of the processing server. A processing unit of the server processes at least a first reference value, a second reference value, and a fourth reference value. In S718, the processing server can generate a new block header containing the new block value. A new block on the blockchain is generated by the processing unit of the The new block consists of a new block header and one or more transaction data. In S720, new blocks are associated with the blockchain. 2. Transmitted by a transmitting portion (e.g., transmitting device 224) of the processing server to one or more additional nodes. It can be done.
[0058] In one embodiment, the method 700 includes processing one or more transactions by a processing unit of a processing server. The method may further include generating a Merkle tree using the transaction data values. In a further embodiment, the new block header further includes the root of the Merkle tree. The new block header further includes version data and a block header reference value. In a further embodiment, the method 700 further comprises: generating a block header reference value by hashing the block header; In some embodiments, the method 700 may further include: a reference value of the first reference value, a second reference value, a fourth reference value, and one or more data points The method may further include generating a block value by hashing the combination. In a further embodiment, the one or more data points include at least version data and , the block header reference value, and the root of the Merkle tree.
[0059] In one embodiment, the method 700 includes, by a processing unit of the processing server, calculating a fourth reference value The method may further include generating a second hash value by hashing. In a further embodiment, the fourth reference value may be stored in a memory of the processing server. In some embodiments, the first reference value and the second reference value are stored in an external computing system. The new block value may be received from the external system (e.g., the coordinating entity 112) and the new block value may be received from the external system (e.g., the coordinating entity 112). In a further embodiment, the signal may be received from an external computing system. The computing system is a network of one or more additional nodes associated with the blockchain. It can be one of the following:
[0060] Computer System Architecture FIG. 8 illustrates a method for implementing an embodiment of the present disclosure, or a portion thereof, as computer readable code. 8 shows a computer system 800. For example, the processing server 102 in FIG. non-transitory computer-readable medium having stored thereon software, firmware, instructions, or A combination of these may be used to implement the computer system 800, and one or more The system may be implemented in multiple computer systems or other processing systems. The hardware, software, or any combination thereof is shown in FIG. 3, FIG. 4, FIG. 5A, FIG. 5B, FIG. 6, and FIG. and the modules and components used to implement the method of FIG. Cut.
[0061] Where programmable logic is used, such logic may be programmed to operate a specific purpose computer. Computers or special purpose devices (e.g., programmable logic arrays, application specific clusters, etc.) A commercially available process that is configured with executable software code to Those skilled in the art will appreciate that embodiments of the disclosed subject matter may be implemented on multiple platforms. Core multiprocessor systems, minicomputers, mainframe computers, Distributed functions and linked or clustered computers, as well as virtually any device Various computer systems, including pervasive or miniature computers that may be embedded It will be appreciated that the present invention may be implemented in a system configuration, for example, in at least one processor unit. and memory may be used to implement the above embodiments.
[0062] The processor unit or device described herein may be a single processor, multiple processors, or a The "computer processor" discussed herein may be a "program medium," "non-transitory computer-readable medium," and "computer usable medium" The term "removable storage unit 818, removable storage unit 822, Also refers to tangible media such as a hard disk installed in the hard disk drive 812. It is used for.
[0063] Various embodiments of the present disclosure are described with respect to this exemplary computer system 800. After reading this description, you may wish to use this information in conjunction with other computer systems and / or computer architectures. It will be clear to one skilled in the art how to implement the present disclosure using the can be described as a continuous process, but some of the actions are actually parallel, Concurrently and / or in a distributed environment, and accessed by single or multi-processor machines The program code may be stored locally or remotely for execution. Additionally, in some embodiments the order of operations may be changed in a manner that deviates from the spirit of the disclosed subject matter. can be reconstructed without
[0064] The processor unit 804 may be a dedicated processor that is specifically configured to perform the functions described herein. The processor unit 804 may be a bus, a message Communication infrastructure such as queues, networks, and multi-core message passing schemes The network may be connected to a network 806 for performing functions as disclosed herein. It can be any network suitable for carrying out , Wide Area Networks (WANs), Wireless Networks (e.g., WiFi), Mobile Communications Network, satellite network, internet, optical fiber, coaxial cable, infrared , radio frequency (RF), or any combination thereof. The type and configuration of the network will be apparent to those skilled in the art. , including a main memory 808 (e.g., random access memory, read-only memory, etc.) The secondary memory 810 may include a hard disk drive 812. and floppy disk drives, magnetic tape drives, optical disk drives, flash drives, and a removable storage drive 814 such as a hard disk drive 812.
[0065] The removable storage drive 814 is connected to a removable storage unit 818 in a known manner. The removable storage unit 818 can read and / or write data from the removable storage unit 818. is a removable storage medium that can be read and written by the removable storage drive 814 For example, the removable storage drive 814 may include a floppy disk drive or If the removable storage unit 818 is a Universal Serial Bus port, Each may be a floppy disk or a portable flash drive. In this embodiment, the removable storage unit is a non-transitory computer-readable recording medium. can be done.
[0066] In some embodiments, secondary memory 810 may store computer programs or other instructions. A computer system 800, for example, includes a removable storage unit 822 and an interface 82 An example of such a method would be Program cartridges and cartridge interfaces (e.g., video game systems) such as those found in electronic devices, removable memory chips (e.g., EEPROM, PROM, etc.) and related 820 and other removable storage units 822 and interfaces 820. It is possible to do so.
[0067] Stored in the computer system 800 (e.g., main memory 808 and / or secondary memory 810) The stored data is stored on an optical storage device (e.g., a compact disc, a digital versatile disk, disks, Blu-ray disks, etc.) or magnetic tape storage devices (e.g. hard disk drives The data may be stored on any type of suitable computer readable medium, such as a , relational databases, SQL (structured query language) databases, distributed databases It can be configured with any type of appropriate database structure, such as a standard database, object database, etc. Suitable formats and types of storage will be apparent to those skilled in the art.
[0068] The computer system 800 may also include a communications interface 824. The interface 824 communicates software and data between the computer system 800 and external devices. The exemplary communication interface 82 may be configured to allow the 4 is a modem, a network interface (e.g., an Ethernet card), a communications port, The communication interface 824 may include a CMCIA slot and card. The software and data may be transmitted in a variety of ways, including electronic, electromagnetic, optical, and / or other formats, as will be apparent to those skilled in the art. The signal may be a signal, a packet, or other form of signal. The signal may be configured to carry a signal. Also commonly used are wires, cables, optical fibers, telephone lines, cellular phone links, and radio frequency links. The signal may propagate via communication path 826, which may be implemented using, for example,
[0069] The computer system 800 may further include a display interface 802. The interface 802 transmits data between the computer system 800 and an external display 830. The display interface may be configured to allow the data to be transferred. 802 stands for High-Definition Multimedia Interface (HDMI), Digital Visual Interface Display 830 can include a digital video interface (DVI), a video graphics array (VGA), etc. , cathode ray tube (CRT) displays, liquid crystal displays (LCD), light emitting diode (LED) displays , electrostatic touch displays, thin film transistor (TFT) displays, etc. Optionally, the display interface 802 of the data system 800 may be used to display data transmitted via the display interface 802. The display may be of any suitable type.
[0070] The computer program medium and the computer usable medium may be implemented on a memory semiconductor (e.g. , DRAM, etc.) and secondary memory 810. These computer program products may include software for installing the computer system 800. A computer program (e.g., a computer program for executing a program) can be used as a means for providing a program. The controller (control logic) may be stored in main memory 808 and / or secondary memory 810. Computer programs may also be received via communications interface 824. Such computer programs, when executed, cause the computer system 800 to perform the functions described herein. In particular, computer programs may be provided that enable the implementation of the methods discussed herein. When executed, the processor unit 804 performs the operations of FIGS. 3, 4, 5A, It is possible to carry out the methods shown in Figs. 5B, 6 and 7. Such a computer program may be implemented as a processor of the computer system 800. When the present invention is implemented using software, the software may A data program product is stored in the removable storage drive 814, an interface A computer using a memory 820, a hard disk drive 812, or a communication interface 824. The program may be loaded into the computer system 800.
[0071] The processor unit 804 is configured to perform the functions of the computer system 800. The engine may include one or more modules or engines. Each can be implemented using hardware, possibly including main memory 80 8 or secondary memory 810. In such cases, the program code is The program is executed by the processor 804 before being executed by the hardware of the computer system 800. For example, the file may be compiled (e.g., by a compilation module or engine). The program code may be implemented by processor unit 804 and / or any additional processors of computer system 800. Assembly language or machine code for execution by additional hardware components It may also be source code written in a programming language that is translated into a lower level language such as The compilation process consists of lexical analysis, preprocessing, syntax analysis, semantic analysis, syntax-directed translation, and code Generation, code optimization, and configuration of a computer system to perform the functions disclosed herein. Any suitable program code for translating the program code into a low level language suitable for controlling the system 800. Those skilled in the art will appreciate that the results of such a process may include the use of other techniques. The system 800 is a specially configured computer uniquely programmed to perform the functions described above. It will be apparent that the present invention will be implemented as a computer system 800.
[0072] The technique according to the present invention, among other things, uses a hash-oriented scheme to implement permission-based blocking. A system and method for performing coordination in a blockchain is provided. Various exemplary embodiments of the method and method are described above, but are not intended to be limiting. It should be understood that this is presented for illustrative purposes only, and is not intended to be exhaustive. It is not intended to limit the disclosure to the precise form disclosed. Modifications and variations are possible or may be made from the practice of this disclosure without departing from its breadth or scope. Modifications and variations can be obtained without departing from the spirit and scope of the present invention.
Claims
1. How to use a hash-based scheme to achieve coordination in a permissioned blockchain It is a law, A blockchain with multiple blocks, including the latest block, in the memory of the processing server. storing a new block, the newest block including a block header; 、 receiving, by a receiving portion of the processing server, one or more transaction data values; P and receiving, by said receiving unit of the processing server, a first reference value and a second reference value; and, hashing the first reference value by a processing device of the processing server; generating a first hash value; The processing device of the processing server processes at least the first hash value and the second hash value. generating a block proof including the hash value, the third reference value, and the block value; 、 The processing device of the processing server uses the block proof to generate the latest block. validating the block header contained within the block; receiving, by the receiving unit of the processing server, a new block value; The processing device of the processing server processes at least the first reference value and the second reference value.
2. Create a new block header that includes the reference value, the fourth reference value, and the new block value. Steps and The processing device of the processing server processes the new block header and the one or more A new block for the blockchain including the transaction data value. generating The new block is associated with the blockchain by the transmission unit of the processing server. and transmitting to one or more additional nodes to which the signal is associated.
2. 10. The method of claim 1 , The one or more transaction data values are calculated by the processing unit of the processing server. generating a Merkle tree using the new block header further includes the root of the Merkle tree.
3. 3. The method of claim 2, wherein the new block header includes version data and block and a block header reference value.
4. 4. The method of claim 3, The processing device of the processing server hashes the verified block header. generating the block header reference value by
5. 10. The method of claim 1 , The first reference value, the second reference value, and hashing the combination of the fourth reference value and the one or more data points. and generating the block value by:
6. 6. The method of claim 5, wherein the one or more data points are at least John data, a block header reference value, and the root of the Merkle tree.
7. 10. The method of claim 1 , hashing the fourth reference value by the processing device of the processing server generating the second hash value by
8. 8. The method of claim 7, wherein the fourth reference value is stored in the memory of the processing server. A way of being remembered.
9. 10. The method of claim 1 , The first reference value and the second reference value are received from an external computing system. ,Also, the new block value is received from the external computing system. 。
10. 10. The method of claim 9, wherein the external computing system is the node being one of the one or more additional nodes associated with the link chain. 。
11. A system that uses a hash-based scheme to coordinate on a permissioned blockchain A stem, A processing server as a node associated with the blockchain; one or more additional nodes associated with the blockchain; The processing server includes at least A transmitting unit; A memory that stores a blockchain having multiple blocks including the latest block. a memory, the latest block including a block header; A receiver for receiving one or more transaction data values, a first reference value, and a second reference value. With Shinbu, and a processing device, the processing device comprising: generating a first hash value by hashing the first reference value. Top and At least the first hash value, the second hash value, the third reference value, and the block generating a block proof including the The block header included in the latest block using the block proof and performing a step of verifying the receiver further receives new block values; The processing device further comprises: At least the first reference value, the second reference value, the fourth reference value, and the new block generating a new block header including the lock value; the new block header and the one or more transaction data values; generating a new block for the blockchain; and 、 The sending unit transmits the new block to a blockchain associated with the 2. A system for transmitting to one or more additional nodes.
12. 12. The system of claim 11, The processing unit of the processing server further calculates the one or more transaction data values. generating a Merkle tree using The new block header further includes the root of the Merkle tree.
13. 13. The system of claim 12, wherein the new block header comprises version data and a block header reference value.
14. 14. The system according to claim 13, wherein the processing device of the processing server further comprises: Generate the block header reference by hashing the validated block header. A system that performs steps to create a
15. 12. The system according to claim 11, wherein the processing device of the processing server further comprises: a first reference value, the second reference value, the fourth reference value, and one or more data points. generating the block value by hashing a combination of Run, system.
16. 16. The system of claim 15, wherein the one or more data points include at least , the system includes the version data, the block header reference value, and the root of the Merkle tree. Stem.
17. 12. The system according to claim 11, wherein the processing device of the processing server further comprises: generating the second hash value by hashing a fourth reference value; Run, system.
18. 18. The system according to claim 17, wherein the fourth reference value is a value of the memory of the processing server. The system is stored in the
19. 12. The system of claim 11, The first reference value and the second reference value are received from an external computing system. ,Also, The new block value is received from the external computing system. Tem.
20. 20. The system of claim 19, wherein the external computing system is one of the one or more additional nodes associated with the blockchain; ,system.
Citation Information
Patent Citations
Management system, management method, high-order block chain arithmetic device, and program
JP2020178240A
Method and system for an efficient consensus mechanism for permssioned blockchains using bloom filters and audit guarantees
US20170344987A1
Method and System for Dispute Resolution in a Public Blockchain
US20200097927A1
Method and system for quantum-resistant hashing scheme
US20200153630A1
Data verification method, apparatus, and system and device
US20200210407A1