Proof-of-storage (PoS) is a cryptographic protocol used primarily to verify the integrity of a remote file. This is done by sending an encoded copy of the data to a server and then executing a challenge-response protocol to check the data's integrity. This protocol is normally used when considering the efficiency of a cloud storage server.
Participants in a proof-of-storage scheme are provers or verifiers:
- Provers—participants who are storing some data
- Verifiers—participants who validate that the provers are storing the data
Verifiers issue challenges to provers, who in turn respond with a proof according to the specific proof-of-storage scheme being used.
There are multiple proof schemes stemming from proof-of-storage, each differing to some degree in its properties. Common properties shared by various proof-of-storage schemes include the following:
- Privately verifiable—A user can verify that data is stored using a secret verification key generated during setup.
- Publicly verifiable—Any party with access to public data (e.g. a public verification key) can verify that data is stored without access to the original data itself or any secret information generated during the scheme setup.
- Transparent—No information can be used to enable a prover to generate a valid proof without having stored data. This is useful in decentralized storage networks so users aren't required to trust other users or verifiers to generate secret keys.
- Retrievable—It's possible for verifiers to extract and reconstruct the stored data simply by issuing multiple challenges to provers and aggregating their corresponding proofs.
- Dynamic—Users can dynamically update the data stored externally, rather than requiring a completely new setup whenever data needs to be changed.
- Non-outsourceable—Provers cannot outsource their work to other provers and still convince verifiers that they have done the work themselves, be it storage, computation, or proof-generation .
- Authenticated —The identity of a prover can be verified during the proof verification process by means such as a digital signature.
- Time-bounded—Proofs are only valid during a given time period. This property can be used to limit the possibility for forgeries by requiring that provers respond to challenges in specific time-bound based on the PoS scheme, leaving them without adequate time to create a forgery.
- Useful—The scheme's operation can achieve useful work or storage as a side effect of the scheme design.
Several blockchain-based cloud storage projects are carrying out research and development related to proof-of-storage schemes. For example, Filecoin is working on a PoS scheme called proof-of-replication, which can be used to prove that data has been replicated to its own uniquely dedicated physical storage space. Another project, Storj, is working on extending an existing PoS scheme called proof-of-retrievability.