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
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.
From the audit report suggestions 1 and 2: