DETAILED ACTION
The claim objections are withdrawn based on the amendments filed 01/07/2026.
The 112(b) rejections are withdrawn based on the amendments filed 01/07/2026.
Claim 1-20 are pending.
Notice of Pre-AIA or AIA Status
The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA .
Priority
Receipt is acknowledged of certified copies of papers required by 37 CFR 1.55.
Response to Arguments
Applicant’s arguments with respect to claim(s) 1, 15, and 18 have been considered but are moot because the new ground of rejection does not rely on any reference applied in the prior rejection of record for any teaching or matter specifically challenged in the argument.
Regarding applicant’s argument that amended claim 1 and similar amended claims 15 and 18 overcome the 101 rejection, Examiner respectfully disagrees. Applicant argues that the efficiency of validity verification is improved, however it is unclear how the efficiency of validity verification is improved. Therefore, the 101 rejection is maintained.
Regarding applicant’s arguments, starting on page 6 of the remarks, that the prior art of record does not teach the amended claim limitations, this argument is moot in view of new grounds of rejection.
Claim Objections
Claims 1, 15 and 18 are objected to because of the following informalities:
In Claims 1, 15, and 18 “storing, associatively, the first storage address and the first sub-root nod to the blockchain” should read “storing, associatively, the first storage address and the first sub-root node to the blockchain.” Appropriate correction is required.
Claim Rejections - 35 USC § 101
35 U.S.C. 101 reads as follows:
Whoever invents or discovers any new and useful process, machine, manufacture, or composition of matter, or any new and useful improvement thereof, may obtain a patent therefor, subject to the conditions and requirements of this title.
Claims 1-3, 14, 17, and 20 are rejected under 35 U.S.C. 101 because the claimed invention is directed to abstract idea without significantly more. The claim(s) recite(s):
Claims 1, 15, and 18 recite generating data, comparing data, manipulating a data structure, and checking if a condition is satisfied.
Claims 2, 16, 19 recite generating and comparing data.
Claims 3, 14, 17, and 20 recite the transaction data or synchronization data being “configured for indicating the business to perform……… validity verification”.
Claims 8 and 9 recites receiving data and manipulating a data structure.
Claim 13 recites generating data and copying data from one place to another.
This judicial exception is not integrated into a practical application because the claims do not positively recite validation, they are just describing that the data indicates a node to perform validation. Therefore, there is no integration into a practical application. The claim(s) does/do not include additional elements that are sufficient to amount to significantly more than the judicial exception because the term “synchronizing” (copying data from one place to another) is a well-understood, routine, and conventional activity in the field.
Claim Rejections - 35 USC § 103
In the event the determination of the status of the application as subject to AIA 35 U.S.C. 102 and 103 (or as subject to pre-AIA 35 U.S.C. 102 and 103) is incorrect, any correction of the statutory basis (i.e., changing from AIA to pre-AIA ) for the rejection will not be considered a new ground of rejection if the prior art relied upon, and the rationale supporting the rejection, would be the same under either status.
The following is a quotation of 35 U.S.C. 103 which forms the basis for all obviousness rejections set forth in this Office action:
A patent for a claimed invention may not be obtained, notwithstanding that the claimed invention is not identically disclosed as set forth in section 102, if the differences between the claimed invention and the prior art are such that the claimed invention as a whole would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to which the claimed invention pertains. Patentability shall not be negated by the manner in which the invention was made.
Claim(s) 1, 3, 5, 7, 15, 17, 18, and 20 is/are rejected under 35 U.S.C. 103 as being unpatentable over US 20210326300 A1 to Luo et al. (Luo) in view of US 20220150050 A1 to Gundavelli et al. (Gundavelli), and in further view of US 20220222154 A1 to Pogde et al. (Pogde).
Regarding claim 1, Luo teaches a blockchain-based data processing method, performed by a computer device (Luo [0194], e.g., computer-readable storage medium, including an instruction for enabling a computer to run the block data archiving method disclosed in FIG. 2 in this application, or an instruction for enabling a computer to run the block data archiving method disclosed in FIG. 6 in this application) and comprising: in response to determining that a first state subtree satisfying a state archiving condition exists in a target state tree of a blockchain (Luo [0066], e.g., An event center of the first blockchain node monitors a process and a status of the first blockchain node. When the event center of the first blockchain node detects that the first blockchain node meets the archiving condition), generating an archiving transaction [based on a first leaf node and a first sub-root node that are] of the first state subtree (Luo [0066], e.g., the event center notifies a consensus unit of the first blockchain node of information such as block data that needs to be archived, and the consensus unit initiates an archiving request); archiving the first state subtree to a service device in response to the archiving transaction being successfully uploaded (Luo [0109], e.g., S206. A consensus blockchain node sends to-be-archived block data to a third-party storage server for archiving); [calling back a first storage address for the first state subtree archived to the storage device; storing, associatively, the first storage address and the first sub-root nod to the blockchain]; and deleting, from the target state tree, a node other than the first sub-root node in the first state subtree (Luo [0149], e.g., after receiving the archiving transaction sent by the client, the third blockchain node checks whether the archiving transaction is an archiving transaction of another blockchain node in the blockchain, and if yes, deletes block data corresponding to the archiving transaction, or if no, does not perform a deletion operation; See also para.[0182]), [the first sub-root node being configured to indicate that the first state subtree is archived].
Luo does not explicitly teach, but Gundavelli teaches generating an archiving transaction based on a first leaf node and a first sub-root node that are of the first state subtree (Gundavelli [0091], e.g., generate a root hash value of a Merkle tree 900 of FIG. 9 (also referred to as a hash tree herein) that is a tree structure in which each leaf node 905a, 905b, 905c, and 905d of the Merkle tree 900 is a hash of each block of data (e.g., each block 805-820 of the blockchain 220 may be a respective block of data). Each non-leaf node 910a and 910b may be a hash of its children, which may be the leaf nodes or other non-leaf nodes depending on the size of the Merkle tree 900. This results in a single hash called the Merkle root that is referred to as a root hash value 915 herein).
Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention, to have modified the teachings of Luo with the teachings of Gundavelli with reasonable expectation of success. One of ordinary skill in the art would have been motivated to make the modification for the benefit of reducing network cost and storage requirements (Gundavelli [0117], e.g., As such, the systems and methods of the present disclosure reduce network costs of transmitting and distributing a large blockchain. Furthermore, the blockchain of the present disclosure reduces the storage requirements of the nodes by distributing a compressed version of the blockchain).
Luo and Gundavelli do not explicitly teach, but Pogde teaches calling back a first storage address for the first state subtree archived to the storage device (Pogde [0177], e.g., To restore either a portion of the snapshot tree associated with the specific portions of data of the archived file system data at the particular time or the entire snapshot tree associated with the archived file system data at the particular time, a snapshot archive corresponding to the particular time is identified. The snapshot archive is stored at a remote storage location, such as cloud storage 106 or cluster(s) 108); storing, associatively, the first storage address and the first sub-root nod [to the blockchain] (Pogde Fig. 10A, Stub 1018a stores a pointer to memory location 418; Fig. 10B, Stub 1018a is now node 1018b and has two child stub nodes 1030a and 1034a) and the first sub-root node being configured to indicate that the first state subtree is archived (Pogde Fig. 10A, Stub 1018a stores a pointer to memory location 418).
Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention, to have modified the combined teachings of Luo and Gundavelli with the teachings of Pogde with reasonable expectation of success. One of ordinary skill in the art would have been motivated to make the modification for the benefit of reducing time and storage needed for a user request for data (Pogde [0048], e.g., restoring the entire snapshot tree data structure and associated archived file contents at the particular time may be too expensive (e.g., requires large amounts of time and system resources) to because the entire serialized archive associated with the particular time may be very large (e.g., TBs) compared to a small amount of initial amount of data desired to be accessed using the restored snapshot tree. The serialized snapshot tree data associated with the snapshot tree associated with the particular may be identified and used to at least partially restore the snapshot tree…… The user's request may be completed after the snapshot tree is restored to include a restored leaf node associated with the user's request. This reduces the amount to time and storage needed to restore the user's request).
Pogde does not explicitly teach of a blockchain system, however, Luo teaches archiving to the blockchain (Luo [0066], e.g., the event center notifies a consensus unit of the first blockchain node of information such as block data that needs to be archived, and the consensus unit initiates an archiving request).
Regarding claim 3, most of the limitations of this claim have been noted in the rejection of claim 1. Luo further teaches the generating the archiving transaction [based on the first leaf node and the first sub-root node that are of the first state subtree comprises: obtaining, in the target state tree, a first index number for the first leaf node] (Luo [0066], e.g., the event center notifies a consensus unit of the first blockchain node of information such as block data that needs to be archived, and the consensus unit initiates an archiving request); [and generating the archiving transaction based on the first index number and the first sub-root node of the first state subtree], and uploading the archiving transaction (Luo [0109], e.g., S206. A consensus blockchain node sends to-be-archived block data to a third-party storage server for archiving); and the method further comprises: synchronizing the archiving transaction to a business node in the blockchain (Luo [0114], e.g., S207. The third-party server or the consensus blockchain node returns an archiving result to each blockchain node; [0118], e.g., S208. Each blockchain node verifies the archiving result, and determines whether the archived block data is block data subject to a consensus between all the blockchain nodes), [wherein the archiving transaction is configured for indicating the business node to perform, based on the first sub-root node, validity verification on to-be-verified object information associated with the first index number].
Luo does not explicitly teach, but Gundavelli teaches obtaining, in the target state tree, a first index number for the first leaf node and generating the archiving transaction based on the first index number and the first sub-root node of the first state subtree (Gundavelli [0091], e.g., generate a root hash value of a Merkle tree 900 of FIG. 9 (also referred to as a hash tree herein) that is a tree structure in which each leaf node 905a, 905b, 905c, and 905d of the Merkle tree 900 is a hash of each block of data (e.g., each block 805-820 of the blockchain 220 may be a respective block of data). Each non-leaf node 910a and 910b may be a hash of its children, which may be the leaf nodes or other non-leaf nodes depending on the size of the Merkle tree 900. This results in a single hash called the Merkle root that is referred to as a root hash value 915 herein) and wherein the archiving transaction is configured for indicating the business node to perform, based on the first sub-root node, validity verification on to-be-verified object information associated with the first index number (Gundavelli [0110], e.g., the various hashing levels of the nodes in the hash tree that provide the root hash of the block in which the data is stored may be returned so that the client device 120 may reconstruct the hash of the block in which the data is located to verify that hash of the block to the hash of that block in the blockchain 220).
The motivation to combine is the same as that of claim 1.
Regarding claim 5, most of the limitations of this claim have been noted in the rejection of claim 1. Luo does not explicitly teach but Gundavelli teaches obtaining a state query request that carries second object information (Gundavelli [0109], e.g., The method 1300 may begin at step 1302 where a request to perform data action to data included in a first block of a first plurality of blocks of a blockchain is received) and that is transmitted by a blockchain node (Gundavelli [0109], e.g., the user 110 may query the blockchain data for verifying a transaction via, for example, a blockchain querying application executing on the first client device 120); determining, based on the state query request, a second index number having a mapping relationship with the second object information in the target state tree (Gundavelli [0110], e.g., the querying application may query block 1000, 1105, 1110, 1115, 1120 using the identifying information for the requested data/transaction); and in response to the second index number belonging to a first index number of the first leaf node and that is in the target state tree (Gundevalli [0111], e.g., If at step 1304 of method 1300 it is determined that the current new era genesis block or any of the subsequent new era blocks linked off the new era genesis block do not include the requested data, the method 1300 may proceed to step 1308 where a first plurality of blocks is accessed from the database where the first plurality of blocks is not provided in a current distributed version of the blockchain, and are stored in a database associated with an entity), returning archiving prompt information carrying a first storage address and the first sub-root node to the blockchain node (Gundavelli [0114], e.g., If the blockchain portion that is associated with the root hash value identified in the new era genesis block 1205 does not include the identifying information, then the node 205a may query the node identified in new era genesis block 1000 and so on until the identifying information is found), wherein the archiving prompt information is configured for indicating the blockchain node to query, based on the first storage address, the first state subtree in the service device (Gundavelli [0115], e.g., In other examples, the various hashing levels of the nodes in the hash tree that provide the root hash of the block in which the data is stored may be returned so that the client device 120 may reconstruct the hash of the block in which the data is located to verify that hash of the block to the hash of that block in the blockchain 220), and obtaining a leaf node corresponding to the second object information in the first state subtree (Gundavelli [0115], e.g., For example, the data action may include the query application returning the data that is requested to the user 110 via the first client device 120. In other examples, the data action may include the block in which the data is located may returned to the user 110 via the first client device 120).
The motivation to combine is the same as that of claim 1.
Regarding claim 7, most of the limitations of this claim have been noted in the rejection of claim 1. Luo further teaches wherein: the archiving the first state subtree in the service device comprises: obtaining business data associated with the first state subtree in the blockchain (Luo [0049], e.g., Each blockchain node has an independent ledger stored, which is managed and maintained by the blockchain node), and archiving both the business data and the first state subtree to the service device (Luo [0109], e.g., S206. A consensus blockchain node sends to-be-archived block data to a third-party storage server for archiving); and the method further comprises: in response to archiving success information that is for the business data and the first state subtree and that is returned by the service device being obtained, deleting the business data from the blockchain (Luo [0149], e.g., Optionally, after receiving the archiving transaction sent by the client, the third blockchain node checks whether the archiving transaction is an archiving transaction of another blockchain node in the blockchain, and if yes, deletes block data corresponding to the archiving transaction, or if no, does not perform a deletion operation; See also para.[0182]).
Regarding claim 15, Luo teaches an apparatus for processing a blockchain-based data, the apparatus comprising: a memory storing instructions (Luo [0194], e.g., In addition, an illustrative example of this application provides a computer-readable storage medium, including an instruction for enabling a computer); and a processor in communication with the memory, wherein, when the processor executes the instructions, the processor is configured to cause the apparatus to perform (Luo [0194], e.g., a computer-readable storage medium, including an instruction for enabling a computer to run the block data archiving method). The rest of the limitation recite the apparatus performing the method of claim 1, and is similarly analyzed.
Regarding claim 17, the claim recites the apparatus performing the method of claim 3, and is similarly analyzed.
Regarding claim 18, Luo teaches a non-transitory computer-readable storage medium, storing computer-readable instructions (Luo [0194], e.g., In addition, an illustrative example of this application provides a computer-readable storage medium, including an instruction for enabling a computer), wherein, the computer-readable instructions, when executed by a processor, are configured to cause the processor to perform (Luo [0194], e.g., a computer-readable storage medium, including an instruction for enabling a computer to run the block data archiving method). The rest of the limitation recite the non-transitory computer-readable storage medium performing the method of claim 1, and is similarly analyzed.
Regarding claim 20, the claim recites the non-transitory computer-readable storage medium performing the method of claim 3, and is similarly analyzed.
Claim(s) 2, 16, and 19 is/are rejected under 35 U.S.C. 103 as being unpatentable over Luo in view of Gundavelli and Pogde, and in further view of US 20160364395 A1 to Shorten et al. (Shorten).
Regarding claim 2, most of the limitations of this claim have been noted in the rejection of claim 1. Luo further teaches determining a total quantity of first leaf nodes (Luo [0068], e.g., 1. A blockchain node detects that a quantity of blocks stored in the blockchain node); in response to the total quantity of first leaf nodes being greater than or equal to an archiving quantity threshold (Luo [0068], e.g., 1. A blockchain node detects that a quantity of blocks stored in the blockchain node is greater than a preset block quantity, and determines that the block data archiving condition is met), obtaining a generation timestamp of the first sub-root node (Luo [0071], e.g., 4. A blockchain node monitors a creation time of a block stored in the blockchain node); determining maintenance duration of the first sub-root node based on the generation timestamp (Luo [0071], e.g., determines that there is a block whose creation time is greater than a preset time, and determines that the block data archiving condition is met), [maintenance duration being duration the first sub-root node remains unchanged preceding the generation timestamp]; in response to the maintenance duration being greater than or equal to a maintenance duration threshold (Luo [0071], e.g., determines that there is a block whose creation time is greater than a preset time, and determines that the block data archiving condition is met), determining that the first state subtree satisfies the state archiving condition (Luo [0075], e.g., In S202, the consensus unit of the first blockchain node receives a notification sent by the event center, indicating that the first blockchain node meets the block data archiving condition; Note that block archiving conditions can be based on a combination of quantity of leaf nodes and timestamp, see para.[0072]).
Luo, Gundavelli, and Pogde do not explicitly teach, but Shorten teaches maintenance duration being duration the [first sub-root] node remains unchanged preceding the generation timestamp (Shorten [0019], e.g., The management date is used as the start date for the record's retention period; [0022], e.g., The cutoff logic 250 calculates a “cutoff date” that divides old records from records that are still in the retention period; [0023], e.g., The criteria logic 260 applies archive eligibility criteria to the old records identified by the cutoff logic 250…… the archive eligibility criteria might specify that certain status fields need to be set to Final for the record to be deemed “inactive” and eligible for archiving; [0025], e.g., The marking logic 270 marks each record that the criteria logic 260 determines to have met the archive eligibility criteria as eligible for archiving…… The next time the archive logic 130 accesses the prime table locate records for archiving, the marked records will be archived by compressing the records, moving the records to secondary storage; Note records have a field indicating whether a record is inactive (unchanged). Once a record is deemed old, a record meets the archive eligibility).
Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention, to have modified the combined teachings of Luo, Gundavelli, and Pogde with the teachings of Shorten with reasonable expectation of success. One of ordinary skill in the art would have been motivated to make the modification for the benefit of providing additional archiving criteria to save memory and improve processing time (Shorten [0038], e.g., Archiving allows inactive records to be stored in a less expensive and/or less memory consuming manner. Providing additional archiving criteria beyond simple expiration of a retention period allows the retention period to be set to a shorter period of time so that many “routine” records can be archived earlier and the few records that remain active due to some special reason will be maintained in primary memory. This saves memory and improves processing time).
Shorten does not explicitly teach, but Luo teaches the node being a first sub-root node (Luo [0066], e.g., An event center of the first blockchain node monitors a process and a status of the first blockchain node).
Regarding claim 16, the claim recites the apparatus performing the method of claim 2, and is similarly analyzed.
Regarding claim 19, the claim recites the non-transitory computer-readable storage medium performing the method of claim 2, and is similarly analyzed.
Claim(s) 4, 6 is/are rejected under 35 U.S.C. 103 as being unpatentable over Luo in view of Gundavelli and Pogde, and in further view of US 20200233835 A1 to Guturi et al. (Guturi).
Regarding claim 4, most of the limitations of this claim have been noted in the rejection of claim 1. Luo teaches uploading the [subtree merging] transaction (Luo [0109], e.g., S206. A consensus blockchain node sends to-be-archived block data to a third-party storage server for archiving) and in response to the [subtree merging] transaction being successfully uploaded, deleting, from the target state tree, both the first sub-root node and the second sub-root node (Luo [0149], e.g., Optionally, after receiving the archiving transaction sent by the client, the third blockchain node checks whether the archiving transaction is an archiving transaction of another blockchain node in the blockchain, and if yes, deletes block data corresponding to the archiving transaction, or if no, does not perform a deletion operation),
Luo does not explicitly teach, but Gundavelli teaches in response to a target node in the target state tree being a parent node to which a second state subtree belongs and a parent node to which the first state subtree belongs at the same time (Gundevelli Fig. 9 e.g., 910a (first state subtree) and 910b (second state subtree) share the same parent node 915), generating a subtree merging transaction based on a second sub-root node of the second state subtree, the first sub-root node, and the target node (Gundavelli [0091], e.g., generate a root hash value of a Merkle tree 900 of FIG. 9 (also referred to as a hash tree herein) that is a tree structure in which each leaf node 905a, 905b, 905c, and 905d of the Merkle tree 900 is a hash of each block of data (e.g., each block 805-820 of the blockchain 220 may be a respective block of data). Each non-leaf node 910a and 910b may be a hash of its children, which may be the leaf nodes or other non-leaf nodes depending on the size of the Merkle tree 900. This results in a single hash called the Merkle root that is referred to as a root hash value 915 herein; Note element 915 (target node), 910a (first state subtree) and 910b (second state subtree)), [wherein the second state subtree is a state subtree satisfying the state archiving condition in the target state tree, and an archiving timestamp corresponding to the second state subtree is earlier than an archiving timestamp corresponding to the first state subtree; wherein the target node in the target state tree is configured for indicating that both the first state subtree and the second state subtree are archived].
The motivation to combine is the same as that of claim 1.
Luo, Gundavelli, and Pogde do not explicitly teach, Guturi teaches wherein the second state subtree is a state subtree satisfying the state archiving condition in the target state tree and an archiving timestamp corresponding to the second state subtree is earlier than an archiving timestamp corresponding to the first state subtree (Guturi [0032], e.g., the tree data structure allows a chain of snapshot trees (i.e., different snapshot tree versions) to be linked together by allowing a node of a later version of a snapshot tree to reference a node of a previous version of a snapshot tree; Note that Guturi teaches that tree data structure allows, chains of snapshot trees, and in combination with Gundavelli, the leaf nodes holds the snapshot trees. Also Note that previous version and later version imply that the timestamp of the previous version is earlier than the later version), wherein the target node in the target state tree is configured for indicating that both the first state subtree and the second state subtree are archived (Guturi [0032], e.g., the tree data structure allows a chain of snapshot trees to be linked together by allowing a node of a later version of a snapshot tree to reference a node of a previous version of a snapshot tree; Note Guturi in combination with Gundavelli teaches that the parent node 915 can be a pointer to a previous version of a snapshot tree which corresponds to the archived subtrees) and the transaction being a subtree merging transaction (Guturi [0032], e.g., In some embodiments, the tree data structure allows a chain of snapshot trees (i.e., different snapshot tree versions) to be linked together by allowing a node of a later version of a snapshot tree to reference a node of a previous version of a snapshot tree).
Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention, to have modified the combined teachings of Luo, Gundavelli, and Pogde with the teachings of Guturi with reasonable expectation of success. One of ordinary skill in the art would have been motivated to make the modification for the benefit of faster search times by serializing the data (Guturi [0029], e.g., to archive the tree data structure to such a storage medium, the tree data structure is serialized into a data file comprising a flat set of data. The serialized data file may be encoded in a manner that allows the serialized data file to be utilized to reconstruct a desired portion of the tree data structure to obtain a data of interest from the serialized data file without the need to reconstruct the entire tree data structure).
Regarding claim 6, most of the limitations of this claim have been noted in the rejection of claim 1. Luo further teaches transmitting the target node, the first state subtree, and the second storage address to the service device respectively, to enable the service device to write the first state subtree and the target node based on the second storage address (Luo [0109], e.g., S206. A consensus blockchain node sends to-be-archived block data to a third-party storage server for archiving) and synchronously deleting the first sub-root node and a second sub-root node of the second state subtree (Luo [0149], e.g., Optionally, after receiving the archiving transaction sent by the client, the third blockchain node checks whether the archiving transaction is an archiving transaction of another blockchain node in the blockchain, and if yes, deletes block data corresponding to the archiving transaction, or if no, does not perform a deletion operation; See also para.[0182]).
Luo does not explicitly teach, but Gundavelli teaches wherein: the archiving the first state subtree to the service device comprises: in response to a target node in the target state tree being a parent node to which a second state subtree belongs and a parent node to which the first state subtree belongs at the same time (Gundevelli Fig. 9 e.g., 910a (first state subtree) and 910b (second state subtree) share the same parent node 915), [obtaining a second storage address of the second state subtree in the service device, wherein the second state subtree is a state subtree satisfying the state archiving condition in the target state tree, and an archiving timestamp corresponding to the second state subtree is earlier than an archiving timestamp corresponding to the first state subtree] and merge the first state subtree and the second state subtree to obtain a merged state subtree, wherein the target node is a tree root of the merged state subtree (Gundavelli [0091], e.g., generate a root hash value of a Merkle tree 900 of FIG. 9 (also referred to as a hash tree herein) that is a tree structure in which each leaf node 905a, 905b, 905c, and 905d of the Merkle tree 900 is a hash of each block of data (e.g., each block 805-820 of the blockchain 220 may be a respective block of data). Each non-leaf node 910a and 910b may be a hash of its children, which may be the leaf nodes or other non-leaf nodes depending on the size of the Merkle tree 900. This results in a single hash called the Merkle root that is referred to as a root hash value 915 herein; Note element 915 (target node), 910a (first state subtree) and 910b (second state subtree)); [wherein the target node in the target state tree is configured for indicating that both the first state subtree and the second state subtree are archived].
The motivation to combine Gundavelli is the same as that of claim 1.
Luo, Gundavelli, and Pogde do not explicitly teach, but Guturi teaches obtaining a second storage address of the second state subtree in the service device (Guturi [0032], e.g., the tree data structure allows a chain of snapshot trees to be linked together by allowing a node of a later version of a snapshot tree to reference a node of a previous version of a snapshot tree; Note Guturi in combination with Gundavelli teaches a node can be a pointer to a previous version of a snapshot tree which corresponds to the archived subtrees), wherein the second state subtree is a state subtree satisfying the state archiving condition in the target state tree and the archiving timestamp corresponding to the second state subtree is earlier than an archiving timestamp corresponding to the first state subtree (Guturi [0032], e.g., the tree data structure allows a chain of snapshot trees (i.e., different snapshot tree versions) to be linked together by allowing a node of a later version of a snapshot tree to reference a node of a previous version of a snapshot tree; Note that Guturi teaches that tree data structure allows, chains of snapshot trees, and in combination with Gundavelli, the leaf nodes holds the snapshot trees. Also Note that previous version and later version imply that the timestamp of the previous version is earlier than the later version), and wherein the target node in the target state tree is configured for indicating that both the first state subtree and the second state subtree are archived (Guturi [0032], e.g., the tree data structure allows a chain of snapshot trees to be linked together by allowing a node of a later version of a snapshot tree to reference a node of a previous version of a snapshot tree; Note Guturi in combination with Gundavelli teaches that the parent node 915 can be a pointer to a previous version of a snapshot tree which corresponds to the archived subtrees).
The motivation to combine Guturi is the same as that of claim 4.
Claim(s) 8, 10, and 12-13 is/are rejected under 35 U.S.C. 103 as being unpatentable over Luo in view of Gundavelli and Pogde, and in further view of US 20200349284 A1 to Saket et al. (Saket).
Regarding claim 8, most of the limitations of this claim have been noted in the rejection of claim 1. Luo, Gundavelli, and Pogde do not explicitly teach, but Saket teaches wherein: the first leaf node is configured for indicating a current state of first object information (Saket [0063], e.g., an empty Merkle tree may be initialized with all its leaf nodes set to some default value, for e.g. the all zeros bit string), the first object information comprises first business information (Saket [0064], e.g., The attributes that are maintained within a buyer's “active leaf” may include a standard cryptographic hash (sha256) value of the following pre-image: the concatenation of (i) a secret (known only to the buyer) random bit string, (ii) its current rating sum (encoded as a bit string), and (iii) its current number of ratings (encoded as a bit string)) and the first business information comprises second business information (Saket [0064], e.g., (ii) its current rating sum (encoded as a bit string), and (iii) its current number of ratings (encoded as a bit string)) and the method further comprises: obtaining the first business information provided by the service device (Saket [0065], e.g., the anonymous system 431 is associated with leaf node 411A and uploads a request 432); constructing an initial state tree comprising at least two initial leaf nodes in a smart contract, wherein the at least two initial leaf nodes comprise a first initial leaf node for the first business information (Saket [0063], e.g., an empty Merkle tree may be initialized with all its leaf nodes set to some default value, for e.g. the all zeros bit string) and the first initial leaf node is configured for indicating that a business transaction comprising the first business information does not exist in the blockchain (Saket [0063], e.g., leaf nodes set to some default value, for e.g. the all zeros bit string); obtaining a first business transaction comprising the second business information (Saket [0065], e.g., When the buyer (anonymous system 431) calls the smart contract to provide a new rating (request 432); updating, based on the first business transaction, the first initial leaf node in the initial state tree to the first leaf node (Saket [0065], e.g., the buyer provides the new active leaf 411B containing the standard cryptographic hash value of the following new pre-image: the concatenation of (i) a new secret random bit string (known only to the buyer, (ii) the updated rating sum, and (iii) the updated number of ratings); and determining, as the target state tree, the initial state tree in which the first leaf node is updated (Saket [0074], e.g., If successful, the intended operations including the Merkle-Tree update, storing the rating and the nullifier, and the like, are performed by the smart contract, which involves updating a number of key-values in the ledger of the blockchain 401).
Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention, to have modified the combined teachings of Luo, Gundavelli, and Pogde with the teachings of Saket with reasonable expectation of success. One of ordinary skill in the art would have been motivated to make the modification for the benefit of tracking data anonymously (Saket [0001], e.g., This application generally relates to a process for tracking behavior anonymously, and more particularly, to a blockchain which manage a storage structure for tracking data without knowing or revealing an identify of the participant whose data is being tracked).
Regarding claim 10, most of the limitations of this claim have been noted in the rejection of claim 8. Luo, Gundavelli, and Pogde do not explicitly teach, but Saket teaches wherein the updating, based on the first business transaction, the first initial leaf node in the initial state tree to the first leaf node comprises: uploading the first business transaction (Saket Fig. 4b, e.g., data 432 is uploaded to the blockchain); in response to the first business transaction being successfully uploaded, obtaining, based on the first business transaction, a current state of the second business information (Saket [0065], e.g., When the buyer (anonymous system 431) calls the smart contract to provide a new rating (request 432), the buyer provides the new active leaf 411B containing the standard cryptographic hash value of the following new pre-image: the concatenation of (i) a new secret random bit string (known only to the buyer, (ii) the updated rating sum, and (iii) the updated number of ratings); generating, based on the current state of the second business information, a current state value configured for indicating the current state of the second business information (Saket Fig. 4B, e.g., generating new leaf 411B); and updating the first initial leaf node based on the current state value to obtain the first leaf node (Saket [0074], e.g., If successful, the intended operations including the Merkle-Tree update, storing the rating and the nullifier, and the like, are performed by the smart contract, which involves updating a number of key-values in the ledger of the blockchain 401; See also Fig. 4B).
The motivation to combine is the same as that of claim 8.
Regarding claim 12, most of the limitations of this claim have been noted in the rejection of claim 10. Luo, Gundavelli, and Pogde do not explicitly teach, but Saket teaches wherein the updating the first initial leaf node based on the current state value to obtain the first leaf node comprises: updating an initial state value of the first initial leaf node to the current state value (Saket [0065], e.g., When the buyer (anonymous system 431) calls the smart contract to provide a new rating (request 432), the buyer provides the new active leaf 411B containing the standard cryptographic hash value of the following new pre-image: the concatenation of (i) a new secret random bit string (known only to the buyer, (ii) the updated rating sum, and (iii) the updated number of ratings; See also Fig. 4B, e.g., old data is replaced with new data), wherein the first initial leaf node indicates, through the initial state value, that the business transaction comprising the first business information does not exist in the blockchain (Saket [0063], e.g., an empty Merkle tree may be initialized with all its leaf nodes set to some default value, for e.g. the all zeros bit string); and determining, as the first leaf node, the first initial leaf node in which the current state value is updated (Saket [0074], e.g., If successful, the intended operations including the Merkle-Tree update, storing the rating and the nullifier, and the like, are performed by the smart contract, which involves updating a number of key-values in the ledger of the blockchain 401).
The motivation to combine is the same as that of claim 8.
Regarding claim 13, most of the limitations of this claim have been noted in the rejection of claim 8. Luo further teaches obtaining a target tree root of the target state tree in response to a system time reaching a tree root update periodicity (Luo [0071], e.g., 4. A blockchain node monitors a creation time of a block stored in the blockchain node, determines that there is a block whose creation time is greater than a preset time, and determines that the block data archiving condition is met), [wherein the target tree root is different from an initial tree root of the initial state tree]; generating a tree root publishing transaction based on the system time and the target tree root (Luo [0066], e.g., the event center notifies a consensus unit of the first blockchain node of information such as block data that needs to be archived, and the consensus unit initiates an archiving request), and uploading the tree root publishing transaction (Luo [0109], e.g., S206. A consensus blockchain node sends to-be-archived block data to a third-party storage server for archiving); and in response to the tree root publishing transaction being successfully uploaded, generating synchronization data for a business node based on the target state tree (Luo [0149], e.g., after receiving the archiving transaction sent by the client, the third blockchain node checks whether the archiving transaction is an archiving transaction of another blockchain node in the blockchain), and synchronizing the synchronization data to the business node, wherein the business node belongs to the blockchain (Luo 0149], e.g., after receiving the archiving transaction sent by the client, the third blockchain node checks whether the archiving transaction is an archiving transaction of another blockchain node in the blockchain, and if yes, deletes block data corresponding to the archiving transaction, or if no, does not perform a deletion operation).
Luo, Gundavelli, and Pogde do not explicitly teach, but Saket teaches wherein the target tree root is different from an initial tree root of the initial state tree (Saket [0063], e.g., an empty Merkle tree may be initialized with all its leaf nodes set to some default value, for e.g. the all zeros bit string; Note the initial tree is empty, and the target root tree is after it has been filled).
The motivation to combine is the same as that of claim 8.
Claim(s) 9 is/are rejected under 35 U.S.C. 103 as being unpatentable over Luo in view of Gundavelli, Pogde, and Saket, and in further view of US 20140052710 A1 to Tang et al. (Tang) and US 20020107893 A1 to Ohkouchi et al. (Ohkouchi).
Regarding claim 9, most of the limitations of this claim have been noted in the rejection of claim 8. Luo, Gundavelli, and Pogde do not explicitly teach, but Saket teaches obtaining the first business information provided by the service device comprises: obtaining at least two pieces of business information provided by the service device (Saket [0065], e.g., the buyer provides the new active leaf 411B containing the standard cryptographic hash value of the following new pre-image: the concatenation of (i) a new secret random bit string (known only to the buyer, (ii) the updated rating sum, and (iii) the updated number of ratings), wherein the at least two pieces of business information comprise the first business information (Saket [0065], e.g., (i) a new secret random bit string (known only to the buyer, (ii) the updated rating sum, and (iii) the updated number of ratings); [and the constructing the initial state tree comprising at least two initial leaf nodes in the smart contract comprises: determining a total quantity of pieces of information of the at least two pieces of business information, and determining, based on the total quantity of pieces of information, a total quantity of leaves; constructing the initial state tree comprising the at least two initial leaf nodes in the smart contract, wherein a total quantity of at least two initial leaf nodes is equal to the total quantity of leaves; determining at least two index numbers respectfully configured for indicating the at least two initial leaf nodes in the initial state tree, wherein the at least two index numbers comprise the first index number configured for indicating the first initial leaf node; and constructing a mapping relationship for the at least two index numbers and the at least two pieces of business information, wherein the mapping relationship exists between the first index number and the first business information].
The motivation to combine Saket is the same as that of claim 8.
Luo, Gundavelli, Pogde, and Saket do not explicitly teach, but Tang teaches constructing the initial state tree comprising at least two initial leaf nodes in the smart contract comprises: determining a total quantity of pieces of information of the at least two pieces of business information (Tang [0060], e.g., FIG. 2 schematically shows the ten-forks tree structure built according to data information set [42230, 42231, 42236, 42453, 42457, 6247, 6255, 6256, 6258] (i.e., including the above nine data information)), and determining, based on the total quantity of pieces of information, a total quantity of leaves (Tang Fig. 2, e.g., a node for each piece of data, 9 pieces of information results in 9 leaf nodes); constructing the initial state tree comprising the at least two initial leaf nodes in the smart contract (Tang [0060], e.g., FIG. 2 schematically shows the ten-forks tree structure built according to data information set [42230, 42231, 42236, 42453, 42457, 6247, 6255, 6256, 6258]), wherein a total quantity of at least two initial leaf nodes is equal to the total quantity of leaves (Tang Fig. 2, e.g., a node for each piece of data, 9 pieces of information results in 9 leaf nodes).
Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention, to have modified the combined teachings of Luo, Gundavelli, Pogde, and Saket with the teachings of Tang with reasonable expectation of success. One of ordinary skill in the art would have been motivated to make the modification for the benefit increasing scalability, storage space, and faster query (Tang [0006], e.g., Therefore, there exists the following requirement: providing a device and method of mass data storage based on tree structure, which is easy to extend, saving storage space, and can significantly improve the query efficiency).
Luo, Gundavelli, Pogde, Saket and Tang do not explicitly teach, but Ohkouchi teaches determining at least two index numbers respectfully configured for indicating the at least two initial leaf nodes in the initial state tree, wherein the at least two index numbers comprise a first index number configured for indicating the first initial leaf node (Ohkouchi [0041], e.g., In the index management table 402 is stored information containing at least an index number 402a for identifying a node; [0042], e.g., The index number 502a is a number assigned to that leaf, and is unequivocal among the nodes and leaves contained in all tree structures); and constructing a mapping relationship for the at least two index numbers and the at least two pieces of [business] information (Ohkouchi [0042], e.g., The leaf information 501 includes an index management table 502 and a leaf substance 504), wherein the mapping relationship exists between the first index number and the first business information (Ohkouchi Fig. 5 and [0042], e.g., The leaf information 501 includes an index management table 502 and a leaf substance 504).
Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention, to have modified combined teachings of Luo, Gundavelli, Pogde, Saket, and Tang with the teachings of Ohkouchi with reasonable expectation of success. One of ordinary skill in the art would have been motivated to make the modification for the benefit faster and easier querying of data (Ohkouchi [0008], e.g., An object of the present invention is to provide a data display method, together with a system and program therefor, capable of easily selecting and displaying a plurality of tree structures to which one datum belongs).
Claim(s) 11 is/are rejected under 35 U.S.C. 103 as being unpatentable over Luo in view of Gundavelli, Pogde, and Saket, and in further view of US 20230273897 A1 to Van Dyck.
Regarding claim 11, most of the limitations of this claim have been noted in the rejection of claim 10. Luo, Gundavelli, and Pogde do not explicitly teach, but Saket teaches wherein the generating, based on the current state of the second business information, the current state value configured for indicating the current state of the second business information comprises: in response to a second business transaction comprising the second business information being obtained within a state update [periodicity] for the current state of the second business information and the second business transaction is successfully uploaded, obtaining, based on the second business transaction, an updated state configured for updating the current state of the second business information; or in response to the current state of the second business information being maintained within the state update [periodicity], (Saket 0065], e.g., When the buyer (anonymous system 431) calls the smart contract to provide a new rating (request 432), the buyer provides the new active leaf 411B containing the standard cryptographic hash value of the following new pre-image: the concatenation of (i) a new secret random bit string (known only to the buyer, (ii) the updated rating sum, and (iii) the updated number of ratings) generating the current state value configured for indicating the current state of the second business information (Saket [0074], e.g., If successful, the intended operations including the Merkle-Tree update, storing the rating and the nullifier, and the like, are performed by the smart contract, which involves updating a number of key-values in the ledger of the blockchain 401).
The motivation to combine with Saket is the same as that of claim 8.
Luo, Gundavelli, Pogde, and Saket do not explicitly teach, but Van Dyck teaches state update periodicity (Van Dyck [0052], e.g., The archive manager identifies the one or more non-compliant archived objects having a corresponding expiration time that expires before the expiration time associated with the initial archive and updates the corresponding expiration time to be complaint with a data management policy associated with the initial archive (e.g., to be the expiration time associated with the initial archive)).
Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention, to have modified the combined teachings of Luo, Gundavelli, Pogde, and Saket with the teachings of Van Dyck with reasonable expectation of success. One of ordinary skill in the art would have been motivated to make the modification for the benefit of reducing search time (Saket [0038], e.g., reduces the amount of time and resources needed to perform a compliance scan by reducing a portion of the tree data structure corresponding to the subsequent archive that needs to be traversed).
Claim(s) 14 is/are rejected under 35 U.S.C. 103 as being unpatentable over Luo in view of Gundavelli, Pogde, and Saket, and in further view of (“Merkle Tree, a Simple Explanation and Implementation.” Medium, Coinmonks, 20 July 2022) to Then (Then).
Regarding claim 14, most of the limitations of this claim have been noted in the rejection of claim 13. Luo, Gundavelli, Pogde, and Saket does not explicitly teach, but Then teaches wherein the generating synchronization data for the business node based on the target state tree comprises: obtaining a synchronization leaf node [having synchronization permission with the business node] in the target state tree (Then [Merkle Proof], e.g., If we are interested in verifying if the hash 41b6 is actually included in the Merkle root (da07) then we would only need to have the hashes in color), and obtaining a state verification path corresponding to the synchronization leaf node (Then [Merkle Proof], e.g., colored nodes in the figure); and generating the synchronization data based on the synchronization leaf node, the state verification path, and the tree root [publishing transaction] (Then [Merkle Proof], e.g., If after applying our hash (41b6) to the Merkle proof we get the expected da07 Merkle root, then we know that our hash is part of the Merkle root. In this case, for 11 hashes, we only needed 4 hashes, along our hash 41b6 to be able to reconstruct the Merkle root da07).
Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention, to have modified the combined teachings of Luo, Gundavelli, Pogde, and Saket with the teachings of Then with reasonable expectation of success. One of ordinary skill in the art would have been motivated to make the modification for the benefit of efficiently verifying nodes within a tree (Then [Merkle Proof], e.g., With this information, we notice a pattern and we can determine that we only need about log(n) number of hashes to be able to check if a hash belongs to a certain Merkle root, which is really efficient, instead of having to hash them all or to have all the hashes to verify that).
The reference Then does not explicitly teach, but Gundavelli teaches a synchronizing leaf node having synchronization permission with a business node (Gundavelli [0082], e.g., At step 645, the published block is broadcast to the blockchain network 130a for validation) and a tree root publishing transaction (Gundavelli [0081], e.g., At step 635, the blockchain network 130a may wait for a block to be published. Validated transactions may be added to the block being assembled by a node 205 until it reaches a minimum size specified by the blockchain).
The motivation to combine with Gundavelli is the same as that of claim 1.
Conclusion
THIS ACTION IS MADE FINAL. Applicant is reminded of the extension of time policy as set forth in 37 CFR 1.136(a).
A shortened statutory period for reply to this final action is set to expire THREE MONTHS from the mailing date of this action. In the event a first reply is filed within TWO MONTHS of the mailing date of this final action and the advisory action is not mailed until after the end of the THREE-MONTH shortened statutory period, then the shortened statutory period will expire on the date the advisory action is mailed, and any nonprovisional extension fee (37 CFR 1.17(a)) pursuant to 37 CFR 1.136(a) will be calculated from the mailing date of the advisory action. In no event, however, will the statutory period for reply expire later than SIX MONTHS from the mailing date of this final action.
Contact Information
Any inquiry concerning this communication or earlier communications from the examiner should be directed to LAWRENCE TRUONG whose telephone number is (571)272-6973. The examiner can normally be reached Monday - Friday, 8:00 am - 4 pm ET.
Examiner interviews are available via telephone, in-person, and video conferencing using a USPTO supplied web-based collaboration tool. To schedule an interview, applicant is encouraged to use the USPTO Automated Interview Request (AIR) at http://www.uspto.gov/interviewpractice.
If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, Ali Shayanfar can be reached at (571) 270-1050. The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300.
Information regarding the status of published or unpublished applications may be obtained from Patent Center. Unpublished application information in Patent Center is available to registered users. To file and manage patent submissions in Patent Center, visit: https://patentcenter.uspto.gov. Visit https://www.uspto.gov/patents/apply/patent-center for more information about Patent Center and https://www.uspto.gov/patents/docx for information about filing in DOCX format. For additional questions, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free). If you would like assistance from a USPTO Customer Service Representative, call 800-786-9199 (IN USA OR CANADA) or 571-272-1000.
/LAWRENCE TRUONG/Examiner, Art Unit 2434
/NOURA ZOUBAIR/Primary Examiner, Art Unit 2434