I’m currently exploring the possibilities of the new data types Public / Private Mutable Data. During my tests I have found out that the current design might be problematic and would love to bring this to a broader audiance (previously discussed in the dev forum) to hear your thoughts. Also: Maybe I’m completely wrong with with my assumptions so any feedback is appreciated, especially from the core devs.
Assumption / Problem:
Public / Private give the misleading impression that Private MD is only acessible by the user who stored it. Actually I would love such a data type or at least behaviour, but from the comments above it seems that this is not the case.
If I understood it correctly Private MD is decryptable by anyone who has the encryption key. This is problematic for web apps as there is no way to store these keys permanently (only options I know for storage are the session or local storage of the browser which both are not permanent).
- Reduce Public/Private MD to just one data type “Mutable Data” and give the option to encrypt or leave unencrypted.
- Add a flag / parameter during creation so only the user who created the data can access it. E.g.: “isPrivate”.
- Add something like a getUserEncKey method to the API which retrieves a unique encryption key associated with the currently authenticated user. This would also allow storing data which is only accessible by the logged-in user by harnessing the private key provided by the network.
Link to the discussion in the dev forum: