Exchange ransomware private encryption key between hacker and user in a trustless manner
RansomNetwork is a way for users affected by ransomwares to pay hackers and get the private decryption key in a trustless manner. The user stakes funds in the smart contract and chooses an arbitrary file that got encrypted, assuming that he has a backup for this file, he also puts the hash of the original file. The second step is a commit-reveal scheme where the hacker, after verifying that the files are correct, reveals the private key. Both parties wait for the RansomNetwork to confirm that the key is valid and if so, funds will be distributed. RansomNetwork is centralized for the time being, as it needs to be run on a server, but it could be optimizied in a decentralized way to run inside containers in a decentralized network just like the FORTA detection network implementation.
The project consists of one smart contract that is deployed on the polygon network, speed and low gas fees are critical here ( especially when network congestion could delay the Reveal stage hence the attacker not getting his funds and the secret key is revealed). I used IPFS decentralized storage to store: encrypted file original file's hash private key file and used web3 storage to store, retrieve the desired data.
It is worth noting that this project was done in 15 hours. I was with another team and they couldn't finish the project in time since they were busy with other stuff. We finished the snapshots but couldn't get into submission.