openlab-cli
openlab-cli copied to clipboard
RFC: threshold encryption and token-gating of static objects
Hi frens,
over the last couple of weeks, I have been looking into various ways to enable scientists to store sensitive information in an encrypted but decentralized fashion. As a community we talked to multiple providers that develop solutions in the problem space of decentralized file access. Some of the providers I have identified are listed below:
- nevermined
- chainsafe
- threshold network (former keeper network and nucypher project)
- lit protocol
After looking into all the above protocols and talking to folks at most of them, I believe the most promising infrastructure we can build on is lit protocol. They have built out a JS SDK for decentralized threshold encryption of static objects that can be exposed via IPFS. It is the most straightforward-looking tool I have seen so far for static content.
https://litprotocol.com/ https://developer.litprotocol.com/docs/intro/ https://developer.litprotocol.com/docs/SDK/staticContent
The process to manage access to static content looks like this:
writing
- [[authSig]] - prove ownership of the [[metamask]] key pair
- perform [[symmetric encryption]]
- define [[access control condition]]
- store the [[symmetric encryption]] key with the [[access control condition]] on the [[lit protocol]] - defines an encrypted symmetric key
- save the following three files
- encrypted static object
- encrypted [[symmetric encryption]] key
- [[access control condition]]
reading
- pull the following files
- encrypted static object
- encrypted symmetric encryption key
- access control condition
- [[authSig]] of the user to prove ownership
- obtain the decrypted symmetric key from the lit network based on the control condition and the user's authSig
- decrypt the encrypted static object with the symmetric key
- return object