We thank the reviewers for helpful comments and detailed inspection. All concerns and minor typos will be addressed. We are especially thankful for the presentation suggestion of Reviewer A for introduction and Section 5, and for the detailed input on the Definition 5 and suggestions for technical overview from Reviewer B, we will take them all in account for the final version.
General Comments –Comparison with previous work–
We recall the difference from O(m^2) in Caulk+ to O(m) in Baloo is in group operations for the prover, while in the field asymptotic efficiency is the same. In Flookup techniques are very different and the construction uses a non-homomorphic commitment to the big table; this makes it complicated to use it as a building block in many protocols, which is one of the goals for Baloo. An extra discussion is devoted to EFG22 as it is the only one that, while having homomorphic commitments, outperforms Baloo. We have only compared concrete performance with Caulk because it is, to the best of our knowledge, the only protocol that has an implementation publicly available. It is in our interests to compare with all existing constructions.
EFG22: We apologize as there is a typo in the table on the performance of cq, where it says O(m log^2 m) should be O(m log m). Please note the reported efficiency in the paragraph called "Concurrent work" is the correct one. We are especially interested in a comparison with EFG22, as the prover performance only differs asymptotically on a log(m) factor for field operations, while Baloo offers an extra feature.
Namely, in cq two lookup tables
The difference above implies Baloo can be used for proving "repeated" lookups, meaning the same lookup operation is applied to one or two different tables, and also for the case where the lookup is made public (either because matrix
Reviewer A
On the right side of page 4, once the expansion relationship is modeled as Equation (1), the paper claims that the lincheck argument is modified from [RZ21] and the inner product is also proven using the generalized univariate sumcheck in [RZ21]. It will be better to explain why the protocols in [RZ21] can’t work for a committed matrix instead of a public matrix, and what modifications in this paper are critical to make it work.
Reviewer B
The core underlying idea is to replace one of the building blocks in the lookup arguments of Caulk and Caulk+, with a different linear argument which is a protocol from RZ21 for proving linear relations.
The exposition is less than satisfactory: there is no clear explanation of the key technical idea that bring the prover down from quadratic to linear. Moreover, the paper seems to be written for an audience that is familiar with Caulk, Caulk+ and other closely related work.
It is unclear why the abstraction of CSS, and commit-and-prove CSS is useful in achieving linear prover; what is the relation that shows up in look up arguments that is a natural CSS relation.
In the Sampling phase: cns <- C. What is the space C? What is cns and the sampling algorithm Smp for s = Smp(cns)? None of these seem to be defined.
Soundness: b ← ⟨P∗CSS(instance),VCSS(instance)⟩ instance is undefined. Presumably, the interactive Sample protocol determines cns and D, and that together with inst, defines the instance for the commit-and-prove protocol?
Section 6: what is the difference between Rlookup and Rcp-expansion? It looks like the same relation? Is the vector c part of the instance in Rlookup; is it known to the verifier?