Verification Capability
In the original Datashards write-up there is no verification capability for immutable storage.
However a "Verification Capability" might be desirable in order to allow peers to cache data without being able to read the data.
Assume data to be stored in immutable storage is encrypted with a "read key".
In order to make nodes of the Merkle tree indistinguishable from data blocks it needs to be encrypted.
If the Merkle tree is encrypted with a key that is derived from the "read key" then this "verification key" can be used to assemble all data blocks the content was split into without being able to read it.
Holders of the "read key" can always derive the "verification key", assemble the content and decrypt it.
I have implemented this in my Guile experiments: https://gitlab.com/openengiadina/data-model/-/blob/master/xshards/immutable.scm#L30.
See also: https://ipfs.eternum.io/ipfs/QmTebcT5sHpHGiKwAyd8PwwHZFf7fY4c6ULhn76GALZ8qt/Readme.html#org4ad997e