|
| 1 | +# RIW2021 | RFC: ZKCP Optimizations |
| 2 | + |
| 3 | +_Status:_ **draft**; **~~ready for review~~**; **~~ready to publish~~** |
| 4 | + |
| 5 | +_Area of Improvement:_ Data Delivery Metering |
| 6 | + |
| 7 | +_Estimated Effort Needed:_ <?> |
| 8 | + |
| 9 | +_Prerequisite(s):_ <?> |
| 10 | + |
| 11 | +_Priority:_ <? P0, P1, P2> |
| 12 | + |
| 13 | + |
| 14 | +### Abstract |
| 15 | + |
| 16 | +TBWRITTEN |
| 17 | + |
| 18 | +### **Proposal/Construction** |
| 19 | + |
| 20 | +* Assumption |
| 21 | + * We assume that encrypting a file and issuing a Proof-of-Retrievability is an expensive operation |
| 22 | +* Optimization I |
| 23 | + * encrypted the data once, then encrypt the encryption key to the client to do the fair exchange |
| 24 | + * Pros |
| 25 | + * Only issue s Proof-of-Retrievability once |
| 26 | + * A group of providers can collaborate over a set of pre-encrypted files and issue the keys to the clients as they request |
| 27 | + * Cons |
| 28 | + * Opens the potential for a grieving attack, where multiple clients ask the provider to get the file, but then only one client pays for the decryption key |
| 29 | + * Open Problem: Need to find a way for individual parties to be unable to share the keys to decrypt the same cyphertext. |
| 30 | + * Perhaps the client specific key does one last, non expensive scramble? |
| 31 | +* Optimization II |
| 32 | + * Only prove a small n of chunks out of N |
| 33 | + * Getting n random chunks in an initial interaction for free might be fine as it would take O(n^3) time to collect the whole file that way |
| 34 | + * Question for Steven: how do you prove random pieces belong to file that you want? |
| 35 | + * Merkle-tree, share the merkle path |
| 36 | + * If an IPLD dag is used, we could leak data on proving a path |
| 37 | + * Attacker wouldn’t necessarily want to pull different pieces from multiple endpoints (expensive) |
| 38 | + |
| 39 | +**Impact** |
| 40 | + |
| 41 | +TBWRITTEN |
| 42 | + |
| 43 | +### Pros and Cons |
| 44 | + |
| 45 | +TBWRITTEN |
| 46 | + |
| 47 | +### **Implementation **n**otes** |
| 48 | + |
| 49 | +TBRITTEN |
| 50 | + |
| 51 | +### **Evaluation** |
| 52 | + |
| 53 | +TBRITTEN |
| 54 | + |
| 55 | +### Prior work |
| 56 | + |
| 57 | +TBRITTEN |
0 commit comments