This sounds a lot like Freenet[0], though w/o the anonymity & plausible deniability guarantees. Freenet shares some of the same features + Limitations:
* Content keys are based on hashes of content, and don't change (unless a new encryption key is used to re-insert a file)
* keys that are not requested frequently will fall off the network automatically.
* Keys can be signed so only the holder of the private key can update said key
Freenet is not really good. For what I know, it is heavy, slow, doesn't work that well in practice, and has a huge and old codebase. What is more, it includes a lot of bells and whistles but (for all I know) doesn't separate cleanly the minimal backend for storage and the frontend of all the features that run on that.
There is certainly a use case for a more modern project that would try to implement cleanly the base features of Freenet, with a clear interface.
* Content keys are based on hashes of content, and don't change (unless a new encryption key is used to re-insert a file)
* keys that are not requested frequently will fall off the network automatically.
* Keys can be signed so only the holder of the private key can update said key
[0] https://freenetproject.org/