-
Notifications
You must be signed in to change notification settings - Fork 0
Shared Access to Distributed Storage
A client and an AS components have access to a distributed encrypted storage network. They can independently read and write blobs of data to this network, and the network provides addresses for all stored data, and these addresses are not predictable. The client and AS both have keys and are able to encrypt payloads. The client and the AS don't necessarily know each other's keys ahead of time. The AS is split into multiple components, such as one that is accessible via HTTP from the client and one that is an app running on the user's device.
The client calls an AS backend component and includes its keys in the request. The AS creates a storage bucket on the network that the client can write an encrypted package to. The AS directs the client to call the interactive app portion of the AS and provide the network address for the storage location, as well as a key to encrypt to. The client writes to the network location and encrypts to the key given by the AS. The client launches the app and provides the storage address. The app portion of the AS loads the data from the provided network location and decrypts it with its key. The app portion writes back to a location on the network and encrypts to the client. The app can coordinate this with its backend AS portion. The app provides the location to the client, which then reads and decrypts the results.