Consensys / gnark

gnark is a fast zk-SNARK library that offers a high-level API to design circuits. The library is open source and developed under the Apache 2.0 license
https://hackmd.io/@gnark
Apache License 2.0
1.45k stars 380 forks source link

docs: update GKR references and write GKR specification #1280

Open ivokub opened 2 months ago

ivokub commented 2 months ago

From the audit report suggestions 1 and 2:

The academic reference to the GKR implementation should include correct and precise information. Our team identified the following instances within the reference paper [BSB22] that need updating:

  • In Figure 15 (p. 15): V_O(\rho) is not defined.
  • In Figure 15 (p. 15): The claim register claims is only defined in a comment. Type definition could be made more direct.
  • Definition B.2 (p. 14): The batch assignment should be defined for the specific cases of input and output gates.
  • In Figure 15 (p. 15): The call to miniProtocol2 should be on (v, claim').
  • Remark B.3 (p. 14): For the defining equation for B(v)(x) over K^n, the summation should be over the hypercube {0,1}^n.

Mitigation: We recommend updating the paper.

While an academic reference is a useful resource that developers and auditors can refer to, it does not serve the same purpose as a specification, which could contain more information about the extension field tower and be a necessary addition to this complex protocol.

Mitigation: We recommend considering writing a specification for Linea GKR.