Definitions
- : percentage of incorrect labels. Currently set to 0.39 (red pebbles)
- Adv: any SP who is able to place more than 3.9% of incorrect labels and still pass the proof
- p = probability to answer a random challenge, currently equal to 0.961
- = security parameter, currently set to 10 (soundness error 2ˆ{-\lambda})
- c = PoRep challenges per layer, currently set to 176
Overview
An adversary passes the verification with probability
Synthetic PoRep protocol introduces an additional step to the current PoRep protocol in order to reduce the buffer between PreCommit and ProveCommit .
- A Synthetic Challenge set is generated. This is a set of positions selected at random.
- The 176 PoRep challenges are sampled among the elements of the Synthetic Challenge set, instead of being randomly selected among the nodes of the entire 32GiB layer of the SDR graph.
We do not want to increase the number of challenges (c) or decrease . In order not to lose security we need to analyze how big needs to be.
Technical Analysis
Assume that a Synthetic Challenge set of Synthetic Challenges is generated. The expected number of challenges that can be answered is therefore .
By grinding the adversary can try to come up with a set of challenges with challenges that can be answered.
We consider the target of the adversary being to lower down the security parameter by 1 (1 less bit of security). This means that the adversary aims to pass the verification with probability .
In that case the adversary needs such that (that is )
Given , we take given that .
We want to compute the probability that so that we can compute the grinding effort as .
Given we want grinding to be infeasible we need to be small enough (that is, ).
If is the random variable that counts the Synthetic challenges challenges that the adversary can answer we have that the probability that exactly challenges out of can be answered is the binomial distribution
We want to know how big needs be in order to have
Plugging in numbers in the binomial distribution, we can see that with the inputs
We get .
The calculation above can be checked in a binomial calculator like this.
Note
In the Synthetic PoRep implementation, in order to have the synthetic challenge number to be a power of 2, we pick resulting in . Note: having the synthetic challenge be a power of 2 avoids problem with the modulo reduction when sampling PoRep challenges from the synthetic challenge set.
For the FIP: