0

I've stored sound file on IPFS and IPFS hash is connected to ERC721 token. I want make "only token holder can access the data". But unfortunately data on blockchain and ipfs is public, so everyone can access.

Is there any way to let only token holder can access ipfs data?

My solution does not work... - Store encrypted data on IPFS and store key on ERC721 token.(If set key as public, every one can see it, and if set key as private no one including token holder can see it)

If you have any suggestion or solution, please guide me!!

This is my product image. I want make this sound token data only available for token owner. https://medium.com/coinmonks/converting-sound-file-to-erc721-token-with-digital-art-chain-29b1890b6d4d

ookimaki
  • 1
  • 1

2 Answers2

0

Have a look at Permissioned Blocks whitepaper - https://github.com/autocontracts/permissioned-blocks/blob/master/whitepaper.md#a-permissioned-file-sharing-model-for-distributed-networks

Following is from the text at the link shared above -

"Combining a peer-to-peer file sharing protocol with a blockchain protocol, a smart contract can be used as the security mechanism for the peer-to-peer file sharing protocol."

A thorough understanding is needed but this could be a good starting point for permissions and access control on IPFS using Ethereum.

Gautam D
  • 119
  • 1
  • 2
  • 9
0

No, this will not work with only blockchain and IPFS. Sorry.

You can try this approach:

[ Customer ] --buy---------------> [ blockchain ]
    |  ^     \                            ^
    |  |      \                   verify permission
    |  |       \                          |
    |  |        \-request access-> [ DRM server ]
    |  |                                  |
    |  \-------------- send access hash---/        
    |
    \----access file with access ID-> [ IPFS ]

The customer will request access to the file by signing a message which uses the same account as is recorded on the blockchain.

A material weakness of this approach (and any approach using IPFS) is that anybody that can access the system can also share the files without you knowing. That also means they can share with themselves (i.e. you can't limit time access).

William Entriken
  • 37,208
  • 23
  • 149
  • 195