decentraland / proposals

Review of community proposals for Decentraland's art and applications
46 stars 16 forks source link

Script marketplace #28

Open saskakol opened 7 years ago

saskakol commented 7 years ago

This proposal is about a marketplace for users to share and sell scripts. The first step is a dapp that allows users to upload scripts and put them up for download/sale. Other users can then view, purchase or download said scripts. This first stage could be a simple web-based dapp, that stores a list of scripts up for sale, and information about the scripts. One problem that I can think of right away is storing the scripts. It would be possible to simply upload the scripts to IPFS or Swarm, but then anyone with the hash could download paid content. Some sort of encryption would have to be put in place, but then there's the problem of giving the client the encryption key, and uploading the key to the blockchain in the first place, without exposing it to everyone.

The second step could actually work inside Decentraland. It could be represented by a store in virtual reality, that has the same functions as the web-based dapp, with a few added benefits. You could browse scripts as if they're products on shelves, and most importantly, try them out. When a user wants to "try on" a script, they could simply select an item and press a button. The room would then be cleared (or the user could be teleported/guided to a second room), and the user will be presented with a blank room. In this room, they can test out attaching scripts to items, and generally see the quality of the scripts. If they are satisfied, they can purchase the item, and the MANA will be sent directly to the script's developer. If they don't like it though, they can simply leave the room and everything will be back to normal, at no additional cost.

I think the main struggle with making this proposal a reality, is the encryption. The file could certainly be encrypted in the browser on the client side, but how would the encryption key then be uploaded to the blockchain in a way that it is not revealed to anyone. A similar problem could arise with the "second stage" of the proposal, as the "testing room" would have to have access to the script so the user can test it out.

Feedback is much appreciated!