Database verification method based on polynomial commitment and memory correctness detection

By generating log records and state commitments in the database, and verifying the data processing process of the database using polynomial commitments and index polynomials, the problem of inability to verify the correctness of data processing in the prior art is solved, and trustworthy verification and efficient verification of data processing results are achieved.

CN120492448APending Publication Date: 2025-08-15SHENZHEN INST OF ADVANCED TECH CHINESE ACAD OF SCI
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202510360058.5
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-03-25
Publication Date
2025-08-15

AI Technical Summary

Technical Problem

The existing database cannot verify the correctness of the data processing process, and the user cannot confirm whether the data processing is completed accurately.

Method used

Using a method based on polynomial commitment and memory correctness detection, the initial and final state of the database is verified by generating log records and state commitments, and using polynomial commitments and index polynomials for verification to ensure the correctness of the data processing process.

Benefits of technology

It realizes trustworthy verification of the database data processing process, ensures the accuracy and completeness of the data processing results, reduces the verification computing burden, and is suitable for clients of various computing resources.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure HDA0005328375400000011
    Figure HDA0005328375400000011
  • Figure HDA0005328375400000012
    Figure HDA0005328375400000012
  • Figure HDA0005328375400000021
    Figure HDA0005328375400000021
Patent Text Reader

Abstract

The embodiment of the invention provides a database verification method based on polynomial commitment and memory correctness detection, the method is applied to a proving party, and the method comprises the following steps: determining an initial state and a final state of data in a database in a data processing process, and adding the initial state into a read set of a memory, adding the final state into a write set of a memory; generating state commitments of the initial state and the final state, and sending the state commitments to a verification party; receiving a first challenge value of the verification party, processing the log records in the read set and the write set in the memory based on the first challenge value, obtaining a log processing result, and feeding back the log processing result to the verification party; the read set and the write set are sent to a verification party, and the verification party verifies the correctness of the read set and the write set based on the state commitment and the log processing result to determine the correctness of memory verification; according to the scheme, the memory correctness and the execution correctness in database data processing can be verified.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the field of computer information technology, and in particular to a database verification method based on polynomial commitment and memory correctness detection. Background Art

[0002] Existing databases usually query the index tree to determine the address corresponding to the data based on the user's data processing request, and then perform corresponding processing on the queried data, such as reading, modifying, deleting, etc. However, users cannot understand whether the data processing process is correct. Summary of the Invention

[0003] The embodiments of the present application provide a database verification method based on polynomial commitment and memory correctness detection, which can record the initial state and final state of the database and generate corresponding log records for verification by the verifier, so that the verifier can verify whether the data processing process is correct.

[0004] The technical solution is as follows:

[0005] In the first aspect, the present application provides a database verification method based on polynomial commitment and memory correctness detection, which is applied to a prover, and includes: determining the initial state and final state of data in the database during data processing, and adding the initial state to a read set of the memory, and adding the final state to a write set of the memory, wherein the read set is used to store log records generated when accessing data in the database, and the write set is used to store log records generated when reading or changing data in the database; generating a state commitment of the initial state and the final state, and sending it to a verifier; receiving a first challenge value from the verifier, and processing the log records in the read set and the write set in the memory based on the first challenge value, obtaining a log processing result and feeding it back to the verifier; sending the read set and the write set to the verifier, and the verifier verifying the correctness of the read set and the write set based on the state commitment and the log processing result to determine the correctness of the memory verification.

[0006] Furthermore, the data processing process of the database includes: obtaining a data processing request, and indexing on the database index tree based on the data processing request to determine the target address, wherein the database index tree includes a first node and a second node, the first node is used to store key value information, and the second node is used to store data records, and the data processing request includes data query, data addition, data deletion, data modification, and data reading; determining the target data of the target address, and executing the database operation corresponding to the data processing request to return the data processing result to the verifier.

[0007] Furthermore, the step of generating log records includes: when accessing the target data of the target address of the database, generating log records based on the target address, target data and timestamp or the target address, target data and counter and storing them in the read set; when reading or changing the target data of the target address in the database, generating log records based on the target address, target data and timestamp or the target address, target data and counter and storing them in the write set.

[0008] Furthermore, the sending of the read set and the write set to the verifier includes: receiving a second challenge value, processing the read set and the write set based on the second challenge value, obtaining a polynomial expansion result, and sending it to the verifier, and the verifier verifies the correctness of the polynomial expansion result based on the state commitment and the log processing result to determine the correctness of the memory verification.

[0009] Furthermore, the method also includes: generating an index polynomial and a polynomial commitment based on the relevant nodes of the data processing request when indexing the database index tree; sending the polynomial commitment and the index polynomial to the verifier, and the verifier verifies the index polynomial based on the polynomial commitment.

[0010] Furthermore, the first node and the second node of the database index tree correspond to a polynomial, the first node contains a node commitment, and the second node contains a hash value of the node content; generating the index polynomial and generating the polynomial commitment include: determining a target polynomial based on the first node and the second node in the relevant nodes; determining the coefficients of the target polynomial based on the node commitment of the first node and the hash value of the second node in the relevant nodes to form an index polynomial; and aggregating the node commitment of the first node in the relevant nodes to form a polynomial commitment.

[0011] Furthermore, the step of updating the database index tree includes: when inserting the second node, determining the node position of the second node and detecting whether the capacity of the node position reaches the capacity upper limit; if so, splitting the node to generate two hash values of the second node; if not, updating the hash value of the node at the node position; determining the first node related to the second node, and updating the node commitment of the first node.

[0012] Furthermore, the memory is divided into a first memory and a second memory, the first memory is used to process data processing requests for data reading, and the second memory is used to process data processing requests corresponding to data query, data addition, data deletion, and data modification; determining the initial state and final state of the data in the database during the data processing process, and adding the initial state to the read set of the memory, and adding the final state to the write set of the memory, includes: when the second memory processes the data processing request, determining the initial state and final state of the data in the database during the data processing process, and adding the initial state to the read set of the memory, and adding the final state to the write set of the memory.

[0013] On the second aspect, the present application provides a database verification method based on polynomial commitment and memory correctness detection, which is applied to the verification party, and the method includes: generating a data processing request and sending it to the proving party, the proving party performing data processing based on the data processing request, and feeding back the data processing results; the proving party determines the initial state and final state of the data in the database during the data processing process, and adds the initial state to the read set of the memory, and adds the final state to the write set of the memory, wherein the read set is used to store the log records generated when accessing the data in the database, and the write set is used to store the log records generated when reading or changing the data. The prover generates log records when processing data in the library; the prover generates a state commitment of the initial state and the final state and sends it to the verifier; the prover receives the data processing result and the state commitment sent by the prover, and generates a first challenge value to send to the prover. The prover processes the log records in the read set and the write set in the memory based on the first challenge value, obtains the log processing result and feeds it back to the verifier; the prover sends the read set and the write set to the verifier; the prover receives the log processing result, the read set and the write set, and verifies the correctness of the read set and the write set based on the state commitment and the log processing result, so as to determine the correctness of the memory verification and the correctness of the data processing result.

[0014] In a third aspect, the present application provides a database verification device based on polynomial commitment and memory correctness detection, which is applied to the prover, and includes: a data state processing module, which is used to determine the initial state and final state of the data in the database during the data processing process, and add the initial state to the read set of the memory, and add the final state to the write set of the memory, wherein the read set is used to store log records generated when accessing data in the database, and the write set is used to store log records generated when reading or changing data in the database; a state commitment processing module, which is used to generate a state commitment of the initial state and the final state, and send it to the verifier; a log record processing module, which is used to receive a first challenge value from the verifier, and process the log records in the read set and the write set in the memory based on the first challenge value, obtain the log processing results and feed them back to the verifier; a read-write set sending module, which is used to send the read set and the write set to the verifier, and the verifier verifies the correctness of the read set and the write set based on the state commitment and the log processing results to determine the correctness of the memory verification.

[0015] In a fourth aspect, the present application provides a network device comprising: a memory, a transceiver, and a processor; wherein the memory is used to store a computer program; the transceiver is used to send and receive data under the control of the processor; and the processor is used to read the computer program in the memory and execute the method described in the first aspect or the second aspect.

[0016] In a fifth aspect, the present application provides a storage medium having a computer program stored thereon, which implements the method described in the first aspect or the second aspect when executed by a processor.

[0017] The beneficial effects of the technical solution provided by this application are:

[0018] The solution of the present application can be applied in scenarios where data processing is performed based on a database. Corresponding operations can be performed in the database according to the user's data processing request, and proof of memory correctness and proof of execution correctness of the data processing process can be provided for the data processing process, thereby determining the credibility of the data processing results. Specifically, the solution may include a verifier and a certifier. The verifier is the party that initiates the data processing request. The certifier receives the data processing request and performs corresponding data processing, and provides verification services for the verifier. The verifier initiates a data processing request to the certifier. The certifier receives the data processing request and indexes it according to the database index tree to determine the target address of the target data corresponding to the data processing request, and performs corresponding data processing operations, and returns the data processing results to the verifier. Furthermore, the prover determines the initial state and final state of the data in the database during the data processing process, and adds the initial state to the read set in the memory, and adds the final state to the write set in the memory, wherein the read set is used to store log records generated when accessing data in the database, and the write set is used to store log records generated when reading or changing data in the database; the prover generates a state commitment for the initial state and the final state and sends it to the verifier; the prover receives a first challenge value from the verifier and processes the log records in the read set and write set in the memory based on the first challenge value, obtains a log processing result, and feeds it back to the verifier; the prover sends the read set and the write set to the verifier, and the verifier verifies the correctness of the read set and the write set based on the state commitment and the log processing result to determine the correctness of the memory verification. In addition, the prover can also generate an index polynomial and a polynomial commitment based on the relevant nodes in the database index tree of the data processing request, and send it to the verifier. The verifier verifies the correctness of the data processing execution process based on the polynomial commitment and the index polynomial, and determines the correctness of the data processing execution process. If both the memory correctness and the execution correctness are verified, the verifier confirms that the data processing process is correct and trustworthy. BRIEF DESCRIPTION OF THE DRAWINGS

[0019] In order to more clearly illustrate the technical solutions in the embodiments of the present application, the following briefly introduces the drawings required for describing the embodiments of the present application.

[0020] Figure 1 This is a schematic diagram of the interaction between a verifiable database and a client according to an embodiment of the present application;

[0021] Figure 2This is a schematic diagram of log records stored in a read set and a write set according to an embodiment of the present application;

[0022] Figure 3 This is a schematic diagram of the interaction between the prover and the verifier according to an embodiment of the present application;

[0023] Figure 4 This is a flow chart of inserting a leaf node into a data index tree according to an embodiment of the present application;

[0024] Figure 5 This is a flowchart of a database verification method based on polynomial commitment and memory correctness detection according to an embodiment of the present application;

[0025] Figure 6 This is a flowchart of a database verification method based on polynomial commitment and memory correctness detection according to another embodiment of the present application;

[0026] Figure 7 This is a schematic diagram of the structure of a database verification device based on polynomial commitment and memory correctness detection according to an embodiment of the present application;

[0027] Figure 8 This is a structural block diagram of a network device according to an embodiment of the present application;

[0028] Figure 9 This is a structural block diagram of a user device according to an embodiment of the present application. DETAILED DESCRIPTION

[0029] The following describes in detail embodiments of the present application, examples of which are shown in the accompanying drawings, wherein the same or similar reference numerals throughout identify the same or similar elements or elements having the same or similar functions. The embodiments described below with reference to the accompanying drawings are exemplary and are intended only to explain the present application and are not to be construed as limiting the present application.

[0030] Those skilled in the art will understand that, unless otherwise specified, the singular forms "a," "an," "the," and "the" used herein may also include the plural forms, and "a plurality" refers to two or more, and other quantifiers are similar. It should be further understood that the term "comprising" used in the specification of this application refers to the presence of the stated features, integers, steps, operations, elements, and / or components, but does not exclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and / or groups thereof. It should be understood that when we refer to an element as being "connected" or "coupled" to another element, it can be directly connected or coupled to the other element, or there may be intermediate elements. In addition, "connected" or "coupled" as used herein may include wireless connection or wireless coupling. The term "and / or" used herein describes the association relationship between associated objects, indicating that three relationships can exist. For example, A and / or B can mean: A exists alone, A and B exist simultaneously, or B exists alone. The character " / " generally indicates that the associated objects are in an "or" relationship.

[0031] The solution of this application can be applied in scenarios where data processing is performed based on a database. It can perform corresponding operations in the database based on the user's data processing request, and provide proof of memory correctness and proof of execution correctness for the data processing process, thereby confirming the credibility of the data processing results. Specifically, in this solution, the verifier initiates a data processing request to the prover, and the prover receives the data processing request and indexes it according to the database index tree to determine the target address of the target data corresponding to the data processing request, and then performs the corresponding data processing operation and returns the data processing result to the verifier. Furthermore, the prover determines the initial state and final state of the data in the database during the data processing process, and adds the initial state to the read set in the memory, and adds the final state to the write set in the memory, wherein the read set is used to store log records generated when accessing data in the database, and the write set is used to store log records generated when reading or changing data in the database; the prover generates a state commitment for the initial state and the final state and sends it to the verifier; the prover receives a first challenge value from the verifier and processes the log records in the read set and write set in the memory based on the first challenge value, obtains a log processing result, and feeds it back to the verifier; the prover sends the read set and the write set to the verifier, and the verifier verifies the correctness of the read set and the write set based on the state commitment and the log processing result to determine the correctness of the memory verification. In addition, the prover can also generate an index polynomial and a polynomial commitment based on the relevant nodes in the database index tree of the data processing request, and send it to the verifier. The verifier verifies the correctness of the data processing execution process based on the polynomial commitment and the index polynomial, and determines the correctness of the data processing execution process. If both the memory correctness and the execution correctness are verified, the verifier confirms that the data processing process is correct and trustworthy.

[0032] The following are definitions of several key terms involved in this application, specifically:

[0033] B+ Tree: A B+ Tree is a self-balancing, multi-way search tree designed specifically for external storage devices such as disks. Its key features include: all data records are stored in leaf nodes, while non-leaf nodes store only key-value information as indexes. Leaf nodes are connected via a linked list to form an ordered list. This structure enables the B+ Tree to achieve both efficient random searches and sequential scans. Furthermore, its low height and multi-branching tree structure are ideal for reducing disk I / O operations, making it the most commonly used index structure in database systems. The database index tree used in this solution is based on a modified B+ Tree.

[0034] Commitment: A basic cryptographic primitive, similar to sealing information in an encrypted box: the committer first locks a value and generates a commitment value to seal the information, and then reveals the original value at a later stage. This process must satisfy both binding properties, that is, the original value cannot be changed after the commitment, and hiding properties, that is, the original information cannot be inferred from the commitment value before it is revealed.

[0035] Polynomial commitments, also known as Kate-Zaverucha-Goldberg Commitments (KZG commitments), are a polynomial commitment scheme based on bilinear pairings. They allow the committer to generate a short commitment value for a polynomial, and then provide a concise proof of the polynomial's value at any point. KZG commitments offer the core advantages of constant size, efficient computational verification, and homomorphic properties, enabling the verifier to efficiently verify the correctness of the polynomial's value at certain points without knowing the full polynomial.

[0036] Multilinear Extension: A function originally defined only on Boolean values (0 and 1) is expanded into a multilinear polynomial function that can take values over the entire range of real numbers. This extension ensures that the values of the new function at the original Boolean points remain unchanged while providing richer verification possibilities, enabling verifiers to efficiently verify the correctness of computations by checking at random points without knowing the full function.

[0037] The basic contents of this solution include: (1) The present invention proposes a new verifiable index data structure for relational database indexes, which integrates polynomial commitments and the B-tree structure widely used in databases, specifically for verifying the integrity of database memory pages. (2) The present invention designs an interactive SQL-friendly memory correctness check protocol, which proves that the query is effectively executed through the read and write consistency records of the memory in the query, ensures the validity and completeness of the query results, and avoids the computational loss caused by the arithmetic circuit generated for the query in the traditional interactive proof system. (3) The present invention generates a concise proof process based on polynomial extension detection for the query results, so that clients with less computing resources can still complete the verification of the query, enhancing the versatility of the present invention and its ability to be applied in practical scenarios.

[0038] The following are the details of this plan, specifically:

[0039] This solution can be applied in database verification scenarios. As a tool that can provide a high degree of assurance for data integrity and traceability, the verifiable database's technological breakthrough will help promote the development of application areas such as privacy protection, data sharing, and decentralized storage verification, ensuring the immutability of data and end-to-end credibility, making the data storage and sharing process more secure, transparent, and reliable.

[0040] like Figure 1 As shown, the verifiable database of the technical solution of the present invention is mainly divided into three main components: a verifiable virtual database engine, a polynomial index tree (or polynomial commitment B-tree), and a memory proof protocol generator. Among them, the verifiable virtual database engine is a virtual machine used to execute database query operation codes, and while executing the operation codes, it generates memory correctness check records for use in generating query proofs. After receiving the query statement, the database will perform a syntax check on the executed query statement through a word segmenter and analyzer, then generate a syntax tree and further generate database query operation codes for execution in the verifiable virtual database engine. The polynomial commitment B-tree is an improvement on the B+ tree, which is an index structure for storing data and is used to index data. It maintains the complex relationships between various pages, making it easy to quickly find the required data. The present invention uses polynomial commitments to ensure the integrity proof of all data accessed in the query, quickly check data consistency without downloading the entire database, and provide binding for subsequent query proofs through commitments. The memory proof protocol generator is responsible for generating proofs. It converts the received memory correctness check records into a finite field and can quickly verify the proof based on multivariate polynomial expansion. The proof and query results are sent to the client together. The client can then rely on the query results, polynomial commitments and query proofs to verify the database integrity and query correctness.

[0041] The present invention does not need to convert the database query into a verifiable database for proof by arithmetic circuits. Its core is to use a verifiable virtual database engine to convert the query process from a syntax tree into a deterministic state transfer relationship and execute it by a virtual machine, and retain the memory changes of the virtual machine as a log for correctness checking. If a series of memory reading processes are correct and comply with the database engine operation rules, then the memory execution is correct. During the operation of the virtual machine, it is necessary to maintain an execution log record. This log is a triple of (address, data, timestamp / counter). In the process of reading or writing database data, it is divided into two sets of reading and writing for storage. Figure 2 As shown in the figure, when the virtual machine accesses data at a certain address, it first generates a log with the data stored at the current address and the time / counter, and places it in the read set. After reading / changing the data at this address, it generates a log with the address, data, and the new time / counter, and places it in the write set. Finally, the initial state of all addresses is placed in the write set, and the final state is placed in the read set. After the virtual machine finishes running, the verifier can verify that the read set and write set are the same, thereby verifying that the virtual machine executed correctly.

[0042] In this solution, it is a very complicated task to determine whether two sets are the same element by element. The present invention combines the address, data and time / count as a number using a random value provided by the client (verifier), and combines each log of the read set with another random number. The verifier only needs to verify the result and verify the integrity of the log through polynomial expansion. Since the data types stored in the database are different, the present invention maps different data types to a finite field. When designing a verifiable virtual database engine, the present invention divides the conventional memory, sorting memory, aggregated result memory, read-only memory, and output memory into sections, and reuses memory as much as possible to reduce the number of logs generated, thereby optimizing the efficiency of proof generation.

[0043] Since the verification mechanism of the present invention does not rely on hardware trusted memory, the present invention relies on Figure 3 The memory correctness interactive verification framework shown is generated in the memory proof protocol generator and is divided into the following steps:

[0044] The prover sends to the verifier the initial state of the memory during the database query process and the final state commitment. This commitment needs to be homomorphic so that the verifier can verify the read and write sets sent later through the commitment.

[0045] The verifier sends a random number as a challenge value. The prover uses the challenge value to combine the log triples into a single value and sends it to the verifier. The resulting new commitment matches the previous commitment received by the verifier combined with the challenge value, allowing the verifier to trust that the received read and write set is correct and legal.

[0046] The prover sends the read-write set to the verifier, and as the size of the database increases, the generated log will also become larger and larger. In order to reduce the computational cost of the verifier, the prover will send the read set and write set as the intermediate result of the binary tree product point as a multivariate polynomial expansion, thereby changing the product process that the verifier needs to calculate into a multivariate polynomial challenge result verification problem consisting of the set and its intermediate results.

[0047] The verifier sends a new random number as a challenge expanded by the multivariate polynomial.

[0048] The prover needs to extend the challenge result with a multivariate polynomial consisting of the set and its intermediate results and send it to the verifier. Since colliding a high-order polynomial is a mathematically difficult problem, the verifier can believe that the challenge result is correct.

[0049] The verifier completes all verifications. If they are correct, the query results can be trusted. If they are incorrect, the query results cannot be fully trusted.

[0050] This solution optimizes the B+ tree commonly used to store index structures in databases, combines polynomial commitments with index structures, and verifies the database. The present invention uses the hash value of the content of each leaf node and the child node commitment results stored in the non-leaf node as the coefficients of the polynomial, generates a KZG commitment for each child node of a non-leaf node, and stores it in the non-leaf node. A simple query process will not change the result in the polynomial commitment B-tree. In the addition, deletion, modification, and query of database operations, the hash value of the leaf node changes, and even due to major changes in the self-balancing structure of the B-tree, the polynomial commitment will be regenerated based on the hash value generated by the leaf node content. The verifying party can also be called a verifier, and the proving party can also be called a prover. Figure 4 Taking the insertion and splitting algorithm of [1] as an example, the polynomial commitment generation logic of the present invention is introduced: the location of the leaf node to be inserted is found. The target leaf node is checked to see if its capacity has reached its upper limit. Based on the check result, a decision is made whether to insert the node directly or split it. When the node is not full, the hash value of the current node is directly updated. When the node is full, the node is split, generating two hash values for the nodes and a new KZG commitment. As the content of the child node changes, the parent node is obtained and recursively modified until the root node is modified.

[0051] The method of deleting a node is similar to that of inserting one. The main difference is also the difference when balancing the B+ tree, which will not be expanded here. The hash value is used because the B+ tree is an index structure that manages data in a unified manner. However, different types of representations and memory lengths in specific storage are different, making management inconvenient. The KZG commitments from leaf nodes to root nodes can be opened at the same point, which means that the KZG commitments traversing all nodes in all data queries can be merged to generate a fixed-size KZG commitment for the verifier. The memory proof protocol generator will complete the merging of related commitments, and also generate logs for the generated hash values and KZG commitments in a memory correctness manner, which are merged with the previous read-write set, thereby binding the two proof methods.

[0052] The main technical points of this solution include: providing a verification scheme for a verifiable database, designing a verifiable virtual database engine, and constructing an interactive, database-friendly memory correctness checking protocol. This protocol verifies that queries are correctly executed by using a collection of memory read and write logs during the query. A polynomial extension challenge verification scheme is used to distribute the computational burden of the verifier to the prover, greatly accelerating the verifier's verification time. The B+ tree index in the database is modified to a polynomial commitment B-tree, providing a solution for verifying the integrity of data in the database. An insertion, deletion, and update algorithm for the polynomial commitment B-tree is designed, and the polynomial commitment is sent together and bundled with the memory correctness checking protocol.

[0053] This solution has the following effects: the verifiable database of the present invention can realize the query and data processing requirements of a complete relational database, and convert the authentication of data into a protocol, thereby realizing the verification operation of multiple relational realizations and data integrity. Compared with the verifiable database based on the interactive proof system, the present invention does not need to convert the entire process of database query into an arithmetic circuit to complete the verification. Since the input and output of the arithmetic circuit need to be generated additionally and the circuit is unique, it cannot be deployed in real applications. The present invention provides a database-friendly proof method that can complete the proof of the query process without generating a circuit. The present invention has extremely low computational requirements for client verification. Compared with the proof system based on secure multi-party computing, the present invention can provide verification for any third party. The present invention transfers the computational burden to the server prover, so that clients that do not have strong computing power and continuous stability can complete queries and verifications.

[0054] Specifically, this application provides a database verification method based on polynomial commitment and memory correctness detection, which is applied to the prover, such as Figure 5 As shown, the method includes:

[0055] Step 102: Determine the initial state and final state of the data in the database during the data processing process, and add the initial state to the read set in the memory, and add the final state to the write set in the memory, where the read set is used to store log records generated when accessing data in the database, and the write set is used to store log records generated when reading or changing data in the database.

[0056] Step 104: Generate state commitments for the initial state and final state, and send them to the verifier.

[0057] Step 106: Receive the first challenge value from the verifier, and process the log records in the read set and the write set in the memory based on the first challenge value, obtain the log processing result, and feed it back to the verifier.

[0058] Step 108: Send the read set and the write set to the verifier. The verifier verifies the correctness of the read set and the write set based on the state commitment and the log processing result to determine the correctness of the memory verification.

[0059] The solution of this application can be applied in scenarios where data processing is performed based on a database. It can perform corresponding operations in the database based on the user's data processing request, and provide proof of memory correctness and proof of execution correctness for the data processing process, thereby confirming the credibility of the data processing results. Specifically, in this solution, the verifier initiates a data processing request to the prover, and the prover receives the data processing request and indexes it according to the database index tree to determine the target address of the target data corresponding to the data processing request, and then performs the corresponding data processing operation and returns the data processing result to the verifier. Furthermore, the prover determines the initial state and final state of the data in the database during the data processing process, and adds the initial state to the read set in the memory, and adds the final state to the write set in the memory, wherein the read set is used to store log records generated when accessing data in the database, and the write set is used to store log records generated when reading or changing data in the database; the prover generates a state commitment for the initial state and the final state and sends it to the verifier; the prover receives a first challenge value from the verifier and processes the log records in the read set and write set in the memory based on the first challenge value, obtains a log processing result, and feeds it back to the verifier; the prover sends the read set and the write set to the verifier, and the verifier verifies the correctness of the read set and the write set based on the state commitment and the log processing result to determine the correctness of the memory verification. In addition, the prover can also generate an index polynomial and a polynomial commitment based on the relevant nodes in the database index tree of the data processing request, and send it to the verifier. The verifier verifies the correctness of the data processing execution process based on the polynomial commitment and the index polynomial, and determines the correctness of the data processing execution process. If both the memory correctness and the execution correctness are verified, the verifier confirms that the data processing process is correct and trustworthy.

[0060] In this solution, the verifier can initiate a data processing request to the prover, and the prover performs the corresponding operation and returns the data processing result. Specifically, as an optional embodiment, the data processing process of the database includes: obtaining the data processing request, and indexing the database index tree based on the data processing request to determine the target address, wherein the database index tree includes a first node and a second node, the first node is used to store key value information, and the second node is used to store data records, and the data processing request includes data query, data addition, data deletion, data modification, and data reading; determining the target data of the target address, and performing the database operation corresponding to the data processing request to return the data processing result to the verifier.

[0061] During data processing, the memory can record the address, data content, and time / counter of the processed data to generate a log record and store it in a read set and a write set. Specifically, as an optional embodiment, the step of generating a log record includes: when accessing target data at a target address in a database, based on the target address, target data, and timestamp, or the target address, target data, and counter, generating a log record and storing it in a read set; when reading or changing target data at a target address in a database, based on the target address, target data, and timestamp, or the target address, target data, and counter, generating a log record and storing it in a write set.

[0062] Directly sending all read sets and write sets requires the verifier to process too much data. Therefore, this solution can obtain a second challenge value and perform corresponding conversions based on the second challenge value and the read and write sets to obtain a polynomial expansion result and feed it back to the verifier for verification. Specifically, as an optional embodiment, sending the read set and write set to the verifier includes: receiving the second challenge value, processing the read set and write set based on the second challenge value, obtaining a polynomial expansion result, and sending it to the verifier. The verifier verifies the correctness of the polynomial expansion result based on the state commitment and log processing results to determine the correctness of the memory verification.

[0063] In addition to verifying memory correctness, this solution can also prove the execution process of data indexing. Specifically, as an optional embodiment, the method further includes: generating an index polynomial and a polynomial commitment based on the relevant nodes of the database index tree when the data processing request is indexed; sending the polynomial commitment and the index polynomial to the verifier, and the verifier verifying the index polynomial based on the polynomial commitment. The polynomial can be used to prove the relevant nodes of the database index tree, thereby proving the corresponding data status, and thus proving the status of the data involved in the current processing by the prover. This solution can pre-configure a node commitment for the first node and generate a hash value for the second node. Specifically, as an optional embodiment, the first and second nodes of the database index tree correspond to polynomials, the first node containing a node commitment, and the second node containing a hash value of the node content; generating the index polynomial and the polynomial commitment includes: determining a target polynomial based on the first and second nodes in the relevant nodes; determining the coefficients of the target polynomial based on the node commitment of the first node and the hash value of the second node in the relevant nodes to form the index polynomial; and aggregating the node commitments of the first node in the relevant nodes to form the polynomial commitment.

[0064] When processing data in a database, this solution can update the corresponding database index tree. Specifically, as an optional embodiment, the step of updating the database index tree includes: when inserting a second node, determining the node position of the second node and detecting whether the capacity of the node position has reached the upper capacity limit; if so, splitting the node and generating two hash values of the second node; if not, updating the hash value of the node at the node position; determining the first node associated with the second node, and updating the node commitment of the first node.

[0065] In the case of some read-only data, there may be no need to prove it to the verification party. Therefore, this solution can divide the memory into multiple areas and execute different data processing requests, thereby reducing the amount of data that needs to be processed by the read and write sets. Specifically, as an optional embodiment, the memory is divided into a first memory and a second memory, the first memory is used to process data processing requests for data reading, and the second memory is used to process data processing requests corresponding to data query, data addition, data deletion, and data modification; the determining the initial state and final state of the data in the database during the data processing process, and adding the initial state to the read set of the memory, and adding the final state to the write set of the memory, includes: when the second memory processes the data processing request, determining the initial state and final state of the data in the database during the data processing process, and adding the initial state to the read set of the memory, and adding the final state to the write set of the memory.

[0066] On the basis of the above embodiments, the embodiment of the present application further provides a database verification method based on polynomial commitment and memory correctness detection, which is applied to the verification side, such as Figure 6 As shown, the method includes:

[0067] Step 202: Generate a data processing request and send it to the proving party. The proving party performs data processing based on the data processing request and feeds back the data processing results. During the data processing, the proving party determines the initial state and final state of the data in the database, and adds the initial state to the read set of the memory, and adds the final state to the write set of the memory. The read set is used to store log records generated when accessing data in the database, and the write set is used to store log records generated when reading or changing data in the database. The proving party generates a state commitment for the initial state and the final state and sends it to the verifier.

[0068] Step 204: Receive the data processing results and status commitment sent by the prover, and generate a first challenge value to send to the prover. The prover processes the log records in the read set and write set in the memory based on the first challenge value, obtains the log processing results and feeds them back to the verifier; the prover sends the read set and write set to the verifier.

[0069] Step 206: Receive the log processing result, the read set, and the write set, and verify the correctness of the read set and the write set based on the state commitment and the log processing result to determine the correctness of the memory verification and the correctness of the data processing result.

[0070] The implementation of the embodiment of the present application is similar to that of the above embodiment. The specific implementation can refer to the specific implementation of the above embodiment and will not be repeated here.

[0071] The solution of this application can be applied in scenarios where data processing is performed based on a database. It can perform corresponding operations in the database based on the user's data processing request, and provide proof of memory correctness and proof of execution correctness for the data processing process, thereby confirming the credibility of the data processing results. Specifically, in this solution, the verifier initiates a data processing request to the prover, and the prover receives the data processing request and indexes it according to the database index tree to determine the target address of the target data corresponding to the data processing request, and then performs the corresponding data processing operation and returns the data processing result to the verifier. Furthermore, the prover determines the initial state and final state of the data in the database during the data processing process, and adds the initial state to the read set in the memory, and adds the final state to the write set in the memory, wherein the read set is used to store log records generated when accessing data in the database, and the write set is used to store log records generated when reading or changing data in the database; the prover generates a state commitment for the initial state and the final state and sends it to the verifier; the prover receives a first challenge value from the verifier and processes the log records in the read set and write set in the memory based on the first challenge value, obtains a log processing result, and feeds it back to the verifier; the prover sends the read set and the write set to the verifier, and the verifier verifies the correctness of the read set and the write set based on the state commitment and the log processing result to determine the correctness of the memory verification. In addition, the prover can also generate an index polynomial and a polynomial commitment based on the relevant nodes in the database index tree of the data processing request, and send it to the verifier. The verifier verifies the correctness of the data processing execution process based on the polynomial commitment and the index polynomial, and determines the correctness of the data processing execution process. If both the memory correctness and the execution correctness are verified, the verifier confirms that the data processing process is correct and trustworthy.

[0072] On the basis of the above embodiments, the embodiment of the present application further provides a database verification device based on polynomial commitment and memory correctness detection, which is applied to the prover, such as Figure 7 As shown, the device includes:

[0073] The data state processing module 302 is used to determine the initial state and final state of the data in the database during the data processing process, and add the initial state to the read set in the memory and add the final state to the write set in the memory, wherein the read set is used to store log records generated when accessing data in the database, and the write set is used to store log records generated when reading or changing data in the database;

[0074] The state commitment processing module 304 is used to generate state commitments of the initial state and the final state and send them to the verifier.

[0075] The log record processing module 306 is used to receive the first challenge value of the verifier, and process the log records in the read set and the write set in the memory based on the first challenge value, obtain the log processing result and feed it back to the verifier.

[0076] The read-write set sending module 308 is used to send the read set and the write set to the verifier. The verifier verifies the correctness of the read set and the write set based on the state commitment and the log processing result to determine the correctness of the memory verification.

[0077] The implementation of the embodiment of the present application is similar to that of the above embodiment. The specific implementation can refer to the specific implementation of the above embodiment and will not be repeated here.

[0078] The solution of this application can be applied in scenarios where data processing is performed based on a database. It can perform corresponding operations in the database based on the user's data processing request, and provide proof of memory correctness and proof of execution correctness for the data processing process, thereby confirming the credibility of the data processing results. Specifically, in this solution, the verifier initiates a data processing request to the prover, and the prover receives the data processing request and indexes it according to the database index tree to determine the target address of the target data corresponding to the data processing request, and then performs the corresponding data processing operation and returns the data processing result to the verifier. Furthermore, the prover determines the initial state and final state of the data in the database during the data processing process, and adds the initial state to the read set in the memory, and adds the final state to the write set in the memory, wherein the read set is used to store log records generated when accessing data in the database, and the write set is used to store log records generated when reading or changing data in the database; the prover generates a state commitment for the initial state and the final state and sends it to the verifier; the prover receives a first challenge value from the verifier and processes the log records in the read set and write set in the memory based on the first challenge value, obtains a log processing result, and feeds it back to the verifier; the prover sends the read set and the write set to the verifier, and the verifier verifies the correctness of the read set and the write set based on the state commitment and the log processing result to determine the correctness of the memory verification. In addition, the prover can also generate an index polynomial and a polynomial commitment based on the relevant nodes in the database index tree of the data processing request, and send it to the verifier. The verifier verifies the correctness of the data processing execution process based on the polynomial commitment and the index polynomial, and determines the correctness of the data processing execution process. If both the memory correctness and the execution correctness are verified, the verifier confirms that the data processing process is correct and trustworthy.

[0079] It should be noted that the division of units and / or modules in the embodiments of the present application is schematic and is merely a logical functional division. In actual implementation, there may be other division methods. In addition, the functional units and / or modules in the various embodiments of the present application may be integrated into one processing unit and / or module, or each unit and / or module may exist physically alone, or two or more units and / or modules may be integrated into one unit and / or module. The above-mentioned integrated units and / or modules may be implemented in the form of hardware or in the form of software functional units and / or modules.

[0080] If the integrated units and / or modules are implemented in the form of software functional units and / or modules and sold or used as independent products, they can be stored in a processor-readable storage medium. Based on this understanding, the technical solution of the present application is essentially or the part that contributes to the relevant technology or all or part of the technical solution can be embodied in the form of a software product, and the computer software product is stored in a storage medium, including a number of instructions for enabling a computer device (which can be a personal computer, a server, or a network device, etc.) or a processor to execute all or part of the steps of the method described in each embodiment of the present application. The aforementioned storage medium includes: various media that can store program codes, such as a USB flash drive, a mobile hard disk, a read-only memory (ROM), a random access memory (RAM), a magnetic disk or an optical disk.

[0081] In addition, the data transmission device and data transmission method provided in the above embodiments are based on the same application concept. Since the principles of solving problems by the method and the device are similar, the implementation of the device and the method can refer to each other, and the repeated parts will not be repeated.

[0082] Figure 8 A structural block diagram of a network device is shown according to an exemplary embodiment.

[0083] like Figure 8 As shown, the network device 1100 includes at least: a processor 1110 , a memory 1120 and a transceiver 1130 .

[0084] The transceiver 1130 is used to receive and send data under the control of the processor 1110 .

[0085] exist Figure 8In the embodiment of the present invention, the bus architecture may include any number of interconnected buses and bridges, specifically linking together various circuits of one or more processors represented by processor 1110 and memory represented by memory 1120. The bus architecture may also link together various other circuits such as peripheral devices, voltage regulators, and power management circuits, which are all well known in the art and therefore will not be further described herein. The bus interface provides an interface. The transceiver 1130 may be a plurality of components, i.e., a transmitter and a receiver, providing units and / or modules for communicating with various other devices over a transmission medium, such as a wireless channel, a wired channel, an optical cable, or the like.

[0086] The processor 1110 is responsible for managing the bus architecture and general processing, and the memory 1120 can store data used by the processor 1110 when performing operations.

[0087] Optionally, the processor 1110 may be a central processing unit (CPU), an application-specific integrated circuit (ASIC), a field programmable gate array (FPGA), or a complex programmable logic device (CPLD). The processor 1110 may also employ a multi-core architecture. The processor 1110 and the memory 1120 may also be physically separated.

[0088] The processor 1110 calls the computer program stored in the memory 1120 to execute any one of the methods for allocating a cell radio network temporary identifier provided in the above embodiments of the present application according to the obtained executable instructions.

[0089] Figure 9 A structural block diagram of a user equipment is shown according to an exemplary embodiment.

[0090] like Figure 9 As shown, the user equipment 1300 includes at least: a processor 1310 , a memory 1320 and a transceiver 1330 .

[0091] The transceiver 1330 is used to receive and send data under the control of the processor 1310.

[0092] exist Figure 9In the embodiment, the bus architecture may include any number of interconnected buses and bridges, specifically linking together various circuits of one or more processors represented by processor 1310 and memory represented by memory 1320. The bus architecture may also link together various other circuits such as peripheral devices, voltage regulators, and power management circuits, which are all well known in the art and therefore will not be described further herein. The bus interface provides an interface. The transceiver 1330 may be a plurality of components, i.e., a transmitter and a receiver, providing units and / or modules for communicating with various other devices on a transmission medium, such as wireless channels, wired channels, optical cables, and other transmission media. For different user devices, the user interface 1340 may also be an interface capable of connecting external or internal devices as required, and the connected devices include but are not limited to a keypad, a display, a speaker, a microphone, a joystick, and the like.

[0093] The processor 1310 is responsible for managing the bus architecture and general processing, and the memory 1320 can store data used by the processor 1310 when performing operations.

[0094] Optionally, the processor 1310 may be a CPU (central processing unit), an ASIC (Application Specific Integrated Circuit), an FPGA (Field Programmable Gate Array), or a CPLD (Complex Programmable Logic Device). The processor 1310 may also employ a multi-core architecture. The processor 1310 and the memory 1320 may also be physically separated.

[0095] The processor 1310 calls the computer program stored in the memory 1320 to execute any one of the methods for allocating a cell radio network temporary identifier provided in the above embodiments of the present application according to the obtained executable instructions.

[0096] It should be noted here that the above-mentioned device provided in the embodiment of the present application can implement all the method steps implemented in the above-mentioned method embodiment and can achieve the same technical effect. The parts and beneficial effects of this embodiment that are the same as those in the method embodiment will not be described in detail here.

[0097] In addition, an embodiment of the present application provides a storage medium having a computer program stored thereon, which, when executed by a processor, implements the data transmission method of each of the above embodiments. The storage medium can be any available medium or data storage device that can be accessed by the processor, including but not limited to magnetic storage (such as a floppy disk, hard disk, magnetic tape, magneto-optical disk (MO), etc.), optical storage (such as CD, DVD, BD, HVD, etc.), and semiconductor storage (such as ROM, EPROM, EEPROM, non-volatile memory (NAND FLASH), solid-state drive (SSD)), etc.

[0098] In an embodiment of the present application, a program product is provided. For example, the program product is an FPGA chip or a DSP chip. The program product includes executable instructions stored in a storage medium. A processor reads the executable instructions from the storage medium, so that when the executable instructions are executed by the processor, the data transmission method described in each of the above embodiments is implemented.

[0099] The solution of this application can be applied in scenarios where data processing is performed based on a database. It can perform corresponding operations in the database based on the user's data processing request, and provide proof of memory correctness and proof of execution correctness for the data processing process, thereby confirming the credibility of the data processing results. Specifically, in this solution, the verifier initiates a data processing request to the prover, and the prover receives the data processing request and indexes it according to the database index tree to determine the target address of the target data corresponding to the data processing request, and then performs the corresponding data processing operation and returns the data processing result to the verifier. Furthermore, the prover determines the initial state and final state of the data in the database during the data processing process, and adds the initial state to the read set in the memory, and adds the final state to the write set in the memory, wherein the read set is used to store log records generated when accessing data in the database, and the write set is used to store log records generated when reading or changing data in the database; the prover generates a state commitment for the initial state and the final state and sends it to the verifier; the prover receives a first challenge value from the verifier and processes the log records in the read set and write set in the memory based on the first challenge value, obtains a log processing result, and feeds it back to the verifier; the prover sends the read set and the write set to the verifier, and the verifier verifies the correctness of the read set and the write set based on the state commitment and the log processing result to determine the correctness of the memory verification. In addition, the prover can also generate an index polynomial and a polynomial commitment based on the relevant nodes in the database index tree of the data processing request, and send it to the verifier. The verifier verifies the correctness of the data processing execution process based on the polynomial commitment and the index polynomial, and determines the correctness of the data processing execution process. If both the memory correctness and the execution correctness are verified, the verifier confirms that the data processing process is correct and trustworthy.

[0100] Those skilled in the art will appreciate that the embodiments of the present application can be provided as methods, systems, or computer program products. Therefore, the present application can adopt the form of a complete hardware embodiment, a complete software embodiment, or an embodiment in combination with software and hardware. Moreover, the present application can adopt the form of a computer program product implemented on one or more computer-usable storage media (including but not limited to magnetic disk storage and optical storage, etc.) that contain computer-usable program code.

[0101] The present application is described with reference to the flowcharts and / or block diagrams of the methods, devices (systems), and computer program products according to the embodiments of the present application. It should be understood that each process and / or box in the flowchart and / or block diagram, as well as the combination of the processes and / or boxes in the flowchart and / or block diagram, can be implemented by computer-executable instructions. These computer-executable instructions can be provided to a processor of a general-purpose computer, a special-purpose computer, an embedded processor, or other programmable data processing device to produce a machine, so that the instructions executed by the processor of the computer or other programmable data processing device generate instructions for implementing the steps in the process. Figure 1 a process or multiple processes and / or boxes Figure 1 A device that provides the functions specified in a block or multiple blocks.

[0102] These processor-executable instructions may also be stored in a processor-readable memory that can direct a computer or other programmable data processing device to operate in a specific manner, so that the instructions stored in the processor-readable memory produce an article of manufacture comprising an instruction device that implements the process Figure 1 a process or multiple processes and / or boxes Figure 1 The function specified in one or more boxes.

[0103] These processor-executable instructions can also be loaded onto a computer or other programmable data processing device so that a series of operational steps are performed on the computer or other programmable device to produce a computer-implemented process, thereby providing instructions for executing on the computer or other programmable device to implement the process. Figure 1 a process or multiple processes and / or boxes Figure 1 The steps for the function specified in one or more boxes.

[0104] It should be understood that although the steps in the flowcharts of the accompanying drawings are shown in sequence as indicated by the arrows, these steps are not necessarily executed in the order indicated by the arrows. Unless otherwise specified herein, there is no strict order restriction on the execution of these steps, and they can be executed in other orders. Moreover, at least some of the steps in the flowcharts of the accompanying drawings may include multiple sub-steps or multiple stages, and these sub-steps or stages are not necessarily executed at the same time, but can be executed at different times, and their execution order is not necessarily sequential, but can be executed in turn or alternately with other steps or at least a portion of the sub-steps or stages of other steps.

[0105] The above description is only part of the implementation methods of the present application. It should be pointed out that for ordinary technicians in this technical field, several improvements and modifications can be made without departing from the principles of the present application. These improvements and modifications should also be included in the scope of protection of the present application.

Claims

1. A database verification method based on polynomial commitment and memory correctness detection, the method being applied to a prover, characterized in that: The method comprises: Determine the initial state and final state of the data in the database during data processing, and add the initial state to the read set in memory, and add the final state to the write set in memory, where the read set is used to store log records generated when accessing data in the database, and the write set is used to store log records generated when reading or changing data in the database; Generate state commitments for the initial state and final state and send them to the verifier; Receive the first challenge value from the verifier, and process the log records in the read set and write set in the memory based on the first challenge value, obtain the log processing result and feed it back to the verifier; The read set and write set are sent to the verifier, which verifies the correctness of the read set and write set based on the state commitment and log processing results to determine the correctness of the memory verification.

2. The method according to claim 1, wherein The data processing process of the database includes: Obtaining a data processing request, and indexing a database index tree based on the data processing request to determine a target address, wherein the database index tree includes a first node and a second node, the first node is used to store key value information, and the second node is used to store data records, and the data processing request includes data query, data addition, data deletion, data modification, and data reading; Determine the target data at the target address and perform the database operation corresponding to the data processing request to return the data processing result to the verifier.

3. The method according to claim 2, wherein The steps to generate log records include: When accessing target data at a target address of a database, generating a log record based on the target address, target data and timestamp or the target address, target data and counter and storing the log record in a read set; When the target data of the target address in the database is read or changed, a log record is generated based on the target address, target data and timestamp or the target address, target data and counter and stored in the write set.

4. The method according to claim 3, wherein The sending of the read set and the write set to the verifier includes: A second challenge value is received, and the read set and the write set are processed based on the second challenge value to obtain a polynomial expansion result, which is sent to the verifier. The verifier verifies the correctness of the polynomial expansion result based on the state commitment and the log processing result to determine the correctness of the memory verification.

5. The method according to claim 2, wherein The method further comprises: Generate an index polynomial based on the relevant nodes of the data processing request when indexing in the database index tree, and generate a polynomial commitment; The polynomial commitment and index polynomial are sent to the verifier, and the verifier verifies the index polynomial based on the polynomial commitment.

6. The method according to claim 5, wherein A first node and a second node of the database index tree correspond to the polynomial, the first node contains the node commitment, and the second node contains the hash value of the node content; The generation of index polynomials and generation of polynomial commitments include: determining a target polynomial based on a first node and a second node among the related nodes; determining coefficients of a target polynomial based on a node commitment of a first node and a hash value of a second node among the relevant nodes to form an index polynomial; Aggregate the node commitments of the first node among the related nodes to form a polynomial commitment.

7. The method according to claim 6, wherein The steps to update the database index tree include: When inserting the second node, determining the node position of the second node and detecting whether the capacity of the node position reaches the upper capacity limit; If yes, split the node and generate two hash values of the second node; if no, update the hash value of the node at the node position; The first node associated with the second node is determined, and a node commitment of the first node is updated.

8. The method according to claim 2, wherein The memory is divided into a first memory and a second memory, the first memory is used to process data processing requests for data reading, and the second memory is used to process data processing requests corresponding to data query, data addition, data deletion, and data modification; The determining of the initial state and final state of the data in the database during the data processing, and adding the initial state to the read set of the memory and adding the final state to the write set of the memory, includes: When the second memory processes the data processing request, it determines the initial state and final state of the data in the database during the data processing process, adds the initial state to the read set of the memory, and adds the final state to the write set of the memory.

9. A database verification method based on polynomial commitment and memory correctness detection, the method is applied to the verification side, characterized in that: The method comprises: Generate a data processing request and send it to the prover. The prover performs data processing based on the data processing request and provides feedback on the data processing results. During the data processing, the prover determines the initial and final states of the data in the database, adds the initial state to the read set in memory, and adds the final state to the write set in memory. The read set is used to store log records generated when accessing data in the database, and the write set is used to store log records generated when reading or changing data in the database. The prover generates state commitments for the initial and final states and sends them to the verifier. The prover receives the data processing result and state commitment sent by the prover and generates a first challenge value to send to the prover. The prover processes the log records in the read set and write set in the memory based on the first challenge value, obtains the log processing result, and feeds it back to the verifier. The prover sends the read set and write set to the verifier. Receive log processing results, read sets, and write sets, and verify the correctness of the read sets and write sets based on the state commitment and log processing results to determine the correctness of the memory verification to determine the correctness of the data processing results.

10. A database verification device based on polynomial commitment and memory correctness detection, the device being applied to a prover, characterized in that: The device comprises: A data state processing module is used to determine the initial state and final state of the data in the database during the data processing process, and add the initial state to the read set in the memory and the final state to the write set in the memory, wherein the read set is used to store log records generated when accessing data in the database, and the write set is used to store log records generated when reading or changing data in the database; The state commitment processing module is used to generate the state commitment of the initial state and the final state and send it to the verifier; A log record processing module, configured to receive a first challenge value from the verifier, and process the log records in the read set and the write set in the memory based on the first challenge value, obtain a log processing result, and feed it back to the verifier; The read-write set sending module is used to send the read set and write set to the verifier. The verifier verifies the correctness of the read set and write set based on the state commitment and log processing results to determine the correctness of the memory verification.