WO2020199713A1 - 数据验证方法、系统、装置及设备 - Google Patents

数据验证方法、系统、装置及设备 Download PDF

Info

Publication number
WO2020199713A1
WO2020199713A1 PCT/CN2020/071219 CN2020071219W WO2020199713A1 WO 2020199713 A1 WO2020199713 A1 WO 2020199713A1 CN 2020071219 W CN2020071219 W CN 2020071219W WO 2020199713 A1 WO2020199713 A1 WO 2020199713A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
block
node
data block
verification
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
PCT/CN2020/071219
Other languages
English (en)
French (fr)
Inventor
杨新颖
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Advanced New Technologies Co Ltd
Original Assignee
Advanced New Technologies Co Ltd
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 Advanced New Technologies Co Ltd filed Critical Advanced New Technologies Co Ltd
Priority to US16/815,902 priority Critical patent/US11055277B2/en
Publication of WO2020199713A1 publication Critical patent/WO2020199713A1/zh
Priority to US17/365,772 priority patent/US20210326328A1/en
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures

Definitions

  • the embodiments of this specification relate to the field of information technology, in particular to data verification methods, systems, devices and equipment.
  • each data block needs to be verified in sequence in the order of the blocks to complete the integrity verification of a section of the ledger or the entire ledger. There are many data blocks in the book to be verified. And when there are many data records in the data block, this verification efficiency is low.
  • the purpose of the embodiments of the present application is to provide a method for realizing high data verification in a block chain ledger.
  • a data verification method is applied to a database system that centrally stores a block-chained ledger.
  • the database system includes a coordination node and a data node.
  • the method includes:
  • the coordinating node receives the first verification instruction, determines the target ledger to be verified, and performs block header integrity verification on the block headers of the data blocks in the target ledger according to the block header information stored in the coordinating node.
  • the target ledger includes a partial ledger or a full ledger. ;
  • the target data node corresponding to each data block in the target ledger to be verified is determined according to the data block stored in the coordination node and the routing information of the data node.
  • the data node receives the second verification instruction, performs block integrity verification on the data block corresponding to the data block identifier, generates a verification result, and returns the verification result to the coordination node;
  • the coordination node receives the verification result and determines the integrity of the target ledger
  • the data block includes a block header for storing metadata and a block body for storing data records; except for the initial data block, each data block contains at least one data record, Each data block contains the block hash value of its own data block determined by the hash value of the previous data block and the data record contained in it, and the block height of the data block increases monotonically based on the sequence of block formation time.
  • a data verification system is applied to a database system for centralized storage of block-chained ledger.
  • the database system includes a coordination node and a data node,
  • the coordinating node receives the first verification instruction, determines the target ledger to be verified, and performs block header integrity verification on the block headers of the data blocks in the target ledger according to the block header information stored in the coordinating node.
  • the target ledger includes a partial ledger or a full ledger. ;
  • the target data node corresponding to each data block in the target ledger to be verified is determined according to the data block stored in the coordination node and the routing information of the data node.
  • the data node receives the second verification instruction, performs block integrity verification on the data block corresponding to the data block identifier, generates a verification result, and returns the verification result to the coordination node;
  • the coordination node receives the verification result and determines the integrity of the target ledger
  • the data block includes a block header for storing metadata and a block body for storing data records; except for the initial data block, each data block contains at least one data record, Each data block contains the block hash value of its own data block determined by the hash value of the previous data block and the data record contained in it, and the block height of the data block increases monotonically based on the sequence of the block time.
  • a data verification method applied to a coordination node in a database system that centrally stores a block chain ledger, the method includes:
  • the target ledger including a partial ledger or a full ledger
  • the target data node corresponding to each data block in the target ledger to be verified is determined according to the data block stored in the coordination node and the routing information of the data node.
  • a data verification device applied to a coordination node in a database system for centralized storage of block-chained ledger, said device comprising:
  • the block header verification module receives the first verification instruction, determines the target ledger to be verified, and performs header integrity verification on the headers of the data blocks in the target ledger according to the header information stored in the coordination node, the target ledger includes part of the ledger or Full account book
  • the determination module determine the target data node corresponding to each data block in the target ledger to be verified according to the data block stored in the coordination node and the routing information of the data node,
  • the sending module sends a second verification instruction to the target data node, wherein the second verification instruction includes a data block identifier.
  • the integrity verification of the block header can be performed only in the coordinating node first, and after the verification is passed, a further second verification instruction is distributed to In each data node, let each data node perform the verification inside the data block in parallel, thereby greatly improving the verification efficiency.
  • Figure 1 is a schematic diagram of a system architecture involved in an embodiment of the specification
  • Figure 2 is a schematic diagram of a block header provided by an embodiment of the specification
  • FIG. 3 is a schematic flowchart of a data verification method applied to a database system according to an embodiment of the specification
  • FIG. 4 is a schematic flowchart of a data verification method applied to a coordination node according to an embodiment of the specification
  • Figure 5 is a schematic structural diagram of a data verification device applied to a coordination node provided by an embodiment of the specification
  • Fig. 6 is a schematic structural diagram of a device for configuring the method of the embodiment of this specification.
  • the database system in this manual provides data services in a centralized form.
  • the database server can be directly connected to individual client users, or it can be connected to individual client users by some application servers, and the database server is connected to the application server.
  • one coordination node may correspond to multiple data nodes, as shown in FIG. 1, which is a schematic diagram of the system architecture involved in the embodiments of this specification.
  • data blocks can be generated in advance in the following ways:
  • the data records to be stored can be various consumption records of individual users of the client, or can be business results, intermediate states, and operation records generated when the application server executes business logic based on user instructions.
  • Specific business scenarios can include consumption records, audit logs, supply chains, government supervision records, medical records, and so on.
  • each data record to be written in the data block is determined, and the Nth data block including the hash value of the data block and the data record is generated.
  • the preset block conditions include: the number of data records to be stored reaches the number threshold, for example, every time one thousand data records are received, a new data block is generated and one thousand data records are written into the block; or , The time interval from the last block formation time reaches the time threshold, for example, every 5 minutes, a new data block is generated, and the data records received within these 5 minutes are written into the block.
  • the N here refers to the serial number of the data block.
  • the data block is in the form of a block chain, which is arranged sequentially based on the order of the block time, and has a strong timing characteristic.
  • the block height of the data block increases monotonically based on the sequence of the block time.
  • the block height can be a sequence number, at this time the block height of the Nth data block is N; the block height can also be generated in other ways.
  • the data block at this time is the initial data block.
  • the current data block (the N-1th data block) can be generated based on the hash value of the previous data block. For example, a feasible way is to determine the hash value of each data record to be written in the Nth block, and generate a Merck according to the sequence in the block.
  • Merkel tree splicing the root hash value of the Merkel tree and the hash value of the previous data block together, again using the hash algorithm to generate the hash value of the current block, and, according to the Merkel tree
  • the root hash value and some other metadata (such as the version number, the generation timestamp of the data block, the hash of the parent data block, etc.) generate the hash value of the current block.
  • each data block it contains a block header for storing metadata, and a block body for storing data records.
  • the block header in the data block can be used to store things such as the parent hash, its own block hash value, version number, root hash of the data record, timestamp, and so on.
  • Figure 2 is a schematic diagram of a block header provided by an embodiment of this specification.
  • the format of the block header can be customized based on business needs, and it can also contain some other information, for example, It is used to describe the state array of the data record state, etc.
  • the block is used to store the plain text of the data record or the hash value of the data record.
  • each data block is determined by a hash value, and the hash value of the data block is determined by the content and sequence of the data records in the data block and the hash value of the previous data block.
  • the user can initiate verification based on the hash value of the data block at any time. Any modification of the data block (including the modification of the data record content or sequence in the data block) will cause the hash value of the data block calculated during verification and The hash value of the data block is inconsistent when it is generated, which causes the verification to fail, thus realizing the immutability under centralization.
  • the generation of the aforementioned data block may be implemented in the coordination node, or may not be implemented in the coordination node.
  • the data system may also include other business nodes, which are specifically used to process the generation of data blocks to achieve business decoupling. Each time a data block is generated, the business node sends it to the coordination node.
  • Fig. 3 is a schematic flow diagram of a data storage method applied to a database system according to an embodiment of this specification, and the flow specifically includes the following steps:
  • the coordination node obtains the generated data block, determines the data node corresponding to the data block according to the block hash value of the data block, allocates the data block to the corresponding data node, and establishes the data block and
  • the routing information of the data node saves the routing information and the header information of the data block.
  • the coordinating node In a database system, there are generally multiple data nodes. To this end, the coordinating node first needs to determine which data node a data block should be allocated to. Specifically, it can be allocated according to the hash value of the data block.
  • the hash value of the data block can be calculated jointly based on the parent hash and the hash of its own data record, and stored in the block header.
  • Hash values are values calculated using hash functions.
  • the supported algorithms include: MACTripleDES, MD5, RIPEMD160, SHA1, SHA256, SHA384, SHA512, etc.
  • MACTripleDES MACTripleDES
  • MD5 RIPEMD160
  • SHA1 SHA256
  • SHA384 SHA512
  • a block of data The hope value is a short string that can uniquely identify the data block. A slight change in any content in the data block will cause a big change in the hash value of the data block.
  • the number of data nodes is fixed, and each data node can have a corresponding number. Therefore, the hash value can be converted into a corresponding value, and the number of data nodes can be modulused. Therefore, the data node corresponding to the data block can be determined according to the result of the modulus.
  • the block hash value of a data block is 100110120 after numerical conversion, there are 10 data nodes, and the numbers are from 0 to 9. It can be seen that the block hash value is 0 for the result of the modulus, and the 0 tree can be determined The node is the data node corresponding to the hash value of the block, and the data block can be sent to data node 0 for storage.
  • the block hash value of a data block generally has a few hundred bits (the number of bits is determined based on the hash algorithm), it is also possible to select several designated bits (for example, the last 3 bits) from the block hash value for numerical conversion to Perform a modulo operation to determine the data node corresponding to the data block, thereby reducing the amount of calculation.
  • all data nodes can also be arranged on a hash ring that is connected at the end, for example, a hash ring with a size from 0 to 2 ⁇ 32, and each node can correspond to its own address or device identification
  • the hash value of is located at a certain point on the hash ring.
  • the hash value of each block can be located to a certain position on the hash ring based on the same principle, so that the first data node encountered can be found clockwise or counterclockwise to correspond to the hash value of the block Data node.
  • a piece of routing information about the data block can be established and written into the routing table in the coordination node.
  • a routing table may contain information such as the block height of the data block, the block hash of the data block, and the data node number corresponding to the data block, and it is stored locally.
  • the coordinating node should also store the header information of each data block.
  • S303 The data node receives and stores the data block sent by the coordination node.
  • the routing relationship between the data block and the data node is established according to the block hash of the data block, the block chain ledger is stored in a distributed manner at the granularity of the data block, and metadata such as block header information Stored in the coordination node, which can reduce the storage pressure of a single node device, and is conducive to multi-process operations such as query and verification, and it is more convenient to improve efficiency.
  • the data blocks are roughly evenly distributed on the data nodes.
  • the internal verification of the data block can be distributed to N data nodes, which is compared with the conventional serial verification from beginning to end. The efficiency can be increased by N times.
  • the time data block identifier can be identified by the block height contained in the block header or the block hash of the data block.
  • the coordinating node may also only send the block body and identification of the data block to the data node.
  • the data node may only need to store the block body, the block identification and the information used for verification.
  • the routing information in the coordinating node contains the block identifier and the data node number. The above method can save the data transmission overhead of the coordinating node and the storage space of the data node.
  • the information used for verification refers to information used to verify the integrity of the data block, and specifically may include the hash value of the data block and the hash value of the parent data block.
  • Figure 3 is a schematic flow diagram of the data verification method provided by the embodiment of this specification, which is applied to a database system for centralized storage of block-chained ledgers.
  • the database system includes coordination nodes and data nodes, including:
  • the coordinating node receives the first verification instruction, determines the target ledger to be verified, and performs block header integrity verification on the block headers of the data blocks in the target ledger according to the block header information stored in the coordinating node, where the target ledger includes part of the ledger or Full account book.
  • the first verification instruction here may be an operation instruction input by the user.
  • VERIFY('khash', &v, -1) where'khash' is the hash value of the data block input by the user.
  • the system can determine the corresponding data block according to the hash value, so that All data blocks between the data block and the "-1 data block" (ie, the initial data block) are used as the target ledger.
  • the user can directly input the block height of the designated data block: VERIFY (1, 1000), so that the first 1000 data blocks are used as the target ledger.
  • the user can input a specified time point VERIFY (T1, T2), so that the data block generated between T1 and T2 can be used as the target ledger for verification, and the target ledger can also be the current full ledger.
  • the verification here refers to integrity verification.
  • the hash value of a data block is obtained based on the hash value of the previous data block and the determined hash value of the data record of its own data block, for the data record Any change to will cause the hash value of the data block to change.
  • the user can initiate integrity verification of whether the data block is complete or correct at any time: verify whether the block hash of the data block stored in the block header is correct.
  • the specific method is: starting from the first data block of the target ledger, according to the generation order, according to the block hash of the previous data block and the root hash of the Merkel tree corresponding to the data record of the data block, the book is generated
  • the block hash of the data block can be compared with the block hash of the data block in the pre-saved block header information. In this granular verification mode, since only the information of the block header is needed, it can be performed only in the coordination node that stores the block header information.
  • the integrity verification within the block can be further performed. Because in the foregoing storage method, the information of the specific data block is not stored in the coordination node, but is stored in the data node in a distributed manner. Therefore, further verification work needs to be distributed. Specifically, since the target ledger contains multiple data blocks, and related routing information has been established for each data block when it is stored, the target data node corresponding to each data block can be determined separately. For any data block, the target data node refers to the data node that stores the data block.
  • the coordinating node can know which data node each data block is stored on, so that multiple target data nodes can be determined respectively, and the multiple target data nodes store the data in the target ledger. All data blocks.
  • the coordinating node can generate and send a corresponding second verification instruction.
  • Each second verification instruction contains a data block identifier, wherein the data block corresponding to the above data block identifier Should be stored in the target data node.
  • the data block identifier can be the block height or the block hash of the data block, which should be the same type as the data block identifier stored in the data node.
  • each data node will receive a second verification instruction.
  • the data node receives the second verification instruction, performs block integrity verification on the data block corresponding to the data block identifier, generates a verification result, and returns the verification result to the coordination node.
  • any data node can determine the data block that needs to be verified by itself according to the data block identifier.
  • the specific verification method is to obtain the hash value of each data record, calculate the root hash value of the Merkel tree of the data record in the data block, and then calculate the data according to the previously stored parent hash value The hash value of the block is compared with the previously stored hash value of the data block. If it is consistent, the verification is successful, and if it is inconsistent, the verification fails, and the verification result is returned to the coordination node.
  • the coordination node receives the verification result, and determines the integrity of the target ledger.
  • the verification results must all be verified successfully before the coordinating node can determine that the ledger is complete. If any of the results are verification failure, it is determined that the ledger is incomplete.
  • the integrity verification of the block header can be performed only in the coordinating node first, and after the verification is passed, a further second verification instruction is distributed to In each data node, let each data node perform the verification inside the data block in parallel, thereby greatly improving the verification efficiency.
  • the coordinating node when it performs the integrity verification of the block header, it may also be based on the timing certificate generated by the time fairness agency.
  • the timing certificate can be generated in advance based on the following method: the coordinating node determines the target ledger that needs timing authentication, and the target ledger contains at least one data block, or multiple blocks of highly continuous data; according to the data block in the target ledger In order of block height, a Merkel tree corresponding to the target ledger is generated, and the root hash of the Merkel tree is determined based on the block hash of each data block; and the root hash of the Merkel tree is summed
  • the relevant information of the data block is sent to the time justice agency, where the relevant information of the data block includes the start block height, the end block height, or the number of data blocks; the receiving time justice agency returns the contents corresponding to the target ledger Time service certificate signed by trusted timestamp and time fair agency.
  • a timing certificate includes the starting point data block height, the end point data block height, the credible timestamp and the root
  • a time service certificate is used to confirm that the generation time of a period of account book is before the time stamp given by the time fair agency.
  • the time justice agency may be the national time service center or a relevant time service agency authorized by the national time service center.
  • the first verification instruction may include a time point, or a time interval determined by two time points.
  • the coordination node can match the time point in the first verification instruction according to the trusted timestamp in the time service certificate.
  • the corresponding timing certificate may be the time service certificate with the smallest interval between the trusted timestamp and the time point; the first verification instruction contains two time points determined In the time interval, the corresponding time service certificate may be all the time service certificates whose trusted timestamp falls within the interval.
  • the range of the verified data block is determined by the start block height and the end block height contained in the timing certificate.
  • the way of verification is to build a Merkel tree from the height of the starting block to the height of the ending block, and calculate the root hash, which can be compared with the root hash in the timing certificate.
  • the block header integrity verification can be performed on the part of the ledger corresponding to the time service certificate according to the order of the trusted timestamp in the time service certificate.
  • the coordination node receives a full verification instruction for the ledger. At this time, the time point does not need to be included in the full verification instruction, and the coordinating node can perform block header integrity verification on the full account book based on all timing certificates.
  • the integrity verification of the block header based on the timing certificate can also be performed only in the coordination node without calling the data node.
  • the coordinating node may generate an integrity array generated in the coordinating node to record the data node’s information on the data block in the target ledger. Validation results.
  • the data node can return a characteristic value used to characterize failure or success. For example, if verification succeeds, it returns 1, and if verification fails, it returns 0. Therefore, the value of the element in the integrity array is either 1 or 0.
  • the coordinating node can confirm that the verification has failed, and when all elements in the integrity array have a value of 1, the coordinating node can confirm that the verification is successful and record through the integrity array
  • the verification status of each data block can be more convenient to count the verification results.
  • the embodiment of this specification also provides a data verification system, which is applied to a database system for centralized storage of block-chain ledgers, and the database system includes a coordination node and a data node,
  • the coordinating node receives the first verification instruction, determines the target ledger to be verified, and performs block header integrity verification on the block headers of the data blocks in the target ledger according to the block header information stored in the coordinating node.
  • the target ledger includes a partial ledger or a full ledger. ; If the block header integrity verification is passed, determine the target data node corresponding to each data block in the target ledger to be verified according to the data block stored in the coordination node and the routing information of the data node, and send a second verification instruction to the target data node, Wherein, the second verification instruction includes a data block identifier;
  • the data node receives the second verification instruction, performs block integrity verification on the data block corresponding to the data block identifier, generates a verification result, and returns the verification result to the coordination node;
  • the coordination node receives the verification result and determines the integrity of the target ledger
  • the data block includes a block header for storing metadata and a block body for storing data records; except for the initial data block, each data block contains at least one data record, Each data block contains the block hash value of its own data block determined by the hash value of the previous data block and the data record contained in it, and the block height of the data block increases monotonically based on the sequence of the block time.
  • the data block is pre-stored in the following manner: the coordination node obtains the generated data block, determines the data node corresponding to the data block according to the block hash value of the data block, and stores all The data block is allocated to the corresponding data node, the routing information of the data block and the data node is established, and the routing information and the block header information of the data block are saved; the data node receives and stores the data block sent by the coordinating node.
  • the coordinating node obtains the block header and the block in the data block, and allocates the block to the corresponding data node; correspondingly, the coordinating node establishes the block and the data node Routing information; correspondingly, the data node receives the block sent by the coordinating node.
  • the data block is generated in advance by: receiving the data record to be stored, and determining the hash value of each data record; when the preset blocking condition is reached, determining the data block to be written For each data record in, generate the Nth data block containing the hash value of the data block and the data record, including:
  • the hash value and block height of the initial data block are given based on a preset method
  • N>1 determine the hash value of the Nth data block according to the data records in the data block to be written and the hash value of the N-1th data block, and generate a hash containing the Nth data block The Nth data block of the value, each data record and the block time of the data block, where the block height of the data block increases monotonically based on the sequence of the block time.
  • the coordinating node receives the time point included in the first verification instruction, obtains the timing certificate corresponding to the time point, and determines the part of the ledger corresponding to the timing certificate to be verified The target ledger, wherein the timing certificate includes the starting data block height, the end data block height, the trusted timestamp and the root hash of the partial ledger of the corresponding partial ledger; correspondingly, the coordination node according to the The timing certificate and the stored block header information perform block header integrity verification on the part of the ledger.
  • the coordinating node before the coordinating node receives the verification result, the coordinating node generates an integrity array for recording the verification result of the data block in the target ledger, wherein each element in the integrity array Corresponding to a data block; correspondingly, the data node generates a verification result and returns the verification result to the coordination node, including: the data node generates a characteristic value indicating the verification failure or success to the coordination node; correspondingly, the coordination node receives the verification result, and Determining the integrity of the target ledger includes: determining that the target ledger is incomplete when the value of any element in the integrity array is a characteristic value that characterizes verification failure.
  • the embodiment of the specification also provides a data verification method, which is applied to the coordination node in the database system of the centralized storage block chain ledger, as shown in FIG. 4, which is the application provided by the embodiment of the specification
  • the flow diagram of the data verification method in the coordination node includes:
  • S401 Receive a first verification instruction, determine a target ledger to be verified, and perform block header integrity verification on the headers of data blocks in the target ledger according to the header information stored in the coordinating node, where the target ledger includes a partial ledger or a full ledger ;
  • S405 Send a second verification instruction to the target data node, where the second verification instruction includes a data block identifier;
  • S407 Receive a verification result for the data block returned by the target data node, and determine the integrity of the target ledger according to the verification result.
  • the data block includes a block header for storing metadata and a block body for storing data records; except for the initial data block, each data block contains at least one data record, Each data block contains the block hash value of its own data block determined by the hash value of the previous data block and the data record contained in it, and the block height of the data block increases monotonically based on the sequence of the block time.
  • the embodiment of the specification also provides a data verification device, which is applied to the coordination node in the database system of the centralized storage block chain ledger, as shown in FIG. 5, which is the application provided by the embodiment of the specification.
  • the structure diagram of the data verification device in the coordination node includes:
  • the block header verification module 501 receives the first verification instruction, determines the target ledger to be verified, and performs header integrity verification on the header of the data block in the target ledger according to the header information stored in the coordinating node, the target ledger includes part of the ledger Or full account book;
  • the determining module 503 if the block header integrity verification is passed, determine the target data node corresponding to each data block in the target ledger to be verified according to the data block stored in the coordination node and the routing information of the data node,
  • the sending module 505 sends a second verification instruction to the target data node, where the second verification instruction includes a data block identifier
  • the receiving module 507 receives the verification result of the data block returned by the target data node, and determines the integrity of the target ledger according to the verification result.
  • the data block includes a block header for storing metadata and a block body for storing data records; except for the initial data block, each data block contains at least one data record, Each data block contains the block hash value of its own data block determined by the hash value of the previous data block and the data record contained in it, and the block height of the data block increases monotonically based on the sequence of the block time.
  • the embodiments of this specification also provide a computer device, which at least includes a memory, a processor, and a computer program stored in the memory and running on the processor, wherein the processor implements the data shown in FIG. 4 when the program is executed.
  • a computer device which at least includes a memory, a processor, and a computer program stored in the memory and running on the processor, wherein the processor implements the data shown in FIG. 4 when the program is executed.
  • the device may include a processor 1010, a memory 1020, an input/output interface 1030, a communication interface 1040, and a bus 1050.
  • the processor 1010, the memory 1020, the input/output interface 1030, and the communication interface 1040 realize the communication connection between each other in the device through the bus 1050.
  • the processor 1010 may be implemented in a general-purpose CPU (Central Processing Unit, central processing unit), microprocessor, application specific integrated circuit (Application Specific Integrated Circuit, ASIC), or one or more integrated circuits for execution related Program to implement the technical solutions provided in the embodiments of this specification.
  • a general-purpose CPU Central Processing Unit, central processing unit
  • microprocessor microprocessor
  • application specific integrated circuit Application Specific Integrated Circuit, ASIC
  • ASIC Application Specific Integrated Circuit
  • the memory 1020 may be implemented in the form of ROM (Read Only Memory), RAM (Random Access Memory, random access memory), static storage device, dynamic storage device, etc.
  • the memory 1020 may store an operating system and other application programs. When the technical solutions provided in the embodiments of the present specification are implemented through software or firmware, related program codes are stored in the memory 1020 and called and executed by the processor 1010.
  • the input/output interface 1030 is used to connect an input/output module to realize information input and output.
  • the input/output/module can be configured in the device as a component (not shown in the figure), or can be connected to the device to provide corresponding functions.
  • the input device may include a keyboard, a mouse, a touch screen, a microphone, various sensors, etc., and an output device may include a display, a speaker, a vibrator, an indicator light, and the like.
  • the communication interface 1040 is used to connect a communication module (not shown in the figure) to realize the communication interaction between the device and other devices.
  • the communication module can realize communication through wired means (such as USB, network cable, etc.), or through wireless means (such as mobile network, WIFI, Bluetooth, etc.).
  • the bus 1050 includes a path to transmit information between various components of the device (for example, the processor 1010, the memory 1020, the input/output interface 1030, and the communication interface 1040).
  • the device may also include the necessary equipment for normal operation.
  • the above-mentioned device may also include only the components necessary to implement the solutions of the embodiments of the present specification, rather than all the components shown in the figures.
  • the embodiment of the present specification also provides a computer-readable storage medium on which a computer program is stored, and when the program is executed by a processor, the data verification method shown in FIG. 4 is implemented.
  • Computer-readable media include permanent and non-permanent, removable and non-removable media, and information storage can be realized by any method or technology.
  • the information can be computer-readable instructions, data structures, program modules, or other data.
  • Examples of computer storage media include, but are not limited to, phase change memory (PRAM), static random access memory (SRAM), dynamic random access memory (DRAM), other types of random access memory (RAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), flash memory or other memory technology, CD-ROM, digital versatile disc (DVD) or other optical storage, Magnetic cassettes, magnetic tape magnetic disk storage or other magnetic storage devices or any other non-transmission media can be used to store information that can be accessed by computing devices. According to the definition in this article, computer-readable media does not include transitory media, such as modulated data signals and carrier waves.
  • a typical implementation device is a computer.
  • the specific form of the computer can be a personal computer, a laptop computer, a cellular phone, a camera phone, a smart phone, a personal digital assistant, a media player, a navigation device, an email receiving and sending device, and a game control A console, a tablet computer, a wearable device, or a combination of any of these devices.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Bioethics (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)

Abstract

一种数据验证方法、系统、装置及设备,当需要对块链式的账本进行验证时,可以首先只在协调节点中对块头进行完整性验证,验证通过之后,再分发进一步的第二验证指令至各数据节点中,让各数据节点并行执行数据块内部的验证。

Description

数据验证方法、系统、装置及设备 技术领域
本说明书实施例涉及信息技术领域,尤其涉及数据验证方法、系统、装置及设备。
背景技术
在对块链式的账本进行完整性验证时,需要按照成块顺序依序对每个数据块进行验证,才能完成一段账本或者全量账本的完整性验证,在待验证的账本中数据块较多以及数据块中数据记录较多的时候,这种验证效率较低。
基于此,需要一种在块链式账本中更为高效的数据验证方式。
发明内容
本申请实施例的目的是提供一种块链式账本中实现高数据验证的方法。
为解决上述技术问题,本申请实施例是这样实现的:
一种数据验证方法,应用于中心化存储块链式账本的数据库系统中,所述数据库系统包括协调节点和数据节点,所述方法包括:
协调节点接收第一验证指令,确定待验证的目标账本,根据协调节点中存储的块头信息,对所述目标账本中数据块的块头执行块头完整性验证,所述目标账本包括部分账本或者全量账本;
若块头完整性验证通过,根据协调节点中存储的数据块和数据节点的路由信息,确定待验证的目标账本中每个数据块对应的目标数据节点,
发送第二验证指令至目标数据节点,其中,所述第二验证指令中包含数据块标识;
数据节点接收第二验证指令,对数据块标识对应的数据块执行块体完整性验证,生成验证结果,并返回验证结果至协调节点;
协调节点接收验证结果,并确定所述目标账本的完整性;
其中,在所述块链式账本中,数据块包含用于存储元数据的块头,和,用于存储数据记录的块体;除初始数据块以外,每一数据块中包含至少一条数据记录,每一数据块中包含由前一数据块的哈希值和自身所包含的数据记录确定的自身数据块的块哈希值, 数据块的块高基于成块时间的先后顺序单调递增。
一种数据验证系统,应用于中心化存储块链式账本的数据库系统中,所述数据库系统包括协调节点和数据节点,
协调节点接收第一验证指令,确定待验证的目标账本,根据协调节点中存储的块头信息,对所述目标账本中数据块的块头执行块头完整性验证,所述目标账本包括部分账本或者全量账本;
若块头完整性验证通过,根据协调节点中存储的数据块和数据节点的路由信息,确定待验证的目标账本中每个数据块对应的目标数据节点,
发送第二验证指令至目标数据节点,其中,所述第二验证指令中包含数据块标识;
数据节点接收第二验证指令,对数据块标识对应的数据块执行块体完整性验证,生成验证结果,并返回验证结果至协调节点;
协调节点接收验证结果,并确定所述目标账本的完整性;
其中,在所述块链式账本中,数据块包含用于存储元数据的块头,和,用于存储数据记录的块体;除初始数据块以外,每一数据块中包含至少一条数据记录,每一数据块中包含由前一数据块的哈希值和自身所包含的数据记录确定的自身数据块的块哈希值,数据块的块高基于成块时间的先后顺序单调递增。
一种数据验证方法,应用于中心化存储块链式账本的数据库系统中的协调节点中,所述方法包括:
接收第一验证指令,确定待验证的目标账本,根据协调节点中存储的块头信息,对所述目标账本中数据块的块头执行块头完整性验证,所述目标账本包括部分账本或者全量账本;
若块头完整性验证通过,根据协调节点中存储的数据块和数据节点的路由信息,确定待验证的目标账本中每个数据块对应的目标数据节点,
发送第二验证指令至目标数据节点,其中,所述第二验证指令中包含数据块标识。
一种数据验证装置,应用于中心化存储块链式账本的数据库系统中的协调节点中,所述装置包括:
块头验证模块,接收第一验证指令,确定待验证的目标账本,根据协调节点中存储的块头信息,对所述目标账本中数据块的块头执行块头完整性验证,所述目标账本包括 部分账本或者全量账本;
确定模块,若块头完整性验证通过,根据协调节点中存储的数据块和数据节点的路由信息,确定待验证的目标账本中每个数据块对应的目标数据节点,
发送模块,发送第二验证指令至目标数据节点,其中,所述第二验证指令中包含数据块标识。
通过本说明书实施例所提供的方案,当需要到对块链式的账本进行验证时,可以首先只在协调节点中对块头进行完整性验证,验证通过之后,再分发进一步的第二验证指令至各数据节点中,让各数据节点并行执行数据块内部的验证,从而可以大幅提高验证效率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本说明书实施例。
此外,本说明书实施例中的任一实施例并不需要达到上述的全部效果。
附图说明
为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书实施例中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1为本说明书实施例中所涉及的系统架构的示意图;
图2为本说明书实施例所提供的一种关于块头的示意图;
图3为本说明书实施例所提供的应用于数据库系统中的数据验证方法的流程示意图;
图4为本说明书实施例所提供的应用于协调节点中的数据验证方法的流程示意图;
图5为本说明书实施例所提供的应用于协调节点中的数据验证装置的结构示意图;
图6是用于配置本说明书实施例方法的一种设备的结构示意图。
具体实施方式
为了使本领域技术人员更好地理解本说明书实施例中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行详细地描述,显然,所描述 的实施例仅仅是本说明书的一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员所获得的所有其他实施例,都应当属于保护的范围。
以下结合附图,详细说明本说明书各实施例提供的技术方案。
首先需要说明的是,本说明书中的数据库系统是以中心化的形式提供数据服务。在当前的服务器架构中,数据库服务器可以是直接对接的客户端个人用户,也可以是由一些应用服务器对接客户端个人用户,而数据库服务器则对接所述应用服务器。在本说明书实施例所涉及的数据库系统中,一个协调节点可以对应于多个数据节点,如图1所示,图1为本说明书实施例中所涉及的系统架构的示意图。
在本说明书实施例所涉及中心化的数据库系统中,数据块可以通过如下方式预先生成:
接收待存储的数据记录,确定各数据记录的哈希值。此处的待存储的数据记录,可以是客户端个人用户的各种消费记录,也可以是应用服务器基于用户的指令,在执行业务逻辑时产生的业务结果、中间状态以及操作记录等等。具体的业务场景可以包括消费记录、审计日志、供应链条、政府监管记录、医疗记录等等。
当达到预设的成块条件时,确定待写入数据块中的各数据记录,生成包含数据块的哈希值和数据记录的第N个数据块。
所述预设的成块条件包括:待存储的数据记录数量达到数量阈值,例如,每接收到一千条数据记录时,生成一个新数据块,将一千条数据记录写入块中;或者,距离上一次成块时刻的时间间隔达到时间阈值,例如,每隔5分钟,生成一个新数据块,将在这5分钟内接收到的数据记录写入块中。
此处的N指的是数据块的序号,换言之,在本说明书实施例中,数据块是以块链的形式,基于成块时间的顺序先后排列,具有很强的时序特征。其中,数据块的块高基于成块时间的先后顺序单调递增。块高可以是序号,此时第N个数据块的块高即为N;块高也可以其它方式生成。
当N=1时,即此时的数据块为为初始数据块。初始数据块的哈希值和块高基于预设方式给定。例如,初始数据块中不包含数据记录,哈希值则为任一给定的哈希值,块高blknum=0;又例如,初始数据块的生成触发条件与其它数据块的触发条件一致,但是初始数据块的哈希值由对初始数据块中的所有内容取哈希确定。
当N>1时,由于前一数据块的内容和哈希值已经确定,则此时,可以基于前一数据 块(即第N-1个数据块)的哈希值生成当前数据块(第N个数据块)的哈希值,例如,一种可行的方式为,确定每一条将要写入第N个块中的数据记录的哈希值,按照在块中的排列顺序,生成一个默克尔树,将默克尔树的根哈希值和前一数据块的哈希值拼接在一起,再次采用哈希算法,生成当前块的哈希值,以及,还可以根据默克尔树的根哈希值和其它一些元数据(例如版本号、数据块的生成时间戳、父数据块哈希等等)生成当前块的哈希值。
又例如,还可以按照块中数据记录的顺序进行拼接并取哈希得到整体数据记录的哈希值,拼接前一数据块的哈希值和整体数据记录的哈希值,并对拼接得到的字串进行哈希运算,生成数据块的哈希值。
在每一个数据块中,其包含用于存储元数据的块头,和,用于存储数据记录的块体。数据块中的块头可以用于存储诸如父哈希、自身的块哈希值、版本号、数据记录的根哈希、时间戳等等。如图2所示,图2为本说明书实施例所提供的一种关于块头的示意图,当然,块头的格式是可以基于业务需要进行自定义的,其还可以包含一些其它的信息,例如,用于描述数据记录状态的状态数组等等。而块体中则用于存储数据记录的明文或者数据记录的哈希值。
通过前述的数据块的生成方式,每一个数据块通过哈希值确定,数据块的哈希值由数据块中的数据记录的内容、顺序以及前一数据块的哈希值决定。用户可以随时基于数据块的哈希值发起验证,对于数据块中任何内容(包括对于数据块中数据记录内容或者顺序的修改)的修改都会造成在验证时计算得到的数据块的哈希值和数据块生成时的哈希值不一致,而导致验证失败,从而实现了中心化下的不可篡改。
需要说明的是,上述数据块的生成可以是在协调节点中实现,也可以不是在协调节点中实现。例如,数据系统中还可以包含其他业务节点,专门用于处理数据块的生成,以实现业务解耦,每生成一个数据块,即由业务节点发送至协调节点。
在数据库系统中的协调节点获取到数据块之后,则需要对该数据块进行存储。如图3所示,图3是本说明书实施例提供的应用于数据库系统中的一种数据存储方法的流程示意图,该流程具体包括如下步骤:
S301,协调节点获取已经生成的数据块,根据所述数据块的块哈希值确定所述数据块所对应的数据节点,将所述数据块分配至相应的数据节点,建立所述数据块和数据节点的路由信息,保存所述路由信息和数据块的块头信息。
在数据库系统中,一般存在多个数据节点。为此,协调节点首先需要确定一个数据块应该分配至哪一个数据节点。具体而言,可以根据数据块的哈希值进行分配。
如前所述,数据块的哈希值可以根据父哈希和自身数据记录的哈希联合计算得到的,并存储在块头中。哈希值(hash values)是使用哈希函数(hash function)计算得到的值,支持的算法包括:MACTripleDES、MD5、RIPEMD160、SHA1、SHA256、SHA384、SHA512等等,总之,一个数据块的块哈希值是一段较短的字符串,可以唯一的标识该数据块,数据块中任何内容的些微改动都会造成数据块哈希值的有很大变化。
而数据节点一般而言个数是固定的,每个数据节点可以有一个相应的编号。因此,可以将哈希值转换为对应的数值,并对数据节点的数量进行取模计算,因此,可以根据取模的结果确定所述数据块所对应的数据节点。
例如,一个数据块的块哈希值进行数值转换后为100110120,数据节点共有10个,编号分别从0至9,则可知块哈希值对于取模的结果为0,则可以确定0号树节点为该块哈希值所对应的数据节点,可以将该数据块发送至0号数据节点进行存储。
由于数据块的块哈希值一般有几百位(位数基于哈希算法确定),因此,还可以从块哈希值中选取指定的若干位(例如,最后3位)进行数值转换,以进行取模运算从而确定该数据块所对应的数据节点,从而可以降低计算量。
又例如,还可以将所有的数据节点排列在收尾相接的哈希环上,例如,从0至2^32大小的哈希环上,而每个节点可以根据自身的地址或者设备标识所对应的哈希值被定位至哈希环上的某个点。每个块哈希值可以基于同样的原理被被定位至哈希环上的某个位置,从而可以顺时针或者逆时针时间的找到最先遇到的数据节点为该块哈希值所对应的数据节点。
在确定了一个数据块所对应的数据节点之后,即可以建立一条关于该数据块的路由信息,并写入协调节点中的路由表。具体而言,一个路由表可以包含有数据块块高、数据块的块哈希、数据块对应的数据节点编号等等信息,并且存储于本地。
此外,除了保存所述路由信息外,协调节点中还应保存每一数据块的块头信息。
S303,所述数据节点接收协调节点所发送的数据块,并存储。
通过本说明书实施例所提供的方案,根据数据块的块哈希建立数据块和数据节点的路由关系,对块链式的账本以数据块的粒度进行分布式存储,并且将块头信息等元数据保存在协调节点中,从而可以降低单一节点设备的存储压力,并且,有利于查询、验证 等操作多进程进行,提高效率更为便利。
例如,假设数据节点有N个,以及,数据块在数据节点上分布大致均匀。则基于本说明书实施例所提供的方案,需要对账本进行全量验证时,可以将对于数据块的内部验证分配到N个数据节点上进行,这相比于常规的从头到尾的串行验证,效率可以提高N倍。
当目标数据节点中,时数据块标识可以以块头中所包含的块高或者数据块的块哈希作为标识。在一种实施例中,协调节点还可以仅发送数据块的块体和标识至数据节点中,此时,在数据节点则可以只需要存储块体、块体标识和用于验证的信息即可。数据块标识可以有多种,例如,数据块的块高,和/或,数据块的块哈希等等。在这种方式下协调节点中的路由信息中包含有块体的标识和数据节点编号,上述方式可以节约协调节点的数据传输开销和数据节点的存储空间。用于验证的信息则是指用于验证该数据块完整性的信息,具体可以包括数据块的哈希值以及父数据块的哈希值。
在上述存储方式的基础上,当接收到用户发起的验证指令时。数据库系统则可以进行并行式的验证。如图3所示,图3为本说明书实施例所提供的数据验证方法的流程示意图,应用于中心化存储块链式账本的数据库系统中,所述数据库系统包括协调节点和数据节点,包括:
S301,协调节点接收第一验证指令,确定待验证的目标账本,根据协调节点中存储的块头信息,对所述目标账本中数据块的块头执行块头完整性验证,所述目标账本包括部分账本或者全量账本。
此处的第一验证指令可以是一个用户输入的操作指令。例如,VERIFY(‘khash’,&v,-1),其中的‘khash’即为用户输入的数据块的哈希值,系统可以根据该哈希值确定出对应的数据块,从而可以将从该数据块至“-1数据块”(即,初始数据块)之间的所有数据块作为目标账本。又例如,用户可以直接输入指定的数据块的块高:VERIFY(1,1000),从而将前1000个数据块作为目标账本。又例如,用户可以输入指定的时间点VERIFY(T1,T2),从而可以对T1至T2之间所生成的数据块作为目标账本进行验证,以及,目标账本还可以是当前的全量账本。
此处的验证指的是完整性验证。如前所述,在本说明书实施例中,由于一个数据块的哈希值时基于前一数据块的哈希值和自身数据块的数据记录所按确定的哈希值共同得到,对于数据记录的任意改动都会造成数据块的哈希值的变动。
因此,用户可以随时发起对于数据块是否完整或者正确的完整性验证:验证存储于块头中的该数据块的块哈希是否正确。具体方式即为:从目标账本的第一个数据块开始,按照生成顺序,根据前一数据块的块哈希和该数据块的数据记录所对应的默克尔树的根哈希,生成本数据块的块哈希,并且与预先保存的块头信息中的数据块的块哈希进行对比即可。这种粒度的验证方式下,由于只需要块头的信息,因此可以只在存储有块头信息的协调节点中进行就可以。
S303,若块头完整性验证通过,根据协调节点中存储的数据块和数据节点的路由信息,确定待验证的目标账本中每个数据块对应的目标数据节点。
如果基于块头信息的验证都失败,那么,显然此时无需进一步的验证了,返回完整性验证失败即可。
在块头完整性验证通过以后,则可以进一步的进行块体内的完整性验证。由于在上述存储方式中,具体的数据块的信息并不是存储在协调节点中,而是分布式的存储在数据节点中。因此,需要将进一步的验证工作进行分配。具体的,由于目标账本中包含有多个数据块,每个数据块在存储的时候已经建立相关的路由信息,因此,可以分别确定每个数据块所对应的目标数据节点。对于任一数据块而言,目标数据节点指的是存储该数据块的数据节点。
协调节点基于预先预存的路由信息,可以得知每个数据块存储在哪个数据节点上,由此,可以分别确定出多个目标数据节点,所述多个目标数据节点中存储了目标账本中的全体数据块。
S305,发送第二验证指令至目标数据节点,其中,所述第二验证指令中包含数据块标识。
进而,针对任一已经被确定的目标数据节点,协调节点可以生成相应的第二验证指令并发送,每个第二验证指令中包含有数据块标识,其中,上述数据块标识所对应的数据块应当被存储在该目标数据节点中。数据块标识可以是块高或者数据块的块哈希,其应当与数据节点中存储的数据块标识的类型相同。
在上述过程中,由于目标数据节点存在多个,每个数据节点均会接收到一个第二验证指令。
S307,数据节点接收第二验证指令,对数据块标识对应的数据块执行块体完整性验证,生成验证结果,并返回验证结果至协调节点。
任一数据节点在接收到第二验证指令后,即可以根据数据块标识确定出需要在自身进行验证的数据块。具体的验证方式即为获取每一条数据记录的哈希值,计算得到该该数据块内的数据记录的默克尔树的根哈希值,进而根据之前存储的父哈希值计算得到该数据块的哈希值,并与之前存储的该数据块的哈希值进行对比,一致则验证成功,不一致则验证失败,并且返回验证结果至协调节点。
S309,协调节点接收验证结果,并确定所述目标账本的完整性。
验证结果需要全部都是验证成功,协调节点才可确定账本完整。其中若有任一结果是验证失败,则确定账本不完整。
通过本说明书实施例所提供的方案,当需要到对块链式的账本进行验证时,可以首先只在协调节点中对块头进行完整性验证,验证通过之后,再分发进一步的第二验证指令至各数据节点中,让各数据节点并行执行数据块内部的验证,从而可以大幅提高验证效率。
在一个实施例中,协调节点在进行块头的完整性验证时,还可以基于时间公正机构所生成授时证书进行。授时证书可以基于如下方式预先生成:协调节点确定需要进行授时认证的目标账本,所述目标账本中至少包含一个数据块,或者多个块高连续的数据块;按照所述目标账本中数据块的块高的顺序,生成对应于所述目标账本的默克尔树,基于各数据块的块哈希确定所述默克尔树的根哈希;将所述默克尔树的根哈希和数据块的相关信息发送至时间公正机构,其中,所述数据块的相关信息包括起始块高、结束块高或者数据块的数量;接收时间公正机构所返回的对应于所述目标账本的包含可信时间戳和时间公正机构签名的的授时证书。在一个授时证书中包括对应的部分账本的起点数据块高、终点数据块高、可信时间戳和所述部分账本的根哈希。
换言之,一个授时证书是用于确认一段账本的生成时间在时间公正机构所给出的时间戳之前。时间公正机构可以是国家授时中心,或者国家授时中心所授权的相关授时机构。
具体而言,在第一验证指令可以包含有一个时间点,或者,由两个时间点所确定的时间区间。协调节点可以根据授时证书中的可信时间戳与第一验证指令中的时间点进行匹配。例如,在第一验证指令中包含有一个时间点时,对应的授时证书可以是可信时间戳与该时间点间隔最小的授时证书;在第一验证指令中包含有两个时间点所确定的时间区间时,对应的授时证书可以是可信时间戳落入该区间的所有授时证书。
基于授时证书的块头完整性验证时,验证的数据块的范围由授时证书中所包含的起始块高和结束块高确定。验证的方式即为构建从起始块高至结束块高的默克尔树,并计算根哈希,与授时证书中的根哈希进行对比即可。
当授时证书存在多个时,可以按照授时证书中的可信时间戳的先后顺序依次对授时证书所对应的部分账本进行块头完整性验证。
在另一个实施例中,协调节点接收到对于账本的全量验证指令。此时,全量验证指令中无需包含时间点,协调节点可以基于全部的授时证书,对全量账本进行块头完整性验证。
需要说明的是,由于授时证书也是存储在协调节点中,因此,基于授时证书的块头完整性验证也可以只在协调节点中进行,无需调用数据节点。
在一个实施例中,协调节点在接收数据节点所返回的对于数据块的验证结果之前,可以生成一个在协调节点中生成一个完整性数组,用于记录数据节点对于所述目标账本中数据块的验证结果。而数据节点在生成验证结果时,可以返回用于表征失败或者成功的特征值。例如,验证成功返回1,验证失败返回0。从而完整性数组中的元素的取值要么为1,要么为0。当完整性数组中存在任一元素取值为0时,则协调节点即可确认验证失败,而当完整性数组中所有元素取值为1时,协调节点才确认验证成功,通过完整性数组记录每个数据块的验证状态可以更便利的统计验证结果。
对应的,本说明书实施例还提供一种数据验证系统,应用于中心化存储块链式账本的数据库系统中,所述数据库系统包括协调节点和数据节点,
协调节点接收第一验证指令,确定待验证的目标账本,根据协调节点中存储的块头信息,对所述目标账本中数据块的块头执行块头完整性验证,所述目标账本包括部分账本或者全量账本;若块头完整性验证通过,根据协调节点中存储的数据块和数据节点的路由信息,确定待验证的目标账本中每个数据块对应的目标数据节点,发送第二验证指令至目标数据节点,其中,所述第二验证指令中包含数据块标识;
数据节点接收第二验证指令,对数据块标识对应的数据块执行块体完整性验证,生成验证结果,并返回验证结果至协调节点;
协调节点接收验证结果,并确定所述目标账本的完整性;
其中,在所述块链式账本中,数据块包含用于存储元数据的块头,和,用于存储数据记录的块体;除初始数据块以外,每一数据块中包含至少一条数据记录,每一数据块 中包含由前一数据块的哈希值和自身所包含的数据记录确定的自身数据块的块哈希值,数据块的块高基于成块时间的先后顺序单调递增。
进一步地,在所述数据库系统中,数据块通过如下方式预先存储:协调节点获取已经生成的数据块,根据所述数据块的块哈希值确定所述数据块所对应的数据节点,将所述数据块分配至相应的数据节点,建立所述数据块和数据节点的路由信息,保存所述路由信息和数据块的块头信息;所述数据节点接收协调节点所发送的数据块,并存储。
进一步地,在所述数据库系统中,协调节点获取所述数据块中的块头和块体,将所述块体分配至相应的数据节点;相应的,协调节点建立所述块体和数据节点的路由信息;相应的,所述数据节点接收协调节点所发送的块体。
进一步地,在所述数据库系统中,数据块通过如下方式预先生成:接收待存储的数据记录,确定各数据记录的哈希值;当达到预设的成块条件时,确定待写入数据块中的各数据记录,生成包含数据块的哈希值和数据记录的第N个数据块,具体包括:
当N=1时,初始数据块的哈希值和块高基于预设方式给定;
当N>1时,根据待写入数据块中的各数据记录和第N-1个数据块的哈希值确定第N个数据块的哈希值,生成包含第N个数据块的哈希值、各数据记录和数据块的成块时间的第N个数据块,其中,数据块的块高基于成块时间的先后顺序单调递增。
进一步地,在所述数据库系统中,协调节点接收第一验证指令中所包含的时间点,获取所述时间点所对应的授时证书,将所述授时证书所对应的部分账本确定为待验证的目标账本,其中,所述授时证书中包括所述对应的部分账本的起点数据块高、终点数据块高、可信时间戳和所述部分账本的根哈希;相应的,协调节点根据所述授时证书和所述存储的块头信息,对所述部分账本执行块头完整性验证。
进一步地,在所述数据库系统中,在协调节点接收验证结果之前,协调节点生成用于记录所述目标账本中数据块的验证结果的完整性数组,其中,所述完整性数组中每一个元素对应于一个数据块;相应的,数据节点生成验证结果,并返回验证结果至协调节点,包括:数据节点生成表征验证失败或者成功的特征值至协调节点;相应的,协调节点接收验证结果,并确定所述目标账本的完整性,包括:当所述完整性数组中任一元素的取值为表征验证失败的特征值时,确定目标账本不完整。
对应的,本说明书实施例还提供一种数据验证方法,应用于中心化存储块链式账本的数据库系统中的协调节点中,如图4所示,图4为本说明书实施例所提供的应用 于协调节点中的数据验证方法的流程示意图,包括:
S401,接收第一验证指令,确定待验证的目标账本,根据协调节点中存储的块头信息,对所述目标账本中数据块的块头执行块头完整性验证,所述目标账本包括部分账本或者全量账本;
S403,若块头完整性验证通过,根据协调节点中存储的数据块和数据节点的路由信息,确定待验证的目标账本中每个数据块对应的目标数据节点,
S405,发送第二验证指令至目标数据节点,其中,所述第二验证指令中包含数据块标识;
S407,接收目标数据节点所返回的对于数据块的验证结果,根据所述验证结果确定目标账本的完整性;
其中,在所述块链式账本中,数据块包含用于存储元数据的块头,和,用于存储数据记录的块体;除初始数据块以外,每一数据块中包含至少一条数据记录,每一数据块中包含由前一数据块的哈希值和自身所包含的数据记录确定的自身数据块的块哈希值,数据块的块高基于成块时间的先后顺序单调递增。
对应的,本说明书实施例还提供一种数据验证装置,应用于中心化存储块链式账本的数据库系统中的协调节点中,如图5所示,图5为本说明书实施例所提供的应用于协调节点中的数据验证装置的结构示意图,包括:
块头验证模块501,接收第一验证指令,确定待验证的目标账本,根据协调节点中存储的块头信息,对所述目标账本中数据块的块头执行块头完整性验证,所述目标账本包括部分账本或者全量账本;
确定模块503,若块头完整性验证通过,根据协调节点中存储的数据块和数据节点的路由信息,确定待验证的目标账本中每个数据块对应的目标数据节点,
发送模块505,发送第二验证指令至目标数据节点,其中,所述第二验证指令中包含数据块标识;
接收模块507,接收目标数据节点所返回的对于数据块的验证结果,根据所述验证结果确定目标账本的完整性。
其中,在所述块链式账本中,数据块包含用于存储元数据的块头,和,用于存储数据记录的块体;除初始数据块以外,每一数据块中包含至少一条数据记录,每一数 据块中包含由前一数据块的哈希值和自身所包含的数据记录确定的自身数据块的块哈希值,数据块的块高基于成块时间的先后顺序单调递增。
本说明书实施例还提供一种计算机设备,其至少包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,处理器执行所述程序时实现图4所示的数据验证方法。
图6示出了本说明书实施例所提供的一种更为具体的计算设备硬件结构示意图,该设备可以包括:处理器1010、存储器1020、输入/输出接口1030、通信接口1040和总线1050。其中处理器1010、存储器1020、输入/输出接口1030和通信接口1040通过总线1050实现彼此之间在设备内部的通信连接。
处理器1010可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。
存储器1020可以采用ROM(Read Only Memory,只读存储器)、RAM(Random Access Memory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器1020可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器1020中,并由处理器1010来调用执行。
输入/输出接口1030用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
通信接口1040用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信。
总线1050包括一通路,在设备的各个组件(例如处理器1010、存储器1020、输入/输出接口1030和通信接口1040)之间传输信息。
需要说明的是,尽管上述设备仅示出了处理器1010、存储器1020、输入/输出接口1030、通信接口1040以及总线1050,但是在具体实施过程中,该设备还可以包括实 现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。
本说明书实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现图4所示的数据验证方法。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本说明书实施例可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本说明书实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本说明书实施例各个实施例或者实施例的某些部分所述的方法。
上述实施例阐明的系统、方法、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于方法实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的方法实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,在实施本说明书实施例方案时可以把各模块的功能在同一个或多个软件和/或硬件中实现。也可以根据实际的需要选 择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅是本说明书实施例的具体实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本说明书实施例原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本说明书实施例的保护范围。

Claims (15)

  1. 一种数据验证方法,应用于中心化存储块链式账本的数据库系统中,所述数据库系统包括协调节点和数据节点,所述方法包括:
    协调节点接收第一验证指令,确定待验证的目标账本,根据协调节点中存储的块头信息,对所述目标账本中数据块的块头执行块头完整性验证,所述目标账本包括部分账本或者全量账本;
    若块头完整性验证通过,根据协调节点中存储的数据块和数据节点的路由信息,确定待验证的目标账本中每个数据块对应的目标数据节点;
    发送第二验证指令至目标数据节点,其中,所述第二验证指令中包含数据块标识;
    数据节点接收第二验证指令,对数据块标识对应的数据块执行块体完整性验证,生成验证结果,并返回验证结果至协调节点;
    协调节点接收验证结果,并确定所述目标账本的完整性;
    其中,在所述块链式账本中,数据块包含用于存储元数据的块头,和,用于存储数据记录的块体;除初始数据块以外,每一数据块中包含至少一条数据记录,每一数据块中包含由前一数据块的哈希值和自身所包含的数据记录确定的自身数据块的块哈希值,数据块的块高基于成块时间的先后顺序单调递增。
  2. 如权利要求1所述的方法,在所述数据库系统中,数据块通过如下方式预先存储:
    协调节点获取已经生成的数据块,根据所述数据块的块哈希值确定所述数据块所对应的数据节点,将所述数据块分配至相应的数据节点,建立所述数据块和数据节点的路由信息,保存所述路由信息和数据块的块头信息;
    所述数据节点接收协调节点所发送的数据块,并存储。
  3. 如权利要求2所述的方法,协调节点将所述数据块分配至相应的数据节点,包括:
    协调节点获取所述数据块中的块头和块体,将所述块体分配至相应的数据节点;
    相应的,建立所述数据块和数据节点的路由信息,包括:建立所述块体和数据节点的路由信息;
    相应的,所述数据节点接收协调节点所发送的数据块,包括:所述数据节点接收协调节点所发送的块体。
  4. 如权利要求2所述的方法,在所述数据库系统中,数据块通过如下方式预先生成:
    接收待存储的数据记录,确定各数据记录的哈希值;
    当达到预设的成块条件时,确定待写入数据块中的各数据记录,生成包含数据块的哈希值和数据记录的第N个数据块,具体包括:
    当N=1时,初始数据块的哈希值和块高基于预设方式给定;
    当N>1时,根据待写入数据块中的各数据记录和第N-1个数据块的哈希值确定第N个数据块的哈希值,生成包含第N个数据块的哈希值、各数据记录和数据块的成块时间的第N个数据块,其中,数据块的块高基于成块时间的先后顺序单调递增。
  5. 如权利要求1所述的方法,协调节点接收第一验证指令,确定待验证的目标账本,包括:
    协调节点接收第一验证指令中所包含的时间点,获取所述时间点所对应的授时证书,将所述授时证书所对应的部分账本确定为待验证的目标账本,其中,所述授时证书中包括所述对应的部分账本的起点数据块高、终点数据块高、可信时间戳和所述部分账本的根哈希;
    相应的,根据协调节点中存储的块头信息,对所述目标账本中数据块的块头执行块头完整性验证,包括:根据所述授时证书和所述存储的块头信息,对所述部分账本执行块头完整性验证。
  6. 如权利要求1所述的方法,在协调节点接收验证结果之前,所述方法还包括:
    协调节点生成用于记录所述目标账本中数据块的验证结果的完整性数组,其中,所述完整性数组中每一个元素对应于一个数据块;
    相应的,数据节点生成验证结果,并返回验证结果至协调节点,包括:数据节点生成表征验证失败或者成功的特征值至协调节点;
    相应的,协调节点接收验证结果,并确定所述目标账本的完整性,包括:当所述完整性数组中任一元素的取值为表征验证失败的特征值时,确定目标账本不完整。
  7. 一种数据验证系统,应用于中心化存储块链式账本的数据库系统中,所述数据库系统包括协调节点和数据节点,
    协调节点接收第一验证指令,确定待验证的目标账本,根据协调节点中存储的块头信息,对所述目标账本中数据块的块头执行块头完整性验证,所述目标账本包括部分账本或者全量账本;
    若块头完整性验证通过,根据协调节点中存储的数据块和数据节点的路由信息,确定待验证的目标账本中每个数据块对应的目标数据节点,
    发送第二验证指令至目标数据节点,其中,所述第二验证指令中包含数据块标识;
    数据节点接收第二验证指令,对数据块标识对应的数据块执行块体完整性验证,生成验证结果,并返回验证结果至协调节点;
    协调节点接收验证结果,并确定所述目标账本的完整性;
    其中,在所述块链式账本中,数据块包含用于存储元数据的块头,和,用于存储数据记录的块体;除初始数据块以外,每一数据块中包含至少一条数据记录,每一数据块中包含由前一数据块的哈希值和自身所包含的数据记录确定的自身数据块的块哈希值,数据块的块高基于成块时间的先后顺序单调递增。
  8. 如权利要求7所述的系统,在所述数据库系统中,数据块通过如下方式预先存储:
    协调节点获取已经生成的数据块,根据所述数据块的块哈希值确定所述数据块所对应的数据节点,将所述数据块分配至相应的数据节点,建立所述数据块和数据节点的路由信息,保存所述路由信息和数据块的块头信息;
    所述数据节点接收协调节点所发送的数据块,并存储。
  9. 如权利要求8所述的系统,
    协调节点获取所述数据块中的块头和块体,将所述块体分配至相应的数据节点;相应的,协调节点建立所述块体和数据节点的路由信息;相应的,所述数据节点接收协调节点所发送的块体。
  10. 如权利要求8所述的系统,在所述数据库系统中,数据块通过如下方式预先生成:接收待存储的数据记录,确定各数据记录的哈希值;当达到预设的成块条件时,确定待写入数据块中的各数据记录,生成包含数据块的哈希值和数据记录的第N个数据块,具体包括:
    当N=1时,初始数据块的哈希值和块高基于预设方式给定;
    当N>1时,根据待写入数据块中的各数据记录和第N-1个数据块的哈希值确定第N个数据块的哈希值,生成包含第N个数据块的哈希值、各数据记录和数据块的成块时间的第N个数据块,其中,数据块的块高基于成块时间的先后顺序单调递增。
  11. 如权利要求7所述的系统,
    协调节点接收第一验证指令中所包含的时间点,获取所述时间点所对应的授时证书,将所述授时证书所对应的部分账本确定为待验证的目标账本,其中,所述授时证书中包括所述对应的部分账本的起点数据块高、终点数据块高、可信时间戳和所述部分账本的根哈希;
    相应的,协调节点根据所述授时证书和所述存储的块头信息,对所述部分账本执行 块头完整性验证。
  12. 如权利要求7所述的系统,在协调节点接收验证结果之前,
    协调节点生成用于记录所述目标账本中数据块的验证结果的完整性数组,其中,所述完整性数组中每一个元素对应于一个数据块;
    相应的,数据节点生成验证结果,并返回验证结果至协调节点,包括:数据节点生成表征验证失败或者成功的特征值至协调节点;
    相应的,协调节点接收验证结果,并确定所述目标账本的完整性,包括:当所述完整性数组中任一元素的取值为表征验证失败的特征值时,确定目标账本不完整。
  13. 一种数据验证方法,应用于中心化存储块链式账本的数据库系统中的协调节点中,所述方法包括:
    接收第一验证指令,确定待验证的目标账本,根据协调节点中存储的块头信息,对所述目标账本中数据块的块头执行块头完整性验证,所述目标账本包括部分账本或者全量账本;
    若块头完整性验证通过,根据协调节点中存储的数据块和数据节点的路由信息,确定待验证的目标账本中每个数据块对应的目标数据节点,
    发送第二验证指令至目标数据节点,其中,所述第二验证指令中包含数据块标识;
    接收目标数据节点所返回的对于数据块的验证结果,根据所述验证结果确定目标账本的完整性。
  14. 一种数据验证装置,应用于中心化存储块链式账本的数据库系统中的协调节点中,所述装置包括:
    块头验证模块,接收第一验证指令,确定待验证的目标账本,根据协调节点中存储的块头信息,对所述目标账本中数据块的块头执行块头完整性验证,所述目标账本包括部分账本或者全量账本;
    确定模块,若块头完整性验证通过,根据协调节点中存储的数据块和数据节点的路由信息,确定待验证的目标账本中每个数据块对应的目标数据节点,
    发送模块,发送第二验证指令至目标数据节点,其中,所述第二验证指令中包含数据块标识;
    接收模块,接收目标数据节点所返回的对于数据块的验证结果,根据所述验证结果确定目标账本的完整性。
  15. 一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,所述处理器执行所述程序时实现如权利要求13所述的方法。
PCT/CN2020/071219 2019-04-04 2020-01-09 数据验证方法、系统、装置及设备 Ceased WO2020199713A1 (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US16/815,902 US11055277B2 (en) 2019-04-04 2020-03-11 Integrity verification method, apparatus, and system and device for data in a blockchain-type ledger
US17/365,772 US20210326328A1 (en) 2019-04-04 2021-07-01 Integrity verification method, apparatus, and system and device for data in a blockchain-type ledger

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201910273141.3 2019-04-04
CN201910273141.3A CN110147685B (zh) 2019-04-04 2019-04-04 数据验证方法、系统、装置及设备

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US16/815,902 Continuation US11055277B2 (en) 2019-04-04 2020-03-11 Integrity verification method, apparatus, and system and device for data in a blockchain-type ledger

Publications (1)

Publication Number Publication Date
WO2020199713A1 true WO2020199713A1 (zh) 2020-10-08

Family

ID=67589738

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2020/071219 Ceased WO2020199713A1 (zh) 2019-04-04 2020-01-09 数据验证方法、系统、装置及设备

Country Status (2)

Country Link
CN (2) CN110147685B (zh)
WO (1) WO2020199713A1 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114500433A (zh) * 2022-01-21 2022-05-13 北京送好运信息技术有限公司 基于区块链与默克尔树的多邮件数据保全方法
CN115757415A (zh) * 2022-11-24 2023-03-07 北京火山引擎科技有限公司 一种数据处理方法、装置、计算机设备及存储介质
CN116662443A (zh) * 2023-05-22 2023-08-29 中国人民解放军战略支援部队信息工程大学 基于状态数据协作式的联盟链账本扩展存储方法
CN118394719A (zh) * 2024-06-26 2024-07-26 浙江大华技术股份有限公司 一种数据比对方法、电子设备及存储介质

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11055277B2 (en) 2019-04-04 2021-07-06 Advanced New Technologies Co., Ltd. Integrity verification method, apparatus, and system and device for data in a blockchain-type ledger
US10917231B2 (en) 2019-04-04 2021-02-09 Advanced New Technologies Co., Ltd. Data storage method, apparatus, system and device
CN110147685B (zh) * 2019-04-04 2020-10-23 创新先进技术有限公司 数据验证方法、系统、装置及设备
CN110717172B (zh) * 2019-09-25 2021-04-27 蚂蚁区块链科技(上海)有限公司 一种块链式账本中的权限移交方法、装置及设备
CN114443641B (zh) * 2020-11-03 2025-04-29 苏州超块链信息科技有限公司 一种分布式数据的多维拓扑结构构建方法和析构方法
CN113434603A (zh) * 2021-02-07 2021-09-24 支付宝(杭州)信息技术有限公司 一种基于可信账本数据库的数据存储方法、装置及系统
CN115082229B (zh) * 2021-03-16 2025-06-10 网联清算有限公司 分布式对账方法、服务器、装置及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107657438A (zh) * 2017-09-18 2018-02-02 联动优势科技有限公司 一种区块链生成方法、数据验证方法、节点及系统
CN109242500A (zh) * 2018-09-20 2019-01-18 百度在线网络技术(北京)有限公司 区块链交易有效性验证方法、装置及存储介质
US20190036932A1 (en) * 2017-07-26 2019-01-31 International Business Machines Corporation Blockchain authentication via hard/soft token verification
CN110147685A (zh) * 2019-04-04 2019-08-20 阿里巴巴集团控股有限公司 数据验证方法、系统、装置及设备

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9652389B2 (en) * 2014-07-16 2017-05-16 ClearSky Data Hash discriminator process for hierarchical cache system
US10230526B2 (en) * 2014-12-31 2019-03-12 William Manning Out-of-band validation of domain name system records
KR101786006B1 (ko) * 2016-01-29 2017-10-17 한국과학기술원 머클 트리 기반 메모리 무결성 검증 방법 및 장치
KR20180005542A (ko) * 2016-07-06 2018-01-16 주식회사 케이티 데이터 무결성 검증을 위한 장치 및 방법
CN106452785B (zh) * 2016-09-29 2019-05-17 财付通支付科技有限公司 区块链网络、分支节点及区块链网络应用方法
EP3520317B1 (en) * 2016-10-03 2021-05-12 Visa International Service Association Network topology with multiple data centers for building blockchain blocks
CN107317672A (zh) * 2017-05-10 2017-11-03 广东网金控股股份有限公司 一种轻量终端机区块链系统
CN107247773B (zh) * 2017-06-07 2018-05-15 北京邮电大学 一种基于区块链的在分布式数据库中进行交易查询的方法
CN107909369A (zh) * 2017-10-13 2018-04-13 布比(北京)网络技术有限公司 基于跨链交易的共识方法、装置和存储介质
CN108563771B (zh) * 2018-04-20 2020-06-09 中国科学院合肥物质科学研究院 基于区块链的大文件管理系统及方法
CN108596588B (zh) * 2018-04-28 2022-05-20 百度在线网络技术(北京)有限公司 一种区块数据的处理方法、装置、计算设备和存储介质
CN108961052B (zh) * 2018-06-25 2022-02-22 百度在线网络技术(北京)有限公司 区块链数据的验证方法、存储方法、装置、设备和介质
CN108924130B (zh) * 2018-07-02 2021-05-07 上海达家迎信息科技有限公司 一种区块数据的验证方法、装置、设备和存储介质
CN109033841B (zh) * 2018-07-12 2022-02-01 杨城 一种写验分离的弱中心化可信数据存储系统和管理方法
CN109145651B (zh) * 2018-08-22 2021-12-28 何晓行 一种数据处理方法及装置
CN109194486A (zh) * 2018-08-23 2019-01-11 东北大学 可信赖协同模型及数据模型、元数据存储及协同验证算法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190036932A1 (en) * 2017-07-26 2019-01-31 International Business Machines Corporation Blockchain authentication via hard/soft token verification
CN107657438A (zh) * 2017-09-18 2018-02-02 联动优势科技有限公司 一种区块链生成方法、数据验证方法、节点及系统
CN109242500A (zh) * 2018-09-20 2019-01-18 百度在线网络技术(北京)有限公司 区块链交易有效性验证方法、装置及存储介质
CN110147685A (zh) * 2019-04-04 2019-08-20 阿里巴巴集团控股有限公司 数据验证方法、系统、装置及设备

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114500433A (zh) * 2022-01-21 2022-05-13 北京送好运信息技术有限公司 基于区块链与默克尔树的多邮件数据保全方法
CN114500433B (zh) * 2022-01-21 2024-04-19 北京送好运信息技术有限公司 基于区块链与默克尔树的多邮件数据保全方法
CN115757415A (zh) * 2022-11-24 2023-03-07 北京火山引擎科技有限公司 一种数据处理方法、装置、计算机设备及存储介质
CN116662443A (zh) * 2023-05-22 2023-08-29 中国人民解放军战略支援部队信息工程大学 基于状态数据协作式的联盟链账本扩展存储方法
CN118394719A (zh) * 2024-06-26 2024-07-26 浙江大华技术股份有限公司 一种数据比对方法、电子设备及存储介质

Also Published As

Publication number Publication date
CN112487492A (zh) 2021-03-12
CN112487492B (zh) 2023-11-17
CN110147685A (zh) 2019-08-20
CN110147685B (zh) 2020-10-23

Similar Documents

Publication Publication Date Title
CN110147685B (zh) 数据验证方法、系统、装置及设备
US11055277B2 (en) Integrity verification method, apparatus, and system and device for data in a blockchain-type ledger
US11283622B2 (en) Signature verification for a blockchain ledger
CN110163006B (zh) 一种块链式账本中的签名验证方法、系统、装置及设备
WO2020199711A1 (zh) 数据存储方法、系统、装置及设备
US10911251B2 (en) Blockchain ledger authentication
US20200177390A1 (en) Providing data verification in a blockchain ledger
US10917231B2 (en) Data storage method, apparatus, system and device
US10979233B2 (en) Monitoring time certificate generation requests
CN110190963B (zh) 一种针对授时证书生成请求的监控方法、装置及设备
US10790968B2 (en) Ledger verification method and apparatus, and device
CN110147410B (zh) 一种块链式账本中的数据验证方法、系统、装置及设备
WO2020244236A1 (zh) 一种块链式账本的授时认证方法、装置及设备
WO2020199710A1 (zh) 一种账本的验证方法、装置及设备
CN110347748B (zh) 一种基于倒排索引的数据验证方法、系统、装置及设备
HK40047904B (zh) 数据验证方法、系统及设备
HK40047904A (zh) 数据验证方法、系统及设备
CN111444193B (zh) 一种块链式账本中的权重分配方法、装置及设备
CN112380573B (zh) 一种块链式账本中的数字签名方法、装置及设备
CN112307011B (zh) 一种数据存储方法、装置及设备
HK40045513B (zh) 一种块链式账本中的数字签名方法、装置及设备
HK40045513A (zh) 一种块链式账本中的数字签名方法、装置及设备

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: 20782671

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: 20782671

Country of ref document: EP

Kind code of ref document: A1