Question about library usage in the context of decentralized storage #351
-
I have recently read the papers that you have published, namely
I feel like the concepts introduced/described are just fascinating for someone that doesn't know much about the research in this area. In addition to that this set of libraries can be used in some interesting applications. I would love to learn more about lattigo and how to use them and the best way to go about it is create a sample project. So I've come up with this mini project, but I'm not quite sure if what it tries to do is a real use case for HE and MHE. Basically, I would love to create a fairly simple decentralized storage using a custom blockchain network. The idea is:
Now, I've done some research around MPC encryption and I know that using BLS threshold encryption we could have a common public key set that user can use to encrypt. In the decryption phase validators would decrypt ciphertext using their secret share and send the decryption share to the user that can aggregate them to get the original plaintext. The questions I've got are:
For example, in the BLS example described above, I would use a DKG algorithm to create a common public key set which will be used to encrypt data. Then I each node would use their secret key to decrypt the ciphertext. |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment 4 replies
-
Thank you for your interest in our research and library. Regarding your first question: Without the dynamic validator set requirement, the library implements all the necessary local operations (i.e., computing party's shares in the collective public-key generation, encrypting, and computing decryption shares). But note that MHE as a primitive could "too much" because your use-case doesn't seem to require any computation to be performed on the encrypted data. With the dynamic validator set requirement, things become more complicated because the MHE primitive as presented in our work assumes a fix set of key-holders. So except for the case where S' is always a subset of S (which can be handled with the t-out-of-N scheme), you would have to:
There is everything you need to implement this approach in Lattigo too, but it is a bit unrealistic because it requires work proportional to the size of the database at each epoch and introduces noise in the ciphertexts at each epoch (hence bounding the maximum number of epochs for a ciphertext). Regarding your second question, I'm afraid we don't have much better resources than the examples and the godoc right now. But we know this isn't a perfect situation and a "getting started" tutorial is in roadmap. |
Beta Was this translation helpful? Give feedback.
Thank you for your interest in our research and library.
Regarding your first question:
Without the dynamic validator set requirement, the library implements all the necessary local operations (i.e., computing party's shares in the collective public-key generation, encrypting, and computing decryption shares). But note that MHE as a primitive could "too much" because your use-case doesn't seem to require any computation to be performed on the encrypted data.
With the dynamic validator set requirement, things become more complicated because the MHE primitive as presented in our work assumes a fix set of key-holders. So except for the case where S' is always a subset of S (which can be hand…