How to enable provable computation over Filecoin data ? #723
nikkolasg
started this conversation in
Enhancements - Technical
Replies: 1 comment
-
How does this relate to #562? |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
The goal of this document is to highlight the different avenues one could take to allow verifiable computing over client data stored in Filecoin.
Core Problem
PieceCID is not at all SNARK friendly, e.g. we can’t run any verifiable computation over it efficiently. The main reason is because it is being from SHA256.
The following sections each explores different strategies to enable verifiable computation over PieceCID using SNARKs and the modification or not required to Filecoin.
Status Quo: Single Commitment Version
👉 There is a single commD commitment used for both storage in Filecoin (as in now) but also verifiable computation over the data.
Pros:
- One can know if the FIL PieceCID that he wants to compute over is effectively stored in Filecoin
- Both commitment represents exactly the same data, with complete assurance
Cons:
Potential Directions
Multiple Commitments Vision
👉 There are multiple PieceCID commitments of the same data, one optimized for each usage (storage, computing, streaming etc)
For example, a streaming merkle tree is better than balanced merkle tree for videos, hence one might opt for two retrieval commitments instead of one.
The link between the two can be:
🤝 Multiple Commitments (Trusted)
👉 In this world, we trust the client for having computed the right commitments.
The storage commitment is stored on Filecoin as usual. The other commitments can be either stored in the notes of a deal or in a smart contract or external db…
The assumption is that we trust the client is committing correctly to its data. Filecoin is used for storage and there is no link with the “computation” commitment for example.
Pros:
- Easy to implement a product directly now, no change at all on Filecoin side, mostly on client tooling
Cons:
Potential Directions
There could be a standard way to add support for new commitments:
- Either via the “label” fields in the deal
- Or an external contract that creates the mapping,
- Or multiple contracts, standard interface …
🔐 Multiple Commitments (Verifiable)
👉 In this world, there is a cryptographic proof that shows another commitments commits to the same data as in the PieceCID
There are two types of verifiability:
Pros:
Cons:
Potential Directions
Beta Was this translation helpful? Give feedback.
All reactions