The main problem that can be encountered here by prover is combining(folding) of all these pedersan-style commitments for batch reduction, the technique of Multi Scalar Multiplication(MSM) is used for this purpose, it involves:
A key point to note here is that all these MSM operations will involve native arithmetics of elliptic curve based SNARK optimized for BLS12-381 scalar field.
The problem here is, the computational cost of MSM increases with the number of terms involved(say
The main challenge lies here will be in balancing the efficiency of MSM operations with the constraints of ZK-circuits, which might limit the use of certain advanced MSM algorithms mentioned above.
Although, this is not a new problem though, SNARKs that enable recursive proofs like:
These ZKPs enable recursion by using a pair of elliptic curves, where the base field of one curve is the scalar field of the other, and vice versa, same obstacle is faced in these systems, when verifying a proof from the previous cycle, you need to perform arithmetic in a field that isn't native to the current curve. This is similar to the problem we face with Verkle proofs, where we need to perform arithmetic in Banderwagon's scalar field.
This problem is tackled by forwarding parts of proof verification to next cycle, that is to defer some computations to the next proof in the cycle. However, this deferral mechanism itself requires some non-native arithmetic to prove correct storage of deferred computations, ex: You might need to prove you've correctly encoded the deferred computation in a format the next proof can use. This challenge parallels the issue faced in Verkle proofs, where arithmetic in Banderwagon's scalar field is needed but isn't native to the main proving system (assumed to be BLS12-381 based).
Unlike cycle-of-curve systems, Verkle proofs can't easily defer this arithmetic as it's central to the verification process. Consequently, both scenarios cannot entirely avoid non-native arithmetic, necessitating efficient simulation methods within the proving system. This requirement adds complexity and potential performance overhead to proof generation and verification, highlighting the challenges in making Verkle proofs efficiently ZK-friendly.
There are some potential techniques that are currently used to tackle the problem of performing arithmetic in non-native fields, we can encode the arithmetic operations as operations on the elliptic curve itself, which can be performed in the native field:
Where
Another bottleneck is size of the finite fields used by the prover, curves using larger field sizes, such as the 384-bit fields associated with curves like those in the BLS12-381 family may not perform as fast as compared to smaller field counterparts, such as:
These smaller size fields allow for faster computations, making them suitable for ZkEVM design.
What is the potential ZkEVM design then? A mix of using:
There are some problems with this approach though, only known efficient way to communicate between two proof systems is through hashing to group, and there should be a way to compute this hash efficiently in both fields, which may lead to computation in the non-native field of any of the two-proof system, since we have to select a field for hash computation. and we're again back to our previous problem.