Apologies in advance for any errors or misunderstandings on my part. I have limited first hand experience with filecoin. If you need any help brainstorming I’d be more than happy to help send an invite on matrix ( @stakeplus:matrix.org ). I suspect that the other IBP members would also be more than happy to help but I’m not going to speak for them.
Anyway – I have been giving this some thought since your last reply
It appears as if filecoin is switching from PoRep to “PDP” (Proof of Data Possession) ?  PDP: No Sealing / Unsealing, Incremental proofs, Uses SHA-2 (HW Accel),
If you need to redesign this from scratch (seemingly) anyway – I was curious, why not directly interact with Ceph Bluestore? EC would be built in to Ceph. IIUC, EC is only necessary on filecoin for sealing and redundancy (recovery). With PDP we no longer need to do sealing so we could probably just let Ceph itself deal with EC.
Each file could / would / should be stored as its own object allowing files to be independently read / written. For example, Pixel Proof would be able to view, edit, delete, or add a single file / image without needing intermediate access from a phala tee. The client would just need to decrypt the streamed files on the fly.
Storing all files as independent objects would require maintaining a metadata in the store itself so the client can quickly know every file currently part of that store. The provider itself would be able to maintain this metadata file as the end user reads, writes, adds, and deletes files from the store.
With Proof of Data Possession – It would only be necessary to grab some bytes of a file (examples I saw were < 1KB) and perform the proof. Very light weight it seems.
For encryption – It appears HPKE with x25519 signing is / would be the recommended solution to allow full ACL / UAC controls, public access, private access and everything inbetween.
The storage customer’s flow would be –
A) Create a store
B) Modify ACL / UAC of the store
C) Upload (Encrypted) files to the store based on ACL/UAC
D) Optionally modify ACL/UAC of individual files
The storage provider’s flow would be –
A) Accept storage request from user (create the store)
B) Provider updates UAC/ACL in metadata
C) Provider starts spot checks with PDP on arbitrary files, arbitrary locations, and arbitrary data segment sizes
D) Provider provides PDP results to network
The end user / website enjoyer / storage downloader / receiver flow would be –
A) User visits website or is using an application that downloads data from storage. The application would contain the “public key” (I do not mean the public port of the key, but whatever the key was that was assigned to “PUBLIC DISPLAY” or “PUBLIC VIEWING”) allowing the JS on the site to grab and decrypt the data that needs to be displayed. The JS itself would just have the private key of the “PUBLIC KEY” (again, to specify a key assigned to allow the files to be viewed publicly) built into it.
B1) If the user has a private ACL / UAC for their owned address – they would download and decrypt files with that address.
B2) If the user is connecting via a public assignment – There would be a key assigned on the HPKE that would be utilized with any software / website. That key becomes the “PUBLIC KEY” (it’s actually a private key) – The “PUBLIC KEY” is just the private key of a new key that you don’t care if someone knows it or note because the file(s) were meant to be public anyway.
ACLs & UAC should definitely have read, write or read&write permissions assigned to each address listed/included in the HPKE (regardless if ACL/UAC inclusion is by store or by file)
---------------------------------------------------------------------------
Additional Thought: Assuming this works how I think it would work – there would be almost no difference between utilizing Ceph Bluestore and Redis Cluster (different from normal redis). Assuming these changes are applied successfully, Polkadot Native Storage should be renamed to something like Polkadot Disk Storage, Polkadot NVMe Storage, etc and we should launch an additional service called Polkadot Memory Storage. With Polkadot Memory Storage we can roll apps that will be insanely fast. My current use case for this is to develop our own Element/Matrix/Discord service. We could also probably use it for an email like service, but, I’m not sure that needs to be stored in memory.
We could also launch something like Polkadot Cold Store (Also using Ceph Bluestore) for very high capacity very low cost long term  HDD / spindle disk storage.
The only difference between Memory, NVMe and HDD – other than Ceph Bluestore vs Redis Cluster) would be the PoSt & PDP configurations. Optimally configuring proof size, proof window, etc so that you must have certain hardware minimally to be able to complete the proof in the necessary window.
Update: Since Ceph RGW is AWS S3 compatible – It would be possible to remote mount the ceph store as a posix “compatible-ish” filesystem using a fuse adapter ( s3fs-fuse ). It wouldn’t have the full range of posix compatibility (lacks full perms and some other stuff) but would be able to provide many desirable features like random read/writes, multi-part transfers, etc.