As mentioned in documentation on Streams
"As a result, read permissions in a stream should be managed through application-level encryption of each item’s data, with decryption keys distributed as appropriate. "
CEO & Founder Gideon Greenspan mentioned one implementation https://www.linkedin.com/pulse/introducing-multichain-streams-gideon-greenspan/
As I’ve discussed previously, confidentiality is the biggest challenge in a large number of blockchain use cases. This is because each node in a blockchain sees a full copy of the entire chain’s contents. Streams provide a natural way to support encrypted data on a blockchain, as follows:
1.One stream is used by participants to distribute their public keys for any public-key cryptography scheme.
2. A second stream is used to publish data, where each piece of data is encrypted using symmetric cryptography with a unique key.
3. A third stream provides data access. For each participant who should see a piece of data, a stream entry is created which contains that data’s secret key, encrypted using that participant’s public key.
This provides an efficient way to archive data on a blockchain, while making it visible only to certain participants.
Can some one explain me in simpler terms please?