cfrg/draft-irtf-cfrg-vdaf

Review: 05: Chris Wood: Prose description of the FLP lacks precision

Closed this issue · 0 comments

#flp-generic-construction-prove (and the other sections for the generic FLP) uses prose to describe steps of the generic FLP like proof generation, querying, and so on. This is distinctly less precise than the rest of the document, which uses pseudocode to describe steps. For example, consider the step to actually compute gadget polynomials:

 Let `poly_gadget_i = G_i(poly_wire_i[0], ..., poly_wire_i[L_i-1])`. That

is, evaluate the circuit G_i on the wire polynomials for the ith
gadget. (Arithmetic is in the ring of polynomials over Field.)

I would not expect most people to be familiar with the concept of a ring, nor would most people know how to intuitively implement circuit evaluation. Perhaps it might be good to give examples of common gadgets -- like Mul -- and how to implement this evaluation?

Moreover, consider the following:

Let poly_wire_i[j-1] be the lowest degree polynomial for which
poly_wire_i[j-1](alpha_i^k) == padded_w[k] for all k in [P_i].

How does one actually implement this? In general, prose that is not followed by an algorithm seems like it could be replaced with more precise implementation guidance. The reference implementation could be used as the basis for this content, if desired.