There are some IPFS people who talk about proof of having stored files, but I was never satisfied with their fraud detection techniques.
Can you prove that one copy of your data is being stored? Yes.
Can you prove that three copies of your data are being stored? I haven't seen any scheme that can detect if I'm pretending to be multiple people, serving files from the same disk array over multiple network connections.
> Can you prove that three copies of your data are being stored?
In the context of IPFS, I'm not sure.
If you want to use the (crypto) network as distributed storage, you can shard and encrypt the data (at you 3x or whatever redundancy) and the storage provider is forced to store all of it, at least once.
Some incentives on data durability and availability may be enough to get a reasonable baseline.
If I didn't care how complicated the client is, sure.
I can do something reminiscent of "m of n" control tools, FEC or striping algorithms, but now the client is doing multiple fetches and matrix multiplication on every single request.
If I'm just trying to make sure there are 3 copies of my home page on IPFS, then I need 3 copies of the same file in three locations. And those locations all need to be online when I want to challenge them.
The Bitcoin protocol is designed around low availability of individual nodes and inference of consensus. Any 'proof' has to be uploaded while you're connected. Uploading a proof (of work, stake, whatever) to the network proves you did something, there is no need to challenge that fact, and you can disappear for hours or forever. No voting, no challenges.
Proof of storage requires challenges, which requires availability (well, storage also requires availability, otherwise what's the point?). If you insist that almost everyone is online, then you open the door to other consensus algorithms. Ones that can, for instance, handle non-repudiation.
I wasn't thinking of IPFS, rather a way to have a proof-of-stake storage system doing actually useful work. I think I've seen at least one, though I'm not sure of it's current state.
The question is not whether it's possible to pretend to be multiple people. The question is whether storing a large file places some fundamental restriction on how much activity a node can conduct on the network. (I.e. is there a cost of doing business that limits your from just spamming transactions at nearly infinite rate.)
Can you prove that one copy of your data is being stored? Yes.
Can you prove that three copies of your data are being stored? I haven't seen any scheme that can detect if I'm pretending to be multiple people, serving files from the same disk array over multiple network connections.