4

My question is not very technical from an implementation point of view, but I am looking for advice to achieve a specific use case using blockchain tech. I would greatly appreciate any insights or advice!

  • UserA saves an encrypted file to some off-chain blob storage
  • A URI and hash of the encrypted file is stored on chain as proof of existence
  • The fact (through some means) that UserA has saved this information is public
  • Some other user (i.e. UserB) requests access to UserA's file (potentially in exchange for a payment)
  • UserA gives UserB permission to access this file

The problem is that the file is encrypted with UserA's private key. The only way for UserB to gain access to UserA's value after a request and payment has been made is to wait for UserA to become active, see the request, download the file, decrypt it and send it directly to UserB through some other channel.

Is there any way have the file be stored securely, but also accessible to any other user immediately after a payment has been made without UserA's intervention?

bumped to the homepage by Community yesterday

This question has answers that may be good or bad; the system has marked it active so that they can be reviewed.

0

Lets go through with this sequence and see whether it solves your requirement or not.

  1. User A encrypts the file using his\her private key
  2. User A stores the encrypted file in an off chain blob storage
  3. User B Requests access to the file by performing payment and passes his\her public key
  4. On receiving payment User A accepts the request. While part of acceptance process this is what happens
    • User A Decrypts the file using his\her private key
    • Using User B'a public key encrypts the file
    • Shares the link of the newly encrypted file for download with User B
    • Now User B can download and decrypt the file using his\her private key

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.