INTERACTIVE PROOF TO VALIDATE OUTSOURCED DATA STREAM PROCESSING
First Claim
1. A method for analyzing a data stream, the method comprising:
- receiving, from a prover configured to process the data stream, a first data block and a sibling data block, wherein the first data block and the sibling data block are associated with a first level of a binary tree of hash values;
calculating a current hash value using the first data block, the sibling data block, and a first random number; and
processing a next level in the binary tree, wherein the processing of the next level in the binary tree comprises;
sending, to the prover, a current random number and a request for a sibling hash value, wherein the sibling hash value is a sibling of the current hash value;
receiving the sibling hash value;
determining a subsequent random number; and
calculating a subsequent hash value using the current hash value, the sibling hash value, and the subsequent random number.
1 Assignment
0 Petitions
Accused Products
Abstract
A method for validating outsourced processing of a data stream arriving at a streaming data warehouse of a data service provider includes a proof protocol. A verifier acting on behalf of a data owner of the data stream may interact with a prover acting on behalf of the data service provider. The verifier may calculate a first root hash value of a binary tree during single-pass processing of the original data stream with limited computational effort. A second root hash value may be calculated using the proof protocol between the verifier and the prover. The prover is requested to provide certain queried values before receiving random numbers used to generate subsequent responses dependent on the provided values. The proof protocol may be used to validate the data processing performed by the data service provider.
-
Citations
20 Claims
-
1. A method for analyzing a data stream, the method comprising:
-
receiving, from a prover configured to process the data stream, a first data block and a sibling data block, wherein the first data block and the sibling data block are associated with a first level of a binary tree of hash values; calculating a current hash value using the first data block, the sibling data block, and a first random number; and processing a next level in the binary tree, wherein the processing of the next level in the binary tree comprises; sending, to the prover, a current random number and a request for a sibling hash value, wherein the sibling hash value is a sibling of the current hash value; receiving the sibling hash value; determining a subsequent random number; and calculating a subsequent hash value using the current hash value, the sibling hash value, and the subsequent random number. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A computer system for validating a data stream, comprising:
-
a processor configured to access memory media; wherein the memory media include instructions executable by the processor to; store a first root hash for the data stream, wherein the first root hash corresponds to a number of levels in a binary tree; calculate a second root hash for the data stream using a proof protocol and a prover associated with a data service provider receiving the data stream, the proof protocol comprising instructions executable by the processor to; receive, from the prover, a first data block in the binary tree and a second data block that is a sibling of the first data block; calculate a first hash value using the first data block, the second data block, and a first random number that is kept confidential with respect to the prover; after calculating the first hash value, calculate a hash value for a next level in the binary tree, the calculating of the hash value for the next level comprising instructions executable by the processor to; send, to the prover, a random number used to calculate a previous hash value and a request for a sibling hash value; receive the sibling hash value from the prover; and calculate a parent hash value using the previous hash value, the sibling hash value, and a next random number that is kept confidential with respect to the prover; and recursively perform the calculating of the hash value for the next level for successive levels in the binary tree, using a preceding parent hash value as the previous hash value and a new random number as the next random number, until the second root hash for the binary tree is obtained; and determine whether the first root hash matches the second root hash. - View Dependent Claims (9, 10, 11, 12, 13)
-
-
14. Computer-readable memory media, including instructions for validating a data stream arriving at a data service provider, the instructions executable to:
-
store a first root hash value for the data stream, wherein the first root hash value is derived based on a number of levels in a binary tree; calculate a second root hash value for the data stream using a proof protocol and a prover associated with the data service provider, the proof protocol comprising instructions executable to; receive, from the prover, a first data block in the binary tree and a second data block that is a sibling of the first data block; calculate a first hash value using the first data block, the second data block, and a first random number that is kept confidential with respect to the prover; after calculating the first hash value, processing a next level in the binary tree by; sending, to the prover, a random number used to calculate a current hash value; receiving a sibling hash value from the prover; and calculating a parent hash value using the current hash value, the sibling hash value, and a next random number that is kept confidential with respect to the prover; and recursively perform the processing the next level in the binary tree for successive levels in the binary tree, using a preceding parent hash value as the current hash value and a new random number as the next random number, until the second root hash value for the binary tree is obtained. - View Dependent Claims (15, 16, 17, 18, 19, 20)
-
Specification