We wanted to use NFT's for social good! We saw how crazy people can be for autographed memorabilia from their favorite celebrities, so we figured we could replicate that phenomenon using ERC-721 tokens!
What it does
A celebrity uploads a file of their own creation (a jpeg, an mp3, and mp4, a gif, etc.) to IPFS, with a hash of that file used to fill out the corresponding metadata of a non-fungible token. Then, we conduct an auction where the highest bidder wins the NFT - they get the private key to decrypt the file that the celebrity uploaded, and they have the knowledge that no one else in the world has that file. The funds raised during the auction all go to a charity of the celebrity's choice!
How I built it
First, we created a simple upload portal for the celebrity to share their secret file. The software we designed automatically encrypts that file and uploads it to IPFS. We then deploy a smart contract that creates an NFT with the hash of the IPFS file in the metadata field - but we never see the key to decrypt the file ourselves, since the private key itself is proxy re-encrypted using NuCypher. After that, we created an auction portal in order to host the auctions with US dollars. This way, the celebrity's fans never have to interact with ether. The winner receives instructions on how to install MetaMask and send us their public key. We can then send the NFT to the recipient address - this way the user knows for certain that they have ownership of a file that no one else can access. With the private key, they can look up the hash of the file on IPFS and view their celebrity's secret!
Challenges I ran into
Getting the hang of NuCypher's proxy re-encryption was a challenge, but Michael (the CTO) was able to walk us through the documentation and build out the smart contract. It turned out to be a breeze with him by our side!
Accomplishments that I'm proud of
We think the idea is pretty clever, so we're proud of that! More than that, though, we're proud that we were able to abstract away the process of interacting with blockchain for both the celebrity and the users. For example, if Taylor Swift wanted to participate, she would just upload an mp4 file of herself singing a little song, and she wouldn't ever have to even hear the word "blockchain." A million fans of Taylor Swift could then bid on this secret video, knowing that they alone would own it, and no one except the winner would have to deal with the hassle and downright confusion of purchasing and spending ether. This way, blockchain is only used for its capacity to represent digital scarcity using NFTs, and the more complicated aspects all fade away!
What I learned
We learned all about proxy re-encryption, and that there are SO many tools and libraries online to help developers get started with secret contracts!
What's next for It's a Secret!
It's a secret ;)