SlideShare uma empresa Scribd logo
1 de 89
Baixar para ler offline
cqlin
New Applications for Universal, Pairing Based SNARKs
with Preprocessing
Liam Eagen
Blockstream Research
June 2, 2023
Liam Eagen (Blockstream Research) cqlin June 2, 2023 1 / 17
Motivation
Lin-check problem is ubiquitous in SNARKs
Liam Eagen (Blockstream Research) cqlin June 2, 2023 2 / 17
Motivation
Lin-check problem is ubiquitous in SNARKs
Many approaches linear in sparsity (number of non-zero entries) of
matrix
Liam Eagen (Blockstream Research) cqlin June 2, 2023 2 / 17
Motivation
Lin-check problem is ubiquitous in SNARKs
Many approaches linear in sparsity (number of non-zero entries) of
matrix
This is O(n2) for dense matrices
Liam Eagen (Blockstream Research) cqlin June 2, 2023 2 / 17
Motivation
Lin-check problem is ubiquitous in SNARKs
Many approaches linear in sparsity (number of non-zero entries) of
matrix
This is O(n2) for dense matrices
Dense matrix multiplication useful in zkML
Liam Eagen (Blockstream Research) cqlin June 2, 2023 2 / 17
Motivation
Lin-check problem is ubiquitous in SNARKs
Many approaches linear in sparsity (number of non-zero entries) of
matrix
This is O(n2) for dense matrices
Dense matrix multiplication useful in zkML
Prior work [GKMMM] implies O(n) lin-check protocol
▶ Special SRS depends on the size of the matrix
▶ Has O(n3
) setup time
Liam Eagen (Blockstream Research) cqlin June 2, 2023 2 / 17
Why Pairings and Preprocessing?
Ariel’s SNARK trilogy (zkSummit 9/Zero Knowledge Podcast ep.
274)
Liam Eagen (Blockstream Research) cqlin June 2, 2023 3 / 17
Why Pairings and Preprocessing?
Ariel’s SNARK trilogy (zkSummit 9/Zero Knowledge Podcast ep.
274)
1 Pairings get succinctness without PCP, need per-circuit trusted setup
Liam Eagen (Blockstream Research) cqlin June 2, 2023 3 / 17
Why Pairings and Preprocessing?
Ariel’s SNARK trilogy (zkSummit 9/Zero Knowledge Podcast ep.
274)
1 Pairings get succinctness without PCP, need per-circuit trusted setup
2 Polynomial commitment schemes abstract pairing, universal trusted
setup
Liam Eagen (Blockstream Research) cqlin June 2, 2023 3 / 17
Why Pairings and Preprocessing?
Ariel’s SNARK trilogy (zkSummit 9/Zero Knowledge Podcast ep.
274)
1 Pairings get succinctness without PCP, need per-circuit trusted setup
2 Polynomial commitment schemes abstract pairing, universal trusted
setup
3 Pairing with preprocessing breaks PCS abstraction for more power in
particular applications, e.g. lookup arguments
Liam Eagen (Blockstream Research) cqlin June 2, 2023 3 / 17
Why Pairings and Preprocessing?
Ariel’s SNARK trilogy (zkSummit 9/Zero Knowledge Podcast ep.
274)
1 Pairings get succinctness without PCP, need per-circuit trusted setup
2 Polynomial commitment schemes abstract pairing, universal trusted
setup
3 Pairing with preprocessing breaks PCS abstraction for more power in
particular applications, e.g. lookup arguments
What other applications benefit from pairings and preprocessing?
Liam Eagen (Blockstream Research) cqlin June 2, 2023 3 / 17
Why Pairings and Preprocessing?
Ariel’s SNARK trilogy (zkSummit 9/Zero Knowledge Podcast ep.
274)
1 Pairings get succinctness without PCP, need per-circuit trusted setup
2 Polynomial commitment schemes abstract pairing, universal trusted
setup
3 Pairing with preprocessing breaks PCS abstraction for more power in
particular applications, e.g. lookup arguments
What other applications benefit from pairings and preprocessing?
cqlin!
Liam Eagen (Blockstream Research) cqlin June 2, 2023 3 / 17
Preliminaries
Fix a pairing friendly curve
Liam Eagen (Blockstream Research) cqlin June 2, 2023 4 / 17
Preliminaries
Fix a pairing friendly curve
Commit to polynomials using KZG, write [F(x)] for commitment to
polynomial F(X)
Liam Eagen (Blockstream Research) cqlin June 2, 2023 4 / 17
Preliminaries
Fix a pairing friendly curve
Commit to polynomials using KZG, write [F(x)] for commitment to
polynomial F(X)
Prove F(a) = b by proving Q(X) = (F(X) − b)/(X − a) is a
polynomial
Liam Eagen (Blockstream Research) cqlin June 2, 2023 4 / 17
Preliminaries
Fix a pairing friendly curve
Commit to polynomials using KZG, write [F(x)] for commitment to
polynomial F(X)
Prove F(a) = b by proving Q(X) = (F(X) − b)/(X − a) is a
polynomial
More generally for Z(X) =
Q
i (X − ai ), F(ai ) = G(ai ) iff
F(X) = G(X) mod Z(X)
Liam Eagen (Blockstream Research) cqlin June 2, 2023 4 / 17
Preliminaries
Fix a pairing friendly curve
Commit to polynomials using KZG, write [F(x)] for commitment to
polynomial F(X)
Prove F(a) = b by proving Q(X) = (F(X) − b)/(X − a) is a
polynomial
More generally for Z(X) =
Q
i (X − ai ), F(ai ) = G(ai ) iff
F(X) = G(X) mod Z(X)
Equivalently, if there exists a polynomial
Q(X) = (F(X) − G(X))/Z(X)
Liam Eagen (Blockstream Research) cqlin June 2, 2023 4 / 17
Preliminaries
Let ω be a root of unity or order N
Liam Eagen (Blockstream Research) cqlin June 2, 2023 5 / 17
Preliminaries
Let ω be a root of unity or order N
Lagrange polynomials Li (ωj ) = δi,j
Liam Eagen (Blockstream Research) cqlin June 2, 2023 5 / 17
Preliminaries
Let ω be a root of unity or order N
Lagrange polynomials Li (ωj ) = δi,j
Encode vector ⃗
v ∈ FN as F(ωi ) = vi
Liam Eagen (Blockstream Research) cqlin June 2, 2023 5 / 17
Preliminaries
Let ω be a root of unity or order N
Lagrange polynomials Li (ωj ) = δi,j
Encode vector ⃗
v ∈ FN as F(ωi ) = vi
Equivalently F(X) =
P
i∈[n] vi Li (X)
Liam Eagen (Blockstream Research) cqlin June 2, 2023 5 / 17
Preliminaries
Let ω be a root of unity or order N
Lagrange polynomials Li (ωj ) = δi,j
Encode vector ⃗
v ∈ FN as F(ωi ) = vi
Equivalently F(X) =
P
i∈[n] vi Li (X)
If deg F(X) < N, then F(0) =
P
i∈[N] F(ωi ) [Aurora]
Liam Eagen (Blockstream Research) cqlin June 2, 2023 5 / 17
Sparse Commitments
What is a Sparse Commitment?
Liam Eagen (Blockstream Research) cqlin June 2, 2023 6 / 17
Sparse Commitments
What is a Sparse Commitment?
Let P(X) be a degree d polynomial
In general, committing to [P(x)] requires d scalar multiplications
Liam Eagen (Blockstream Research) cqlin June 2, 2023 6 / 17
Sparse Commitments
What is a Sparse Commitment?
Let P(X) be a degree d polynomial
In general, committing to [P(x)] requires d scalar multiplications
Sometimes, P(X) is sparse with respect to some basis Bi (X) of
n ≤ d polynomials
Liam Eagen (Blockstream Research) cqlin June 2, 2023 6 / 17
Sparse Commitments
What is a Sparse Commitment?
Let P(X) be a degree d polynomial
In general, committing to [P(x)] requires d scalar multiplications
Sometimes, P(X) is sparse with respect to some basis Bi (X) of
n ≤ d polynomials
That is P(X) =
P
i∈[n] fi Bi (X) where at most k values of fi are
non-zero and k << d
Liam Eagen (Blockstream Research) cqlin June 2, 2023 6 / 17
Sparse Commitments
What is a Sparse Commitment?
Let P(X) be a degree d polynomial
In general, committing to [P(x)] requires d scalar multiplications
Sometimes, P(X) is sparse with respect to some basis Bi (X) of
n ≤ d polynomials
That is P(X) =
P
i∈[n] fi Bi (X) where at most k values of fi are
non-zero and k << d
When P(X) is k, Bi (X) sparse, we can compute a commitment to
P(X) in O(k) time given precomputed commitments to Bi (X)
Liam Eagen (Blockstream Research) cqlin June 2, 2023 6 / 17
Sparse Commitments
What is a Sparse Commitment?
Let P(X) be a degree d polynomial
In general, committing to [P(x)] requires d scalar multiplications
Sometimes, P(X) is sparse with respect to some basis Bi (X) of
n ≤ d polynomials
That is P(X) =
P
i∈[n] fi Bi (X) where at most k values of fi are
non-zero and k << d
When P(X) is k, Bi (X) sparse, we can compute a commitment to
P(X) in O(k) time given precomputed commitments to Bi (X)
P(X) =
P
i∈[n] ki [Bi (x)]
Liam Eagen (Blockstream Research) cqlin June 2, 2023 6 / 17
Sparse Commitments
What is a Sparse Commitment?
Let P(X) be a degree d polynomial
In general, committing to [P(x)] requires d scalar multiplications
Sometimes, P(X) is sparse with respect to some basis Bi (X) of
n ≤ d polynomials
That is P(X) =
P
i∈[n] fi Bi (X) where at most k values of fi are
non-zero and k << d
When P(X) is k, Bi (X) sparse, we can compute a commitment to
P(X) in O(k) time given precomputed commitments to Bi (X)
P(X) =
P
i∈[n] ki [Bi (x)]
Sparsity is linear: if P(X) is Bi (X) sparse, then P(X)F(X) is
Bi (X)F(X) sparse
Liam Eagen (Blockstream Research) cqlin June 2, 2023 6 / 17
Sparse Commitments: Simple Examples
Assume P(X) is Bi (X) sparse
Liam Eagen (Blockstream Research) cqlin June 2, 2023 7 / 17
Sparse Commitments: Simple Examples
Assume P(X) is Bi (X) sparse
1 Degree Checks
Liam Eagen (Blockstream Research) cqlin June 2, 2023 7 / 17
Sparse Commitments: Simple Examples
Assume P(X) is Bi (X) sparse
1 Degree Checks
1 Suppose want to show deg P(X) = d, but SRS has degree N
Liam Eagen (Blockstream Research) cqlin June 2, 2023 7 / 17
Sparse Commitments: Simple Examples
Assume P(X) is Bi (X) sparse
1 Degree Checks
1 Suppose want to show deg P(X) = d, but SRS has degree N
2 Precompute Di = [xN−d
Bi (x)]
Liam Eagen (Blockstream Research) cqlin June 2, 2023 7 / 17
Sparse Commitments: Simple Examples
Assume P(X) is Bi (X) sparse
1 Degree Checks
1 Suppose want to show deg P(X) = d, but SRS has degree N
2 Precompute Di = [xN−d
Bi (x)]
3 Prover can compute D =
P
i∈[n] fi Di in O(k) time
4 Verifier checks e([P(x)], [xN−d
]) = e(D, [1])
Liam Eagen (Blockstream Research) cqlin June 2, 2023 7 / 17
Sparse Commitments: Simple Examples
Assume P(X) is Bi (X) sparse
1 Degree Checks
1 Suppose want to show deg P(X) = d, but SRS has degree N
2 Precompute Di = [xN−d
Bi (x)]
3 Prover can compute D =
P
i∈[n] fi Di in O(k) time
4 Verifier checks e([P(x)], [xN−d
]) = e(D, [1])
2 Opening at fixed value
Liam Eagen (Blockstream Research) cqlin June 2, 2023 7 / 17
Sparse Commitments: Simple Examples
Assume P(X) is Bi (X) sparse
1 Degree Checks
1 Suppose want to show deg P(X) = d, but SRS has degree N
2 Precompute Di = [xN−d
Bi (x)]
3 Prover can compute D =
P
i∈[n] fi Di in O(k) time
4 Verifier checks e([P(x)], [xN−d
]) = e(D, [1])
2 Opening at fixed value
1 Suppose prover wants to open P(0) = c, for example as part of
sum-check
Liam Eagen (Blockstream Research) cqlin June 2, 2023 7 / 17
Sparse Commitments: Simple Examples
Assume P(X) is Bi (X) sparse
1 Degree Checks
1 Suppose want to show deg P(X) = d, but SRS has degree N
2 Precompute Di = [xN−d
Bi (x)]
3 Prover can compute D =
P
i∈[n] fi Di in O(k) time
4 Verifier checks e([P(x)], [xN−d
]) = e(D, [1])
2 Opening at fixed value
1 Suppose prover wants to open P(0) = c, for example as part of
sum-check
2 Precompute Zi = [Bi (x) − Bi (0)/x]
Liam Eagen (Blockstream Research) cqlin June 2, 2023 7 / 17
Sparse Commitments: Simple Examples
Assume P(X) is Bi (X) sparse
1 Degree Checks
1 Suppose want to show deg P(X) = d, but SRS has degree N
2 Precompute Di = [xN−d
Bi (x)]
3 Prover can compute D =
P
i∈[n] fi Di in O(k) time
4 Verifier checks e([P(x)], [xN−d
]) = e(D, [1])
2 Opening at fixed value
1 Suppose prover wants to open P(0) = c, for example as part of
sum-check
2 Precompute Zi = [Bi (x) − Bi (0)/x]
3 Prover can compute Z =
P
i∈[n] fi Zi in O(k) time
4 Verifier checks e([P(x)] − c[1], [1]) = e(Z, [x])
Liam Eagen (Blockstream Research) cqlin June 2, 2023 7 / 17
Sparse Commitments: cq and Lookup Arguments
Sparse commitments are a key part of lookup arguments [Caulk,etc.]
especially cq
Liam Eagen (Blockstream Research) cqlin June 2, 2023 8 / 17
Sparse Commitments: cq and Lookup Arguments
Sparse commitments are a key part of lookup arguments [Caulk,etc.]
especially cq
Given T(X) encoding a table ⃗
t ∈ FN, want to prove T(ωi ) = v for
some i
Liam Eagen (Blockstream Research) cqlin June 2, 2023 8 / 17
Sparse Commitments: cq and Lookup Arguments
Sparse commitments are a key part of lookup arguments [Caulk,etc.]
especially cq
Given T(X) encoding a table ⃗
t ∈ FN, want to prove T(ωi ) = v for
some i
Let A(X) be n Lagrange sparse and B(X) and Q(X) satisfy
T(X)A(X) = B(X) + (XN − 1)Q(X)
Liam Eagen (Blockstream Research) cqlin June 2, 2023 8 / 17
Sparse Commitments: cq and Lookup Arguments
Sparse commitments are a key part of lookup arguments [Caulk,etc.]
especially cq
Given T(X) encoding a table ⃗
t ∈ FN, want to prove T(ωi ) = v for
some i
Let A(X) be n Lagrange sparse and B(X) and Q(X) satisfy
T(X)A(X) = B(X) + (XN − 1)Q(X)
T(ωi )A(ωi ) = B(ωi ), so B(X) is also n Lagrange sparse
Liam Eagen (Blockstream Research) cqlin June 2, 2023 8 / 17
Sparse Commitments: cq and Lookup Arguments
Sparse commitments are a key part of lookup arguments [Caulk,etc.]
especially cq
Given T(X) encoding a table ⃗
t ∈ FN, want to prove T(ωi ) = v for
some i
Let A(X) be n Lagrange sparse and B(X) and Q(X) satisfy
T(X)A(X) = B(X) + (XN − 1)Q(X)
T(ωi )A(ωi ) = B(ωi ), so B(X) is also n Lagrange sparse
Q(X) is n sparse wrt to the basis Qi (X) such that
T(X)Li (X) = ti Li (X) + (XN − 1)Qi (X)
Liam Eagen (Blockstream Research) cqlin June 2, 2023 8 / 17
Sparse Commitments: cq and Lookup Arguments
Sparse commitments are a key part of lookup arguments [Caulk,etc.]
especially cq
Given T(X) encoding a table ⃗
t ∈ FN, want to prove T(ωi ) = v for
some i
Let A(X) be n Lagrange sparse and B(X) and Q(X) satisfy
T(X)A(X) = B(X) + (XN − 1)Q(X)
T(ωi )A(ωi ) = B(ωi ), so B(X) is also n Lagrange sparse
Q(X) is n sparse wrt to the basis Qi (X) such that
T(X)Li (X) = ti Li (X) + (XN − 1)Qi (X)
Can compute all [Qi (x)] in O(N log N) time using FK technique
Liam Eagen (Blockstream Research) cqlin June 2, 2023 8 / 17
Sparse Commitments: cq and Lookup Arguments
Sparse commitments are a key part of lookup arguments [Caulk,etc.]
especially cq
Given T(X) encoding a table ⃗
t ∈ FN, want to prove T(ωi ) = v for
some i
Let A(X) be n Lagrange sparse and B(X) and Q(X) satisfy
T(X)A(X) = B(X) + (XN − 1)Q(X)
T(ωi )A(ωi ) = B(ωi ), so B(X) is also n Lagrange sparse
Q(X) is n sparse wrt to the basis Qi (X) such that
T(X)Li (X) = ti Li (X) + (XN − 1)Qi (X)
Can compute all [Qi (x)] in O(N log N) time using FK technique
Can commit to [A(x)], [B(x)], and [Q(x)] in O(n) scalar
multiplications
Liam Eagen (Blockstream Research) cqlin June 2, 2023 8 / 17
Sparse Commitments: cq and Lookup Arguments
Sparse commitments are a key part of lookup arguments [Caulk,etc.]
especially cq
Given T(X) encoding a table ⃗
t ∈ FN, want to prove T(ωi ) = v for
some i
Let A(X) be n Lagrange sparse and B(X) and Q(X) satisfy
T(X)A(X) = B(X) + (XN − 1)Q(X)
T(ωi )A(ωi ) = B(ωi ), so B(X) is also n Lagrange sparse
Q(X) is n sparse wrt to the basis Qi (X) such that
T(X)Li (X) = ti Li (X) + (XN − 1)Qi (X)
Can compute all [Qi (x)] in O(N log N) time using FK technique
Can commit to [A(x)], [B(x)], and [Q(x)] in O(n) scalar
multiplications
cq defines A(X) and B(X) to encode log derivative lookup [BP++,
MVLookup]
Liam Eagen (Blockstream Research) cqlin June 2, 2023 8 / 17
Lin-Check
Fix n × n matrix M
Liam Eagen (Blockstream Research) cqlin June 2, 2023 9 / 17
Lin-Check
Fix n × n matrix M
Given commitments to vectors ⃗
a and ⃗
b show M⃗
a = ⃗
b
Liam Eagen (Blockstream Research) cqlin June 2, 2023 9 / 17
Lin-Check
Fix n × n matrix M
Given commitments to vectors ⃗
a and ⃗
b show M⃗
a = ⃗
b
Goal: do this in O(n) group and scalar operations
Liam Eagen (Blockstream Research) cqlin June 2, 2023 9 / 17
Lin-Check
Fix n × n matrix M
Given commitments to vectors ⃗
a and ⃗
b show M⃗
a = ⃗
b
Goal: do this in O(n) group and scalar operations
How?
Liam Eagen (Blockstream Research) cqlin June 2, 2023 9 / 17
Lin-Check
Fix n × n matrix M
Given commitments to vectors ⃗
a and ⃗
b show M⃗
a = ⃗
b
Goal: do this in O(n) group and scalar operations
How?
1 State M⃗
a = ⃗
b in terms of (bivariate) polynomials
Liam Eagen (Blockstream Research) cqlin June 2, 2023 9 / 17
Lin-Check
Fix n × n matrix M
Given commitments to vectors ⃗
a and ⃗
b show M⃗
a = ⃗
b
Goal: do this in O(n) group and scalar operations
How?
1 State M⃗
a = ⃗
b in terms of (bivariate) polynomials
2 Use a pairing to perform M⃗
a as polynomial multiplication
Liam Eagen (Blockstream Research) cqlin June 2, 2023 9 / 17
Lin-Check
Fix n × n matrix M
Given commitments to vectors ⃗
a and ⃗
b show M⃗
a = ⃗
b
Goal: do this in O(n) group and scalar operations
How?
1 State M⃗
a = ⃗
b in terms of (bivariate) polynomials
2 Use a pairing to perform M⃗
a as polynomial multiplication
3 Exploit the fact M is fixed and precompute quotients
Liam Eagen (Blockstream Research) cqlin June 2, 2023 9 / 17
Lin-Check
Fix n × n matrix M
Given commitments to vectors ⃗
a and ⃗
b show M⃗
a = ⃗
b
Goal: do this in O(n) group and scalar operations
How?
1 State M⃗
a = ⃗
b in terms of (bivariate) polynomials
2 Use a pairing to perform M⃗
a as polynomial multiplication
3 Exploit the fact M is fixed and precompute quotients
4 Find a sparse basis for all commitments
Liam Eagen (Blockstream Research) cqlin June 2, 2023 9 / 17
Lin-Check
Fix n × n matrix M
Given commitments to vectors ⃗
a and ⃗
b show M⃗
a = ⃗
b
Goal: do this in O(n) group and scalar operations
How?
1 State M⃗
a = ⃗
b in terms of (bivariate) polynomials
2 Use a pairing to perform M⃗
a as polynomial multiplication
3 Exploit the fact M is fixed and precompute quotients
4 Find a sparse basis for all commitments
5 Commit to everything in O(n) group scalar multiplications
Liam Eagen (Blockstream Research) cqlin June 2, 2023 9 / 17
Lin-Check
Fix n × n matrix M
Given commitments to vectors ⃗
a and ⃗
b show M⃗
a = ⃗
b
Goal: do this in O(n) group and scalar operations
How?
1 State M⃗
a = ⃗
b in terms of (bivariate) polynomials
2 Use a pairing to perform M⃗
a as polynomial multiplication
3 Exploit the fact M is fixed and precompute quotients
4 Find a sparse basis for all commitments
5 Commit to everything in O(n) group scalar multiplications
6 Reduce bivariate form to univariate form
Liam Eagen (Blockstream Research) cqlin June 2, 2023 9 / 17
Encode into Polynomials
Recall: M⃗
a =
P
i∈[n] ai ⃗
ci where ⃗
ci the columns of M
Liam Eagen (Blockstream Research) cqlin June 2, 2023 10 / 17
Encode into Polynomials
Recall: M⃗
a =
P
i∈[n] ai ⃗
ci where ⃗
ci the columns of M
Encode ⃗
b and ⃗
ci pointwise as polynomials B(X) and Ci (X)
Liam Eagen (Blockstream Research) cqlin June 2, 2023 10 / 17
Encode into Polynomials
Recall: M⃗
a =
P
i∈[n] ai ⃗
ci where ⃗
ci the columns of M
Encode ⃗
b and ⃗
ci pointwise as polynomials B(X) and Ci (X)
Now: M⃗
a = ⃗
b iff
P
i∈[n] ai Ci (X) = B(X)
Liam Eagen (Blockstream Research) cqlin June 2, 2023 10 / 17
Encode into Polynomials
Recall: M⃗
a =
P
i∈[n] ai ⃗
ci where ⃗
ci the columns of M
Encode ⃗
b and ⃗
ci pointwise as polynomials B(X) and Ci (X)
Now: M⃗
a = ⃗
b iff
P
i∈[n] ai Ci (X) = B(X)
M is a vector of vectors, so we can encode into bivariate M(X, Y )
such that M(X, ωi ) = Ci (X)
Liam Eagen (Blockstream Research) cqlin June 2, 2023 10 / 17
Encode into Polynomials
Recall: M⃗
a =
P
i∈[n] ai ⃗
ci where ⃗
ci the columns of M
Encode ⃗
b and ⃗
ci pointwise as polynomials B(X) and Ci (X)
Now: M⃗
a = ⃗
b iff
P
i∈[n] ai Ci (X) = B(X)
M is a vector of vectors, so we can encode into bivariate M(X, Y )
such that M(X, ωi ) = Ci (X)
Encode ⃗
a as polynomial A(Y )
Liam Eagen (Blockstream Research) cqlin June 2, 2023 10 / 17
Encode into Polynomials
Recall: M⃗
a =
P
i∈[n] ai ⃗
ci where ⃗
ci the columns of M
Encode ⃗
b and ⃗
ci pointwise as polynomials B(X) and Ci (X)
Now: M⃗
a = ⃗
b iff
P
i∈[n] ai Ci (X) = B(X)
M is a vector of vectors, so we can encode into bivariate M(X, Y )
such that M(X, ωi ) = Ci (X)
Encode ⃗
a as polynomial A(Y )
Now: M⃗
a = ⃗
b iff
P
i∈[n] A(ωi )M(X, ωi ) = B(X)
Liam Eagen (Blockstream Research) cqlin June 2, 2023 10 / 17
Encode into Polynomials (cont.)
Let R(X, ωi ) = M(X, ωi )A(ωi ) = ai Ci (X)
Liam Eagen (Blockstream Research) cqlin June 2, 2023 11 / 17
Encode into Polynomials (cont.)
Let R(X, ωi ) = M(X, ωi )A(ωi ) = ai Ci (X)
Which means R(X, Y ) = M(X, Y )A(Y ) mod Y n − 1
Liam Eagen (Blockstream Research) cqlin June 2, 2023 11 / 17
Encode into Polynomials (cont.)
Let R(X, ωi ) = M(X, ωi )A(ωi ) = ai Ci (X)
Which means R(X, Y ) = M(X, Y )A(Y ) mod Y n − 1
Which means R(X, Y ) = M(X, Y )A(Y ) + (Y n − 1)Q(X, Y )
Liam Eagen (Blockstream Research) cqlin June 2, 2023 11 / 17
Encode into Polynomials (cont.)
Let R(X, ωi ) = M(X, ωi )A(ωi ) = ai Ci (X)
Which means R(X, Y ) = M(X, Y )A(Y ) mod Y n − 1
Which means R(X, Y ) = M(X, Y )A(Y ) + (Y n − 1)Q(X, Y )
Now: M⃗
a = ⃗
b iff
1 R(X, Y ) = M(X, Y )A(Y ) + (Y n
− 1)Q(X, Y )
2
P
i∈[n] R(X, ωi
) = B(X)
3 degY R(X, Y ) < n, etc.
Liam Eagen (Blockstream Research) cqlin June 2, 2023 11 / 17
Encode into Polynomials (cont.)
Let R(X, ωi ) = M(X, ωi )A(ωi ) = ai Ci (X)
Which means R(X, Y ) = M(X, Y )A(Y ) mod Y n − 1
Which means R(X, Y ) = M(X, Y )A(Y ) + (Y n − 1)Q(X, Y )
Now: M⃗
a = ⃗
b iff
1 R(X, Y ) = M(X, Y )A(Y ) + (Y n
− 1)Q(X, Y )
2
P
i∈[n] R(X, ωi
) = B(X)
3 degY R(X, Y ) < n, etc.
Sum-check equivalent to R(X, 0) = B(X)
Liam Eagen (Blockstream Research) cqlin June 2, 2023 11 / 17
Proving in Linear Time
Want to construct [A(y)], [B(x)], [R(x, y)], and [Q(x, y)] in O(n)
time
Liam Eagen (Blockstream Research) cqlin June 2, 2023 12 / 17
Proving in Linear Time
Want to construct [A(y)], [B(x)], [R(x, y)], and [Q(x, y)] in O(n)
time
Need to find basis for each that is n sparse
Liam Eagen (Blockstream Research) cqlin June 2, 2023 12 / 17
Proving in Linear Time
Want to construct [A(y)], [B(x)], [R(x, y)], and [Q(x, y)] in O(n)
time
Need to find basis for each that is n sparse
Commitments to A(Y ) and B(X) are easy given [Li (x)] and [Li (y)]
Liam Eagen (Blockstream Research) cqlin June 2, 2023 12 / 17
Proving in Linear Time
Want to construct [A(y)], [B(x)], [R(x, y)], and [Q(x, y)] in O(n)
time
Need to find basis for each that is n sparse
Commitments to A(Y ) and B(X) are easy given [Li (x)] and [Li (y)]
Degree checks are also easy
Liam Eagen (Blockstream Research) cqlin June 2, 2023 12 / 17
Proving in Linear Time
Want to construct [A(y)], [B(x)], [R(x, y)], and [Q(x, y)] in O(n)
time
Need to find basis for each that is n sparse
Commitments to A(Y ) and B(X) are easy given [Li (x)] and [Li (y)]
Degree checks are also easy
Can compute [R(x, y)] =
P
i∈[n] ai [Li (y)Ci (x)] in O(n) scalar
multiplications given precomputed [Li (y)Ci (x)]
Liam Eagen (Blockstream Research) cqlin June 2, 2023 12 / 17
Proving in Linear Time
Want to construct [A(y)], [B(x)], [R(x, y)], and [Q(x, y)] in O(n)
time
Need to find basis for each that is n sparse
Commitments to A(Y ) and B(X) are easy given [Li (x)] and [Li (y)]
Degree checks are also easy
Can compute [R(x, y)] =
P
i∈[n] ai [Li (y)Ci (x)] in O(n) scalar
multiplications given precomputed [Li (y)Ci (x)]
The sum check can be computed in O(n) time using KZG openings
of Li (Y )Ci (X) at Y = 0
Liam Eagen (Blockstream Research) cqlin June 2, 2023 12 / 17
Proving in Linear Time
Want to construct [A(y)], [B(x)], [R(x, y)], and [Q(x, y)] in O(n)
time
Need to find basis for each that is n sparse
Commitments to A(Y ) and B(X) are easy given [Li (x)] and [Li (y)]
Degree checks are also easy
Can compute [R(x, y)] =
P
i∈[n] ai [Li (y)Ci (x)] in O(n) scalar
multiplications given precomputed [Li (y)Ci (x)]
The sum check can be computed in O(n) time using KZG openings
of Li (Y )Ci (X) at Y = 0
How to compute Q(X, Y )? Use the cq technique
Liam Eagen (Blockstream Research) cqlin June 2, 2023 12 / 17
Proving in Linear Time
Want to construct [A(y)], [B(x)], [R(x, y)], and [Q(x, y)] in O(n)
time
Need to find basis for each that is n sparse
Commitments to A(Y ) and B(X) are easy given [Li (x)] and [Li (y)]
Degree checks are also easy
Can compute [R(x, y)] =
P
i∈[n] ai [Li (y)Ci (x)] in O(n) scalar
multiplications given precomputed [Li (y)Ci (x)]
The sum check can be computed in O(n) time using KZG openings
of Li (Y )Ci (X) at Y = 0
How to compute Q(X, Y )? Use the cq technique
Define Qi (X, Y ) such that
Ci (X)Li (Y ) = M(X, Y )Li (Y ) + (Y n − 1)Qi (X, Y )
Liam Eagen (Blockstream Research) cqlin June 2, 2023 12 / 17
Proving in Linear Time
Want to construct [A(y)], [B(x)], [R(x, y)], and [Q(x, y)] in O(n)
time
Need to find basis for each that is n sparse
Commitments to A(Y ) and B(X) are easy given [Li (x)] and [Li (y)]
Degree checks are also easy
Can compute [R(x, y)] =
P
i∈[n] ai [Li (y)Ci (x)] in O(n) scalar
multiplications given precomputed [Li (y)Ci (x)]
The sum check can be computed in O(n) time using KZG openings
of Li (Y )Ci (X) at Y = 0
How to compute Q(X, Y )? Use the cq technique
Define Qi (X, Y ) such that
Ci (X)Li (Y ) = M(X, Y )Li (Y ) + (Y n − 1)Qi (X, Y )
Now [Q(X, Y )] =
P
i∈[n] ai [Qi (x, y)] can be computed in O(n) time
Liam Eagen (Blockstream Research) cqlin June 2, 2023 12 / 17
Final touches
Prefer to use a univariate SRS
Liam Eagen (Blockstream Research) cqlin June 2, 2023 13 / 17
Final touches
Prefer to use a univariate SRS
Can make the substitution Y = Xn
Liam Eagen (Blockstream Research) cqlin June 2, 2023 13 / 17
Final touches
Prefer to use a univariate SRS
Can make the substitution Y = Xn
Prefer to accept the input vector via F(X) that pointwise encodes ⃗
a
rather than A(Y )
Liam Eagen (Blockstream Research) cqlin June 2, 2023 13 / 17
Final touches
Prefer to use a univariate SRS
Can make the substitution Y = Xn
Prefer to accept the input vector via F(X) that pointwise encodes ⃗
a
rather than A(Y )
Can check A(α) = F(αn) at a random point in O(n) time
Liam Eagen (Blockstream Research) cqlin June 2, 2023 13 / 17
Final touches
Prefer to use a univariate SRS
Can make the substitution Y = Xn
Prefer to accept the input vector via F(X) that pointwise encodes ⃗
a
rather than A(Y )
Can check A(α) = F(αn) at a random point in O(n) time
That’s it! Given O(n) precomputed commitments can prove lin-check
in O(n) time
Liam Eagen (Blockstream Research) cqlin June 2, 2023 13 / 17
Future Work
Improvements to cqlin
Liam Eagen (Blockstream Research) cqlin June 2, 2023 14 / 17
Future Work
Improvements to cqlin
▶ Generalize to other vanishing sets
Liam Eagen (Blockstream Research) cqlin June 2, 2023 14 / 17
Future Work
Improvements to cqlin
▶ Generalize to other vanishing sets
▶ Reduce prover work and/or proof size
Liam Eagen (Blockstream Research) cqlin June 2, 2023 14 / 17
Future Work
Improvements to cqlin
▶ Generalize to other vanishing sets
▶ Reduce prover work and/or proof size
▶ Improve setup time and SRS size for sparse matrices
Liam Eagen (Blockstream Research) cqlin June 2, 2023 14 / 17
Future Work
Improvements to cqlin
▶ Generalize to other vanishing sets
▶ Reduce prover work and/or proof size
▶ Improve setup time and SRS size for sparse matrices
Other applications of precomputation and pairings?
Liam Eagen (Blockstream Research) cqlin June 2, 2023 14 / 17
Thank You!
Liam Eagen (Blockstream Research) cqlin June 2, 2023 15 / 17
Precomputation
Most of the precomputation straightforward
1 Degree checks very simple
2 Openings at zero for Li (X) follow from symmetry
Complicated part: computing Qi (X, Y ) in O(n2) group operations
Solution: use the FK technique on the rows of M(X, Y ) and sum the
results
FK technique
1 Want to compute KZG openings at N roots of unity
2 Write vector of KZG openings as a 2N × 2N circulant matrix times
vector of [xi
]
3 Circulant matrix diagonalizes as FDF−1
where F is the DFT matrix
4 This product computable in
O(N log N) + O(N) + O(N log N) = O(N log N) time
Takes O(n log n) per row, for a total of O(n2 log n)
Liam Eagen (Blockstream Research) cqlin June 2, 2023 16 / 17
Precomputation (cont.)
Naive FK takes O(n2 log n) group and field operations
It is possible to exploit the structure of FK to avoid the extra log n
1 Precompute F−1
times vector of [xi
]
2 Compute D multiplication in O(n)
3 The final F multiplication is linear, so first add the results and then do
a single F multiplication
4 Takes O(n2
) + O(n log n) = O(n2
) time.
Liam Eagen (Blockstream Research) cqlin June 2, 2023 17 / 17

Mais conteúdo relacionado

Mais procurados

zk-SNARKsの仕組みについて
zk-SNARKsの仕組みについてzk-SNARKsの仕組みについて
zk-SNARKsの仕組みについてts21
 
大規模グラフアルゴリズムの最先端
大規模グラフアルゴリズムの最先端大規模グラフアルゴリズムの最先端
大規模グラフアルゴリズムの最先端Takuya Akiba
 
自由エネルギー原理(FEP)とはなにか 20190211
自由エネルギー原理(FEP)とはなにか 20190211自由エネルギー原理(FEP)とはなにか 20190211
自由エネルギー原理(FEP)とはなにか 20190211Masatoshi Yoshida
 
ブロックチェーン系プロジェクトで着目される暗号技術
ブロックチェーン系プロジェクトで着目される暗号技術ブロックチェーン系プロジェクトで着目される暗号技術
ブロックチェーン系プロジェクトで着目される暗号技術MITSUNARI Shigeo
 
Rate-Distortion Function for Gamma Sources under Absolute-Log Distortion
Rate-Distortion Function for Gamma Sources under Absolute-Log DistortionRate-Distortion Function for Gamma Sources under Absolute-Log Distortion
Rate-Distortion Function for Gamma Sources under Absolute-Log Distortion奈良先端大 情報科学研究科
 
Introduction to Polyhedral Compilation
Introduction to Polyhedral CompilationIntroduction to Polyhedral Compilation
Introduction to Polyhedral CompilationAkihiro Hayashi
 
BLS Based Discreet Log Contracts
BLS Based Discreet Log ContractsBLS Based Discreet Log Contracts
BLS Based Discreet Log ContractsIchiro Kuwahara
 
単語・句の分散表現の学習
単語・句の分散表現の学習単語・句の分散表現の学習
単語・句の分散表現の学習Naoaki Okazaki
 
The Factoring Dead: Preparing for the Cryptopocalypse
The Factoring Dead: Preparing for the CryptopocalypseThe Factoring Dead: Preparing for the Cryptopocalypse
The Factoring Dead: Preparing for the CryptopocalypseAlex Stamos
 
山手線は丸いのか?プログラマのためのトポロジー入門
山手線は丸いのか?プログラマのためのトポロジー入門山手線は丸いのか?プログラマのためのトポロジー入門
山手線は丸いのか?プログラマのためのトポロジー入門Taketo Sano
 
[DL輪読会]Parallel WaveNet: Fast High-Fidelity Speech Synthesis
[DL輪読会]Parallel WaveNet: Fast High-Fidelity Speech Synthesis[DL輪読会]Parallel WaveNet: Fast High-Fidelity Speech Synthesis
[DL輪読会]Parallel WaveNet: Fast High-Fidelity Speech SynthesisDeep Learning JP
 
Zksnarks in english
Zksnarks in englishZksnarks in english
Zksnarks in englishRonak Kogta
 
Homomorphic Encryption
Homomorphic EncryptionHomomorphic Encryption
Homomorphic EncryptionGöktuğ Serez
 
PYNQ 祭り: Pmod のプログラミング
PYNQ 祭り: Pmod のプログラミングPYNQ 祭り: Pmod のプログラミング
PYNQ 祭り: Pmod のプログラミングryos36
 
スペクトラルグラフ理論入門
スペクトラルグラフ理論入門スペクトラルグラフ理論入門
スペクトラルグラフ理論入門irrrrr
 
よくわかるCoqプログラミング
よくわかるCoqプログラミングよくわかるCoqプログラミング
よくわかるCoqプログラミングReal_analysis
 

Mais procurados (20)

zk-SNARKsの仕組みについて
zk-SNARKsの仕組みについてzk-SNARKsの仕組みについて
zk-SNARKsの仕組みについて
 
大規模グラフアルゴリズムの最先端
大規模グラフアルゴリズムの最先端大規模グラフアルゴリズムの最先端
大規模グラフアルゴリズムの最先端
 
自由エネルギー原理(FEP)とはなにか 20190211
自由エネルギー原理(FEP)とはなにか 20190211自由エネルギー原理(FEP)とはなにか 20190211
自由エネルギー原理(FEP)とはなにか 20190211
 
ブロックチェーン系プロジェクトで着目される暗号技術
ブロックチェーン系プロジェクトで着目される暗号技術ブロックチェーン系プロジェクトで着目される暗号技術
ブロックチェーン系プロジェクトで着目される暗号技術
 
Rate-Distortion Function for Gamma Sources under Absolute-Log Distortion
Rate-Distortion Function for Gamma Sources under Absolute-Log DistortionRate-Distortion Function for Gamma Sources under Absolute-Log Distortion
Rate-Distortion Function for Gamma Sources under Absolute-Log Distortion
 
Introduction to Polyhedral Compilation
Introduction to Polyhedral CompilationIntroduction to Polyhedral Compilation
Introduction to Polyhedral Compilation
 
BLS Based Discreet Log Contracts
BLS Based Discreet Log ContractsBLS Based Discreet Log Contracts
BLS Based Discreet Log Contracts
 
単語・句の分散表現の学習
単語・句の分散表現の学習単語・句の分散表現の学習
単語・句の分散表現の学習
 
The Factoring Dead: Preparing for the Cryptopocalypse
The Factoring Dead: Preparing for the CryptopocalypseThe Factoring Dead: Preparing for the Cryptopocalypse
The Factoring Dead: Preparing for the Cryptopocalypse
 
山手線は丸いのか?プログラマのためのトポロジー入門
山手線は丸いのか?プログラマのためのトポロジー入門山手線は丸いのか?プログラマのためのトポロジー入門
山手線は丸いのか?プログラマのためのトポロジー入門
 
lsh
lshlsh
lsh
 
フラグを愛でる
フラグを愛でるフラグを愛でる
フラグを愛でる
 
[DL輪読会]Parallel WaveNet: Fast High-Fidelity Speech Synthesis
[DL輪読会]Parallel WaveNet: Fast High-Fidelity Speech Synthesis[DL輪読会]Parallel WaveNet: Fast High-Fidelity Speech Synthesis
[DL輪読会]Parallel WaveNet: Fast High-Fidelity Speech Synthesis
 
Zksnarks in english
Zksnarks in englishZksnarks in english
Zksnarks in english
 
Homomorphic Encryption
Homomorphic EncryptionHomomorphic Encryption
Homomorphic Encryption
 
Homomorphic encryption
Homomorphic encryptionHomomorphic encryption
Homomorphic encryption
 
π計算
π計算π計算
π計算
 
PYNQ 祭り: Pmod のプログラミング
PYNQ 祭り: Pmod のプログラミングPYNQ 祭り: Pmod のプログラミング
PYNQ 祭り: Pmod のプログラミング
 
スペクトラルグラフ理論入門
スペクトラルグラフ理論入門スペクトラルグラフ理論入門
スペクトラルグラフ理論入門
 
よくわかるCoqプログラミング
よくわかるCoqプログラミングよくわかるCoqプログラミング
よくわかるCoqプログラミング
 

Semelhante a zkStudyClub - cqlin: Efficient linear operations on KZG commitments

A Distributed Tableau Algorithm for Package-based Description Logics
A Distributed Tableau Algorithm for Package-based Description LogicsA Distributed Tableau Algorithm for Package-based Description Logics
A Distributed Tableau Algorithm for Package-based Description LogicsJie Bao
 
Dedalo, looking for Cluster Explanations in a labyrinth of Linked Data
Dedalo, looking for Cluster Explanations in a labyrinth of Linked DataDedalo, looking for Cluster Explanations in a labyrinth of Linked Data
Dedalo, looking for Cluster Explanations in a labyrinth of Linked DataVrije Universiteit Amsterdam
 
A lattice-based consensus clustering
A lattice-based consensus clusteringA lattice-based consensus clustering
A lattice-based consensus clusteringDmitrii Ignatov
 
CommunicationComplexity1_jieren
CommunicationComplexity1_jierenCommunicationComplexity1_jieren
CommunicationComplexity1_jierenjie ren
 
L03 ai - knowledge representation using logic
L03 ai - knowledge representation using logicL03 ai - knowledge representation using logic
L03 ai - knowledge representation using logicManjula V
 
Detecting paraphrases using recursive autoencoders
Detecting paraphrases using recursive autoencodersDetecting paraphrases using recursive autoencoders
Detecting paraphrases using recursive autoencodersFeynman Liang
 
Bayesian Nonparametric Topic Modeling Hierarchical Dirichlet Processes
Bayesian Nonparametric Topic Modeling Hierarchical Dirichlet ProcessesBayesian Nonparametric Topic Modeling Hierarchical Dirichlet Processes
Bayesian Nonparametric Topic Modeling Hierarchical Dirichlet ProcessesJinYeong Bak
 
An optimal and progressive algorithm for skyline queries slide
An optimal and progressive algorithm for skyline queries slideAn optimal and progressive algorithm for skyline queries slide
An optimal and progressive algorithm for skyline queries slideWooSung Choi
 
Output Units and Cost Function in FNN
Output Units and Cost Function in FNNOutput Units and Cost Function in FNN
Output Units and Cost Function in FNNLin JiaMing
 
A lattice-based consensus clustering
A lattice-based consensus clusteringA lattice-based consensus clustering
A lattice-based consensus clusteringDmitrii Ignatov
 
Perplexity of Index Models over Evolving Linked Data
Perplexity of Index Models over Evolving Linked Data Perplexity of Index Models over Evolving Linked Data
Perplexity of Index Models over Evolving Linked Data Thomas Gottron
 
Latent Dirichlet Allocation
Latent Dirichlet AllocationLatent Dirichlet Allocation
Latent Dirichlet AllocationMarco Righini
 
Sensors and Samples: A Homological Approach
Sensors and Samples:  A Homological ApproachSensors and Samples:  A Homological Approach
Sensors and Samples: A Homological ApproachDon Sheehy
 
Regularity of Generalized Derivations in P Semi Simple BCIK Algebras
Regularity of Generalized Derivations in P Semi Simple BCIK AlgebrasRegularity of Generalized Derivations in P Semi Simple BCIK Algebras
Regularity of Generalized Derivations in P Semi Simple BCIK AlgebrasYogeshIJTSRD
 
PAGOdA poster
PAGOdA posterPAGOdA poster
PAGOdA posterDBOnto
 

Semelhante a zkStudyClub - cqlin: Efficient linear operations on KZG commitments (20)

Slides
SlidesSlides
Slides
 
A Distributed Tableau Algorithm for Package-based Description Logics
A Distributed Tableau Algorithm for Package-based Description LogicsA Distributed Tableau Algorithm for Package-based Description Logics
A Distributed Tableau Algorithm for Package-based Description Logics
 
Dedalo, looking for Cluster Explanations in a labyrinth of Linked Data
Dedalo, looking for Cluster Explanations in a labyrinth of Linked DataDedalo, looking for Cluster Explanations in a labyrinth of Linked Data
Dedalo, looking for Cluster Explanations in a labyrinth of Linked Data
 
A lattice-based consensus clustering
A lattice-based consensus clusteringA lattice-based consensus clustering
A lattice-based consensus clustering
 
CommunicationComplexity1_jieren
CommunicationComplexity1_jierenCommunicationComplexity1_jieren
CommunicationComplexity1_jieren
 
L03 ai - knowledge representation using logic
L03 ai - knowledge representation using logicL03 ai - knowledge representation using logic
L03 ai - knowledge representation using logic
 
Detecting paraphrases using recursive autoencoders
Detecting paraphrases using recursive autoencodersDetecting paraphrases using recursive autoencoders
Detecting paraphrases using recursive autoencoders
 
Bayesian Nonparametric Topic Modeling Hierarchical Dirichlet Processes
Bayesian Nonparametric Topic Modeling Hierarchical Dirichlet ProcessesBayesian Nonparametric Topic Modeling Hierarchical Dirichlet Processes
Bayesian Nonparametric Topic Modeling Hierarchical Dirichlet Processes
 
An optimal and progressive algorithm for skyline queries slide
An optimal and progressive algorithm for skyline queries slideAn optimal and progressive algorithm for skyline queries slide
An optimal and progressive algorithm for skyline queries slide
 
Output Units and Cost Function in FNN
Output Units and Cost Function in FNNOutput Units and Cost Function in FNN
Output Units and Cost Function in FNN
 
A lattice-based consensus clustering
A lattice-based consensus clusteringA lattice-based consensus clustering
A lattice-based consensus clustering
 
Evaluating definite integrals
Evaluating definite integralsEvaluating definite integrals
Evaluating definite integrals
 
Lecture12 xing
Lecture12 xingLecture12 xing
Lecture12 xing
 
Perplexity of Index Models over Evolving Linked Data
Perplexity of Index Models over Evolving Linked Data Perplexity of Index Models over Evolving Linked Data
Perplexity of Index Models over Evolving Linked Data
 
Latent Dirichlet Allocation
Latent Dirichlet AllocationLatent Dirichlet Allocation
Latent Dirichlet Allocation
 
Sensors and Samples: A Homological Approach
Sensors and Samples:  A Homological ApproachSensors and Samples:  A Homological Approach
Sensors and Samples: A Homological Approach
 
Biconnectivity
BiconnectivityBiconnectivity
Biconnectivity
 
Lecture10 xing
Lecture10 xingLecture10 xing
Lecture10 xing
 
Regularity of Generalized Derivations in P Semi Simple BCIK Algebras
Regularity of Generalized Derivations in P Semi Simple BCIK AlgebrasRegularity of Generalized Derivations in P Semi Simple BCIK Algebras
Regularity of Generalized Derivations in P Semi Simple BCIK Algebras
 
PAGOdA poster
PAGOdA posterPAGOdA poster
PAGOdA poster
 

Mais de Alex Pruden

zkStudyClub - zkSaaS (Sruthi Sekar, UCB)
zkStudyClub - zkSaaS (Sruthi Sekar, UCB)zkStudyClub - zkSaaS (Sruthi Sekar, UCB)
zkStudyClub - zkSaaS (Sruthi Sekar, UCB)Alex Pruden
 
zkStudyClub - Improving performance of non-native arithmetic in SNARKs (Ivo K...
zkStudyClub - Improving performance of non-native arithmetic in SNARKs (Ivo K...zkStudyClub - Improving performance of non-native arithmetic in SNARKs (Ivo K...
zkStudyClub - Improving performance of non-native arithmetic in SNARKs (Ivo K...Alex Pruden
 
ZK Study Club: Supernova (Srinath Setty - MS Research)
ZK Study Club: Supernova (Srinath Setty - MS Research)ZK Study Club: Supernova (Srinath Setty - MS Research)
ZK Study Club: Supernova (Srinath Setty - MS Research)Alex Pruden
 
Caulk: zkStudyClub: Caulk - Lookup Arguments in Sublinear Time (A. Zapico)
Caulk: zkStudyClub: Caulk - Lookup Arguments in Sublinear Time (A. Zapico)Caulk: zkStudyClub: Caulk - Lookup Arguments in Sublinear Time (A. Zapico)
Caulk: zkStudyClub: Caulk - Lookup Arguments in Sublinear Time (A. Zapico)Alex Pruden
 
zkStudyClub: Zero-Knowledge Proofs Security, in Practice [JP Aumasson, Taurus]
zkStudyClub: Zero-Knowledge Proofs Security, in Practice [JP Aumasson, Taurus]zkStudyClub: Zero-Knowledge Proofs Security, in Practice [JP Aumasson, Taurus]
zkStudyClub: Zero-Knowledge Proofs Security, in Practice [JP Aumasson, Taurus]Alex Pruden
 
zkStudy Club: Subquadratic SNARGs in the Random Oracle Model
zkStudy Club: Subquadratic SNARGs in the Random Oracle ModelzkStudy Club: Subquadratic SNARGs in the Random Oracle Model
zkStudy Club: Subquadratic SNARGs in the Random Oracle ModelAlex Pruden
 
ZK Study Club: Sumcheck Arguments and Their Applications
ZK Study Club: Sumcheck Arguments and Their ApplicationsZK Study Club: Sumcheck Arguments and Their Applications
ZK Study Club: Sumcheck Arguments and Their ApplicationsAlex Pruden
 
Ecfft zk studyclub 9.9
Ecfft zk studyclub 9.9Ecfft zk studyclub 9.9
Ecfft zk studyclub 9.9Alex Pruden
 
Quarks zk study-club
Quarks zk study-clubQuarks zk study-club
Quarks zk study-clubAlex Pruden
 
zkStudyClub: CirC and Compiling Programs to Circuits
zkStudyClub: CirC and Compiling Programs to CircuitszkStudyClub: CirC and Compiling Programs to Circuits
zkStudyClub: CirC and Compiling Programs to CircuitsAlex Pruden
 

Mais de Alex Pruden (10)

zkStudyClub - zkSaaS (Sruthi Sekar, UCB)
zkStudyClub - zkSaaS (Sruthi Sekar, UCB)zkStudyClub - zkSaaS (Sruthi Sekar, UCB)
zkStudyClub - zkSaaS (Sruthi Sekar, UCB)
 
zkStudyClub - Improving performance of non-native arithmetic in SNARKs (Ivo K...
zkStudyClub - Improving performance of non-native arithmetic in SNARKs (Ivo K...zkStudyClub - Improving performance of non-native arithmetic in SNARKs (Ivo K...
zkStudyClub - Improving performance of non-native arithmetic in SNARKs (Ivo K...
 
ZK Study Club: Supernova (Srinath Setty - MS Research)
ZK Study Club: Supernova (Srinath Setty - MS Research)ZK Study Club: Supernova (Srinath Setty - MS Research)
ZK Study Club: Supernova (Srinath Setty - MS Research)
 
Caulk: zkStudyClub: Caulk - Lookup Arguments in Sublinear Time (A. Zapico)
Caulk: zkStudyClub: Caulk - Lookup Arguments in Sublinear Time (A. Zapico)Caulk: zkStudyClub: Caulk - Lookup Arguments in Sublinear Time (A. Zapico)
Caulk: zkStudyClub: Caulk - Lookup Arguments in Sublinear Time (A. Zapico)
 
zkStudyClub: Zero-Knowledge Proofs Security, in Practice [JP Aumasson, Taurus]
zkStudyClub: Zero-Knowledge Proofs Security, in Practice [JP Aumasson, Taurus]zkStudyClub: Zero-Knowledge Proofs Security, in Practice [JP Aumasson, Taurus]
zkStudyClub: Zero-Knowledge Proofs Security, in Practice [JP Aumasson, Taurus]
 
zkStudy Club: Subquadratic SNARGs in the Random Oracle Model
zkStudy Club: Subquadratic SNARGs in the Random Oracle ModelzkStudy Club: Subquadratic SNARGs in the Random Oracle Model
zkStudy Club: Subquadratic SNARGs in the Random Oracle Model
 
ZK Study Club: Sumcheck Arguments and Their Applications
ZK Study Club: Sumcheck Arguments and Their ApplicationsZK Study Club: Sumcheck Arguments and Their Applications
ZK Study Club: Sumcheck Arguments and Their Applications
 
Ecfft zk studyclub 9.9
Ecfft zk studyclub 9.9Ecfft zk studyclub 9.9
Ecfft zk studyclub 9.9
 
Quarks zk study-club
Quarks zk study-clubQuarks zk study-club
Quarks zk study-club
 
zkStudyClub: CirC and Compiling Programs to Circuits
zkStudyClub: CirC and Compiling Programs to CircuitszkStudyClub: CirC and Compiling Programs to Circuits
zkStudyClub: CirC and Compiling Programs to Circuits
 

Último

Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 

Último (20)

Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 

zkStudyClub - cqlin: Efficient linear operations on KZG commitments

  • 1. cqlin New Applications for Universal, Pairing Based SNARKs with Preprocessing Liam Eagen Blockstream Research June 2, 2023 Liam Eagen (Blockstream Research) cqlin June 2, 2023 1 / 17
  • 2. Motivation Lin-check problem is ubiquitous in SNARKs Liam Eagen (Blockstream Research) cqlin June 2, 2023 2 / 17
  • 3. Motivation Lin-check problem is ubiquitous in SNARKs Many approaches linear in sparsity (number of non-zero entries) of matrix Liam Eagen (Blockstream Research) cqlin June 2, 2023 2 / 17
  • 4. Motivation Lin-check problem is ubiquitous in SNARKs Many approaches linear in sparsity (number of non-zero entries) of matrix This is O(n2) for dense matrices Liam Eagen (Blockstream Research) cqlin June 2, 2023 2 / 17
  • 5. Motivation Lin-check problem is ubiquitous in SNARKs Many approaches linear in sparsity (number of non-zero entries) of matrix This is O(n2) for dense matrices Dense matrix multiplication useful in zkML Liam Eagen (Blockstream Research) cqlin June 2, 2023 2 / 17
  • 6. Motivation Lin-check problem is ubiquitous in SNARKs Many approaches linear in sparsity (number of non-zero entries) of matrix This is O(n2) for dense matrices Dense matrix multiplication useful in zkML Prior work [GKMMM] implies O(n) lin-check protocol ▶ Special SRS depends on the size of the matrix ▶ Has O(n3 ) setup time Liam Eagen (Blockstream Research) cqlin June 2, 2023 2 / 17
  • 7. Why Pairings and Preprocessing? Ariel’s SNARK trilogy (zkSummit 9/Zero Knowledge Podcast ep. 274) Liam Eagen (Blockstream Research) cqlin June 2, 2023 3 / 17
  • 8. Why Pairings and Preprocessing? Ariel’s SNARK trilogy (zkSummit 9/Zero Knowledge Podcast ep. 274) 1 Pairings get succinctness without PCP, need per-circuit trusted setup Liam Eagen (Blockstream Research) cqlin June 2, 2023 3 / 17
  • 9. Why Pairings and Preprocessing? Ariel’s SNARK trilogy (zkSummit 9/Zero Knowledge Podcast ep. 274) 1 Pairings get succinctness without PCP, need per-circuit trusted setup 2 Polynomial commitment schemes abstract pairing, universal trusted setup Liam Eagen (Blockstream Research) cqlin June 2, 2023 3 / 17
  • 10. Why Pairings and Preprocessing? Ariel’s SNARK trilogy (zkSummit 9/Zero Knowledge Podcast ep. 274) 1 Pairings get succinctness without PCP, need per-circuit trusted setup 2 Polynomial commitment schemes abstract pairing, universal trusted setup 3 Pairing with preprocessing breaks PCS abstraction for more power in particular applications, e.g. lookup arguments Liam Eagen (Blockstream Research) cqlin June 2, 2023 3 / 17
  • 11. Why Pairings and Preprocessing? Ariel’s SNARK trilogy (zkSummit 9/Zero Knowledge Podcast ep. 274) 1 Pairings get succinctness without PCP, need per-circuit trusted setup 2 Polynomial commitment schemes abstract pairing, universal trusted setup 3 Pairing with preprocessing breaks PCS abstraction for more power in particular applications, e.g. lookup arguments What other applications benefit from pairings and preprocessing? Liam Eagen (Blockstream Research) cqlin June 2, 2023 3 / 17
  • 12. Why Pairings and Preprocessing? Ariel’s SNARK trilogy (zkSummit 9/Zero Knowledge Podcast ep. 274) 1 Pairings get succinctness without PCP, need per-circuit trusted setup 2 Polynomial commitment schemes abstract pairing, universal trusted setup 3 Pairing with preprocessing breaks PCS abstraction for more power in particular applications, e.g. lookup arguments What other applications benefit from pairings and preprocessing? cqlin! Liam Eagen (Blockstream Research) cqlin June 2, 2023 3 / 17
  • 13. Preliminaries Fix a pairing friendly curve Liam Eagen (Blockstream Research) cqlin June 2, 2023 4 / 17
  • 14. Preliminaries Fix a pairing friendly curve Commit to polynomials using KZG, write [F(x)] for commitment to polynomial F(X) Liam Eagen (Blockstream Research) cqlin June 2, 2023 4 / 17
  • 15. Preliminaries Fix a pairing friendly curve Commit to polynomials using KZG, write [F(x)] for commitment to polynomial F(X) Prove F(a) = b by proving Q(X) = (F(X) − b)/(X − a) is a polynomial Liam Eagen (Blockstream Research) cqlin June 2, 2023 4 / 17
  • 16. Preliminaries Fix a pairing friendly curve Commit to polynomials using KZG, write [F(x)] for commitment to polynomial F(X) Prove F(a) = b by proving Q(X) = (F(X) − b)/(X − a) is a polynomial More generally for Z(X) = Q i (X − ai ), F(ai ) = G(ai ) iff F(X) = G(X) mod Z(X) Liam Eagen (Blockstream Research) cqlin June 2, 2023 4 / 17
  • 17. Preliminaries Fix a pairing friendly curve Commit to polynomials using KZG, write [F(x)] for commitment to polynomial F(X) Prove F(a) = b by proving Q(X) = (F(X) − b)/(X − a) is a polynomial More generally for Z(X) = Q i (X − ai ), F(ai ) = G(ai ) iff F(X) = G(X) mod Z(X) Equivalently, if there exists a polynomial Q(X) = (F(X) − G(X))/Z(X) Liam Eagen (Blockstream Research) cqlin June 2, 2023 4 / 17
  • 18. Preliminaries Let ω be a root of unity or order N Liam Eagen (Blockstream Research) cqlin June 2, 2023 5 / 17
  • 19. Preliminaries Let ω be a root of unity or order N Lagrange polynomials Li (ωj ) = δi,j Liam Eagen (Blockstream Research) cqlin June 2, 2023 5 / 17
  • 20. Preliminaries Let ω be a root of unity or order N Lagrange polynomials Li (ωj ) = δi,j Encode vector ⃗ v ∈ FN as F(ωi ) = vi Liam Eagen (Blockstream Research) cqlin June 2, 2023 5 / 17
  • 21. Preliminaries Let ω be a root of unity or order N Lagrange polynomials Li (ωj ) = δi,j Encode vector ⃗ v ∈ FN as F(ωi ) = vi Equivalently F(X) = P i∈[n] vi Li (X) Liam Eagen (Blockstream Research) cqlin June 2, 2023 5 / 17
  • 22. Preliminaries Let ω be a root of unity or order N Lagrange polynomials Li (ωj ) = δi,j Encode vector ⃗ v ∈ FN as F(ωi ) = vi Equivalently F(X) = P i∈[n] vi Li (X) If deg F(X) < N, then F(0) = P i∈[N] F(ωi ) [Aurora] Liam Eagen (Blockstream Research) cqlin June 2, 2023 5 / 17
  • 23. Sparse Commitments What is a Sparse Commitment? Liam Eagen (Blockstream Research) cqlin June 2, 2023 6 / 17
  • 24. Sparse Commitments What is a Sparse Commitment? Let P(X) be a degree d polynomial In general, committing to [P(x)] requires d scalar multiplications Liam Eagen (Blockstream Research) cqlin June 2, 2023 6 / 17
  • 25. Sparse Commitments What is a Sparse Commitment? Let P(X) be a degree d polynomial In general, committing to [P(x)] requires d scalar multiplications Sometimes, P(X) is sparse with respect to some basis Bi (X) of n ≤ d polynomials Liam Eagen (Blockstream Research) cqlin June 2, 2023 6 / 17
  • 26. Sparse Commitments What is a Sparse Commitment? Let P(X) be a degree d polynomial In general, committing to [P(x)] requires d scalar multiplications Sometimes, P(X) is sparse with respect to some basis Bi (X) of n ≤ d polynomials That is P(X) = P i∈[n] fi Bi (X) where at most k values of fi are non-zero and k << d Liam Eagen (Blockstream Research) cqlin June 2, 2023 6 / 17
  • 27. Sparse Commitments What is a Sparse Commitment? Let P(X) be a degree d polynomial In general, committing to [P(x)] requires d scalar multiplications Sometimes, P(X) is sparse with respect to some basis Bi (X) of n ≤ d polynomials That is P(X) = P i∈[n] fi Bi (X) where at most k values of fi are non-zero and k << d When P(X) is k, Bi (X) sparse, we can compute a commitment to P(X) in O(k) time given precomputed commitments to Bi (X) Liam Eagen (Blockstream Research) cqlin June 2, 2023 6 / 17
  • 28. Sparse Commitments What is a Sparse Commitment? Let P(X) be a degree d polynomial In general, committing to [P(x)] requires d scalar multiplications Sometimes, P(X) is sparse with respect to some basis Bi (X) of n ≤ d polynomials That is P(X) = P i∈[n] fi Bi (X) where at most k values of fi are non-zero and k << d When P(X) is k, Bi (X) sparse, we can compute a commitment to P(X) in O(k) time given precomputed commitments to Bi (X) P(X) = P i∈[n] ki [Bi (x)] Liam Eagen (Blockstream Research) cqlin June 2, 2023 6 / 17
  • 29. Sparse Commitments What is a Sparse Commitment? Let P(X) be a degree d polynomial In general, committing to [P(x)] requires d scalar multiplications Sometimes, P(X) is sparse with respect to some basis Bi (X) of n ≤ d polynomials That is P(X) = P i∈[n] fi Bi (X) where at most k values of fi are non-zero and k << d When P(X) is k, Bi (X) sparse, we can compute a commitment to P(X) in O(k) time given precomputed commitments to Bi (X) P(X) = P i∈[n] ki [Bi (x)] Sparsity is linear: if P(X) is Bi (X) sparse, then P(X)F(X) is Bi (X)F(X) sparse Liam Eagen (Blockstream Research) cqlin June 2, 2023 6 / 17
  • 30. Sparse Commitments: Simple Examples Assume P(X) is Bi (X) sparse Liam Eagen (Blockstream Research) cqlin June 2, 2023 7 / 17
  • 31. Sparse Commitments: Simple Examples Assume P(X) is Bi (X) sparse 1 Degree Checks Liam Eagen (Blockstream Research) cqlin June 2, 2023 7 / 17
  • 32. Sparse Commitments: Simple Examples Assume P(X) is Bi (X) sparse 1 Degree Checks 1 Suppose want to show deg P(X) = d, but SRS has degree N Liam Eagen (Blockstream Research) cqlin June 2, 2023 7 / 17
  • 33. Sparse Commitments: Simple Examples Assume P(X) is Bi (X) sparse 1 Degree Checks 1 Suppose want to show deg P(X) = d, but SRS has degree N 2 Precompute Di = [xN−d Bi (x)] Liam Eagen (Blockstream Research) cqlin June 2, 2023 7 / 17
  • 34. Sparse Commitments: Simple Examples Assume P(X) is Bi (X) sparse 1 Degree Checks 1 Suppose want to show deg P(X) = d, but SRS has degree N 2 Precompute Di = [xN−d Bi (x)] 3 Prover can compute D = P i∈[n] fi Di in O(k) time 4 Verifier checks e([P(x)], [xN−d ]) = e(D, [1]) Liam Eagen (Blockstream Research) cqlin June 2, 2023 7 / 17
  • 35. Sparse Commitments: Simple Examples Assume P(X) is Bi (X) sparse 1 Degree Checks 1 Suppose want to show deg P(X) = d, but SRS has degree N 2 Precompute Di = [xN−d Bi (x)] 3 Prover can compute D = P i∈[n] fi Di in O(k) time 4 Verifier checks e([P(x)], [xN−d ]) = e(D, [1]) 2 Opening at fixed value Liam Eagen (Blockstream Research) cqlin June 2, 2023 7 / 17
  • 36. Sparse Commitments: Simple Examples Assume P(X) is Bi (X) sparse 1 Degree Checks 1 Suppose want to show deg P(X) = d, but SRS has degree N 2 Precompute Di = [xN−d Bi (x)] 3 Prover can compute D = P i∈[n] fi Di in O(k) time 4 Verifier checks e([P(x)], [xN−d ]) = e(D, [1]) 2 Opening at fixed value 1 Suppose prover wants to open P(0) = c, for example as part of sum-check Liam Eagen (Blockstream Research) cqlin June 2, 2023 7 / 17
  • 37. Sparse Commitments: Simple Examples Assume P(X) is Bi (X) sparse 1 Degree Checks 1 Suppose want to show deg P(X) = d, but SRS has degree N 2 Precompute Di = [xN−d Bi (x)] 3 Prover can compute D = P i∈[n] fi Di in O(k) time 4 Verifier checks e([P(x)], [xN−d ]) = e(D, [1]) 2 Opening at fixed value 1 Suppose prover wants to open P(0) = c, for example as part of sum-check 2 Precompute Zi = [Bi (x) − Bi (0)/x] Liam Eagen (Blockstream Research) cqlin June 2, 2023 7 / 17
  • 38. Sparse Commitments: Simple Examples Assume P(X) is Bi (X) sparse 1 Degree Checks 1 Suppose want to show deg P(X) = d, but SRS has degree N 2 Precompute Di = [xN−d Bi (x)] 3 Prover can compute D = P i∈[n] fi Di in O(k) time 4 Verifier checks e([P(x)], [xN−d ]) = e(D, [1]) 2 Opening at fixed value 1 Suppose prover wants to open P(0) = c, for example as part of sum-check 2 Precompute Zi = [Bi (x) − Bi (0)/x] 3 Prover can compute Z = P i∈[n] fi Zi in O(k) time 4 Verifier checks e([P(x)] − c[1], [1]) = e(Z, [x]) Liam Eagen (Blockstream Research) cqlin June 2, 2023 7 / 17
  • 39. Sparse Commitments: cq and Lookup Arguments Sparse commitments are a key part of lookup arguments [Caulk,etc.] especially cq Liam Eagen (Blockstream Research) cqlin June 2, 2023 8 / 17
  • 40. Sparse Commitments: cq and Lookup Arguments Sparse commitments are a key part of lookup arguments [Caulk,etc.] especially cq Given T(X) encoding a table ⃗ t ∈ FN, want to prove T(ωi ) = v for some i Liam Eagen (Blockstream Research) cqlin June 2, 2023 8 / 17
  • 41. Sparse Commitments: cq and Lookup Arguments Sparse commitments are a key part of lookup arguments [Caulk,etc.] especially cq Given T(X) encoding a table ⃗ t ∈ FN, want to prove T(ωi ) = v for some i Let A(X) be n Lagrange sparse and B(X) and Q(X) satisfy T(X)A(X) = B(X) + (XN − 1)Q(X) Liam Eagen (Blockstream Research) cqlin June 2, 2023 8 / 17
  • 42. Sparse Commitments: cq and Lookup Arguments Sparse commitments are a key part of lookup arguments [Caulk,etc.] especially cq Given T(X) encoding a table ⃗ t ∈ FN, want to prove T(ωi ) = v for some i Let A(X) be n Lagrange sparse and B(X) and Q(X) satisfy T(X)A(X) = B(X) + (XN − 1)Q(X) T(ωi )A(ωi ) = B(ωi ), so B(X) is also n Lagrange sparse Liam Eagen (Blockstream Research) cqlin June 2, 2023 8 / 17
  • 43. Sparse Commitments: cq and Lookup Arguments Sparse commitments are a key part of lookup arguments [Caulk,etc.] especially cq Given T(X) encoding a table ⃗ t ∈ FN, want to prove T(ωi ) = v for some i Let A(X) be n Lagrange sparse and B(X) and Q(X) satisfy T(X)A(X) = B(X) + (XN − 1)Q(X) T(ωi )A(ωi ) = B(ωi ), so B(X) is also n Lagrange sparse Q(X) is n sparse wrt to the basis Qi (X) such that T(X)Li (X) = ti Li (X) + (XN − 1)Qi (X) Liam Eagen (Blockstream Research) cqlin June 2, 2023 8 / 17
  • 44. Sparse Commitments: cq and Lookup Arguments Sparse commitments are a key part of lookup arguments [Caulk,etc.] especially cq Given T(X) encoding a table ⃗ t ∈ FN, want to prove T(ωi ) = v for some i Let A(X) be n Lagrange sparse and B(X) and Q(X) satisfy T(X)A(X) = B(X) + (XN − 1)Q(X) T(ωi )A(ωi ) = B(ωi ), so B(X) is also n Lagrange sparse Q(X) is n sparse wrt to the basis Qi (X) such that T(X)Li (X) = ti Li (X) + (XN − 1)Qi (X) Can compute all [Qi (x)] in O(N log N) time using FK technique Liam Eagen (Blockstream Research) cqlin June 2, 2023 8 / 17
  • 45. Sparse Commitments: cq and Lookup Arguments Sparse commitments are a key part of lookup arguments [Caulk,etc.] especially cq Given T(X) encoding a table ⃗ t ∈ FN, want to prove T(ωi ) = v for some i Let A(X) be n Lagrange sparse and B(X) and Q(X) satisfy T(X)A(X) = B(X) + (XN − 1)Q(X) T(ωi )A(ωi ) = B(ωi ), so B(X) is also n Lagrange sparse Q(X) is n sparse wrt to the basis Qi (X) such that T(X)Li (X) = ti Li (X) + (XN − 1)Qi (X) Can compute all [Qi (x)] in O(N log N) time using FK technique Can commit to [A(x)], [B(x)], and [Q(x)] in O(n) scalar multiplications Liam Eagen (Blockstream Research) cqlin June 2, 2023 8 / 17
  • 46. Sparse Commitments: cq and Lookup Arguments Sparse commitments are a key part of lookup arguments [Caulk,etc.] especially cq Given T(X) encoding a table ⃗ t ∈ FN, want to prove T(ωi ) = v for some i Let A(X) be n Lagrange sparse and B(X) and Q(X) satisfy T(X)A(X) = B(X) + (XN − 1)Q(X) T(ωi )A(ωi ) = B(ωi ), so B(X) is also n Lagrange sparse Q(X) is n sparse wrt to the basis Qi (X) such that T(X)Li (X) = ti Li (X) + (XN − 1)Qi (X) Can compute all [Qi (x)] in O(N log N) time using FK technique Can commit to [A(x)], [B(x)], and [Q(x)] in O(n) scalar multiplications cq defines A(X) and B(X) to encode log derivative lookup [BP++, MVLookup] Liam Eagen (Blockstream Research) cqlin June 2, 2023 8 / 17
  • 47. Lin-Check Fix n × n matrix M Liam Eagen (Blockstream Research) cqlin June 2, 2023 9 / 17
  • 48. Lin-Check Fix n × n matrix M Given commitments to vectors ⃗ a and ⃗ b show M⃗ a = ⃗ b Liam Eagen (Blockstream Research) cqlin June 2, 2023 9 / 17
  • 49. Lin-Check Fix n × n matrix M Given commitments to vectors ⃗ a and ⃗ b show M⃗ a = ⃗ b Goal: do this in O(n) group and scalar operations Liam Eagen (Blockstream Research) cqlin June 2, 2023 9 / 17
  • 50. Lin-Check Fix n × n matrix M Given commitments to vectors ⃗ a and ⃗ b show M⃗ a = ⃗ b Goal: do this in O(n) group and scalar operations How? Liam Eagen (Blockstream Research) cqlin June 2, 2023 9 / 17
  • 51. Lin-Check Fix n × n matrix M Given commitments to vectors ⃗ a and ⃗ b show M⃗ a = ⃗ b Goal: do this in O(n) group and scalar operations How? 1 State M⃗ a = ⃗ b in terms of (bivariate) polynomials Liam Eagen (Blockstream Research) cqlin June 2, 2023 9 / 17
  • 52. Lin-Check Fix n × n matrix M Given commitments to vectors ⃗ a and ⃗ b show M⃗ a = ⃗ b Goal: do this in O(n) group and scalar operations How? 1 State M⃗ a = ⃗ b in terms of (bivariate) polynomials 2 Use a pairing to perform M⃗ a as polynomial multiplication Liam Eagen (Blockstream Research) cqlin June 2, 2023 9 / 17
  • 53. Lin-Check Fix n × n matrix M Given commitments to vectors ⃗ a and ⃗ b show M⃗ a = ⃗ b Goal: do this in O(n) group and scalar operations How? 1 State M⃗ a = ⃗ b in terms of (bivariate) polynomials 2 Use a pairing to perform M⃗ a as polynomial multiplication 3 Exploit the fact M is fixed and precompute quotients Liam Eagen (Blockstream Research) cqlin June 2, 2023 9 / 17
  • 54. Lin-Check Fix n × n matrix M Given commitments to vectors ⃗ a and ⃗ b show M⃗ a = ⃗ b Goal: do this in O(n) group and scalar operations How? 1 State M⃗ a = ⃗ b in terms of (bivariate) polynomials 2 Use a pairing to perform M⃗ a as polynomial multiplication 3 Exploit the fact M is fixed and precompute quotients 4 Find a sparse basis for all commitments Liam Eagen (Blockstream Research) cqlin June 2, 2023 9 / 17
  • 55. Lin-Check Fix n × n matrix M Given commitments to vectors ⃗ a and ⃗ b show M⃗ a = ⃗ b Goal: do this in O(n) group and scalar operations How? 1 State M⃗ a = ⃗ b in terms of (bivariate) polynomials 2 Use a pairing to perform M⃗ a as polynomial multiplication 3 Exploit the fact M is fixed and precompute quotients 4 Find a sparse basis for all commitments 5 Commit to everything in O(n) group scalar multiplications Liam Eagen (Blockstream Research) cqlin June 2, 2023 9 / 17
  • 56. Lin-Check Fix n × n matrix M Given commitments to vectors ⃗ a and ⃗ b show M⃗ a = ⃗ b Goal: do this in O(n) group and scalar operations How? 1 State M⃗ a = ⃗ b in terms of (bivariate) polynomials 2 Use a pairing to perform M⃗ a as polynomial multiplication 3 Exploit the fact M is fixed and precompute quotients 4 Find a sparse basis for all commitments 5 Commit to everything in O(n) group scalar multiplications 6 Reduce bivariate form to univariate form Liam Eagen (Blockstream Research) cqlin June 2, 2023 9 / 17
  • 57. Encode into Polynomials Recall: M⃗ a = P i∈[n] ai ⃗ ci where ⃗ ci the columns of M Liam Eagen (Blockstream Research) cqlin June 2, 2023 10 / 17
  • 58. Encode into Polynomials Recall: M⃗ a = P i∈[n] ai ⃗ ci where ⃗ ci the columns of M Encode ⃗ b and ⃗ ci pointwise as polynomials B(X) and Ci (X) Liam Eagen (Blockstream Research) cqlin June 2, 2023 10 / 17
  • 59. Encode into Polynomials Recall: M⃗ a = P i∈[n] ai ⃗ ci where ⃗ ci the columns of M Encode ⃗ b and ⃗ ci pointwise as polynomials B(X) and Ci (X) Now: M⃗ a = ⃗ b iff P i∈[n] ai Ci (X) = B(X) Liam Eagen (Blockstream Research) cqlin June 2, 2023 10 / 17
  • 60. Encode into Polynomials Recall: M⃗ a = P i∈[n] ai ⃗ ci where ⃗ ci the columns of M Encode ⃗ b and ⃗ ci pointwise as polynomials B(X) and Ci (X) Now: M⃗ a = ⃗ b iff P i∈[n] ai Ci (X) = B(X) M is a vector of vectors, so we can encode into bivariate M(X, Y ) such that M(X, ωi ) = Ci (X) Liam Eagen (Blockstream Research) cqlin June 2, 2023 10 / 17
  • 61. Encode into Polynomials Recall: M⃗ a = P i∈[n] ai ⃗ ci where ⃗ ci the columns of M Encode ⃗ b and ⃗ ci pointwise as polynomials B(X) and Ci (X) Now: M⃗ a = ⃗ b iff P i∈[n] ai Ci (X) = B(X) M is a vector of vectors, so we can encode into bivariate M(X, Y ) such that M(X, ωi ) = Ci (X) Encode ⃗ a as polynomial A(Y ) Liam Eagen (Blockstream Research) cqlin June 2, 2023 10 / 17
  • 62. Encode into Polynomials Recall: M⃗ a = P i∈[n] ai ⃗ ci where ⃗ ci the columns of M Encode ⃗ b and ⃗ ci pointwise as polynomials B(X) and Ci (X) Now: M⃗ a = ⃗ b iff P i∈[n] ai Ci (X) = B(X) M is a vector of vectors, so we can encode into bivariate M(X, Y ) such that M(X, ωi ) = Ci (X) Encode ⃗ a as polynomial A(Y ) Now: M⃗ a = ⃗ b iff P i∈[n] A(ωi )M(X, ωi ) = B(X) Liam Eagen (Blockstream Research) cqlin June 2, 2023 10 / 17
  • 63. Encode into Polynomials (cont.) Let R(X, ωi ) = M(X, ωi )A(ωi ) = ai Ci (X) Liam Eagen (Blockstream Research) cqlin June 2, 2023 11 / 17
  • 64. Encode into Polynomials (cont.) Let R(X, ωi ) = M(X, ωi )A(ωi ) = ai Ci (X) Which means R(X, Y ) = M(X, Y )A(Y ) mod Y n − 1 Liam Eagen (Blockstream Research) cqlin June 2, 2023 11 / 17
  • 65. Encode into Polynomials (cont.) Let R(X, ωi ) = M(X, ωi )A(ωi ) = ai Ci (X) Which means R(X, Y ) = M(X, Y )A(Y ) mod Y n − 1 Which means R(X, Y ) = M(X, Y )A(Y ) + (Y n − 1)Q(X, Y ) Liam Eagen (Blockstream Research) cqlin June 2, 2023 11 / 17
  • 66. Encode into Polynomials (cont.) Let R(X, ωi ) = M(X, ωi )A(ωi ) = ai Ci (X) Which means R(X, Y ) = M(X, Y )A(Y ) mod Y n − 1 Which means R(X, Y ) = M(X, Y )A(Y ) + (Y n − 1)Q(X, Y ) Now: M⃗ a = ⃗ b iff 1 R(X, Y ) = M(X, Y )A(Y ) + (Y n − 1)Q(X, Y ) 2 P i∈[n] R(X, ωi ) = B(X) 3 degY R(X, Y ) < n, etc. Liam Eagen (Blockstream Research) cqlin June 2, 2023 11 / 17
  • 67. Encode into Polynomials (cont.) Let R(X, ωi ) = M(X, ωi )A(ωi ) = ai Ci (X) Which means R(X, Y ) = M(X, Y )A(Y ) mod Y n − 1 Which means R(X, Y ) = M(X, Y )A(Y ) + (Y n − 1)Q(X, Y ) Now: M⃗ a = ⃗ b iff 1 R(X, Y ) = M(X, Y )A(Y ) + (Y n − 1)Q(X, Y ) 2 P i∈[n] R(X, ωi ) = B(X) 3 degY R(X, Y ) < n, etc. Sum-check equivalent to R(X, 0) = B(X) Liam Eagen (Blockstream Research) cqlin June 2, 2023 11 / 17
  • 68. Proving in Linear Time Want to construct [A(y)], [B(x)], [R(x, y)], and [Q(x, y)] in O(n) time Liam Eagen (Blockstream Research) cqlin June 2, 2023 12 / 17
  • 69. Proving in Linear Time Want to construct [A(y)], [B(x)], [R(x, y)], and [Q(x, y)] in O(n) time Need to find basis for each that is n sparse Liam Eagen (Blockstream Research) cqlin June 2, 2023 12 / 17
  • 70. Proving in Linear Time Want to construct [A(y)], [B(x)], [R(x, y)], and [Q(x, y)] in O(n) time Need to find basis for each that is n sparse Commitments to A(Y ) and B(X) are easy given [Li (x)] and [Li (y)] Liam Eagen (Blockstream Research) cqlin June 2, 2023 12 / 17
  • 71. Proving in Linear Time Want to construct [A(y)], [B(x)], [R(x, y)], and [Q(x, y)] in O(n) time Need to find basis for each that is n sparse Commitments to A(Y ) and B(X) are easy given [Li (x)] and [Li (y)] Degree checks are also easy Liam Eagen (Blockstream Research) cqlin June 2, 2023 12 / 17
  • 72. Proving in Linear Time Want to construct [A(y)], [B(x)], [R(x, y)], and [Q(x, y)] in O(n) time Need to find basis for each that is n sparse Commitments to A(Y ) and B(X) are easy given [Li (x)] and [Li (y)] Degree checks are also easy Can compute [R(x, y)] = P i∈[n] ai [Li (y)Ci (x)] in O(n) scalar multiplications given precomputed [Li (y)Ci (x)] Liam Eagen (Blockstream Research) cqlin June 2, 2023 12 / 17
  • 73. Proving in Linear Time Want to construct [A(y)], [B(x)], [R(x, y)], and [Q(x, y)] in O(n) time Need to find basis for each that is n sparse Commitments to A(Y ) and B(X) are easy given [Li (x)] and [Li (y)] Degree checks are also easy Can compute [R(x, y)] = P i∈[n] ai [Li (y)Ci (x)] in O(n) scalar multiplications given precomputed [Li (y)Ci (x)] The sum check can be computed in O(n) time using KZG openings of Li (Y )Ci (X) at Y = 0 Liam Eagen (Blockstream Research) cqlin June 2, 2023 12 / 17
  • 74. Proving in Linear Time Want to construct [A(y)], [B(x)], [R(x, y)], and [Q(x, y)] in O(n) time Need to find basis for each that is n sparse Commitments to A(Y ) and B(X) are easy given [Li (x)] and [Li (y)] Degree checks are also easy Can compute [R(x, y)] = P i∈[n] ai [Li (y)Ci (x)] in O(n) scalar multiplications given precomputed [Li (y)Ci (x)] The sum check can be computed in O(n) time using KZG openings of Li (Y )Ci (X) at Y = 0 How to compute Q(X, Y )? Use the cq technique Liam Eagen (Blockstream Research) cqlin June 2, 2023 12 / 17
  • 75. Proving in Linear Time Want to construct [A(y)], [B(x)], [R(x, y)], and [Q(x, y)] in O(n) time Need to find basis for each that is n sparse Commitments to A(Y ) and B(X) are easy given [Li (x)] and [Li (y)] Degree checks are also easy Can compute [R(x, y)] = P i∈[n] ai [Li (y)Ci (x)] in O(n) scalar multiplications given precomputed [Li (y)Ci (x)] The sum check can be computed in O(n) time using KZG openings of Li (Y )Ci (X) at Y = 0 How to compute Q(X, Y )? Use the cq technique Define Qi (X, Y ) such that Ci (X)Li (Y ) = M(X, Y )Li (Y ) + (Y n − 1)Qi (X, Y ) Liam Eagen (Blockstream Research) cqlin June 2, 2023 12 / 17
  • 76. Proving in Linear Time Want to construct [A(y)], [B(x)], [R(x, y)], and [Q(x, y)] in O(n) time Need to find basis for each that is n sparse Commitments to A(Y ) and B(X) are easy given [Li (x)] and [Li (y)] Degree checks are also easy Can compute [R(x, y)] = P i∈[n] ai [Li (y)Ci (x)] in O(n) scalar multiplications given precomputed [Li (y)Ci (x)] The sum check can be computed in O(n) time using KZG openings of Li (Y )Ci (X) at Y = 0 How to compute Q(X, Y )? Use the cq technique Define Qi (X, Y ) such that Ci (X)Li (Y ) = M(X, Y )Li (Y ) + (Y n − 1)Qi (X, Y ) Now [Q(X, Y )] = P i∈[n] ai [Qi (x, y)] can be computed in O(n) time Liam Eagen (Blockstream Research) cqlin June 2, 2023 12 / 17
  • 77. Final touches Prefer to use a univariate SRS Liam Eagen (Blockstream Research) cqlin June 2, 2023 13 / 17
  • 78. Final touches Prefer to use a univariate SRS Can make the substitution Y = Xn Liam Eagen (Blockstream Research) cqlin June 2, 2023 13 / 17
  • 79. Final touches Prefer to use a univariate SRS Can make the substitution Y = Xn Prefer to accept the input vector via F(X) that pointwise encodes ⃗ a rather than A(Y ) Liam Eagen (Blockstream Research) cqlin June 2, 2023 13 / 17
  • 80. Final touches Prefer to use a univariate SRS Can make the substitution Y = Xn Prefer to accept the input vector via F(X) that pointwise encodes ⃗ a rather than A(Y ) Can check A(α) = F(αn) at a random point in O(n) time Liam Eagen (Blockstream Research) cqlin June 2, 2023 13 / 17
  • 81. Final touches Prefer to use a univariate SRS Can make the substitution Y = Xn Prefer to accept the input vector via F(X) that pointwise encodes ⃗ a rather than A(Y ) Can check A(α) = F(αn) at a random point in O(n) time That’s it! Given O(n) precomputed commitments can prove lin-check in O(n) time Liam Eagen (Blockstream Research) cqlin June 2, 2023 13 / 17
  • 82. Future Work Improvements to cqlin Liam Eagen (Blockstream Research) cqlin June 2, 2023 14 / 17
  • 83. Future Work Improvements to cqlin ▶ Generalize to other vanishing sets Liam Eagen (Blockstream Research) cqlin June 2, 2023 14 / 17
  • 84. Future Work Improvements to cqlin ▶ Generalize to other vanishing sets ▶ Reduce prover work and/or proof size Liam Eagen (Blockstream Research) cqlin June 2, 2023 14 / 17
  • 85. Future Work Improvements to cqlin ▶ Generalize to other vanishing sets ▶ Reduce prover work and/or proof size ▶ Improve setup time and SRS size for sparse matrices Liam Eagen (Blockstream Research) cqlin June 2, 2023 14 / 17
  • 86. Future Work Improvements to cqlin ▶ Generalize to other vanishing sets ▶ Reduce prover work and/or proof size ▶ Improve setup time and SRS size for sparse matrices Other applications of precomputation and pairings? Liam Eagen (Blockstream Research) cqlin June 2, 2023 14 / 17
  • 87. Thank You! Liam Eagen (Blockstream Research) cqlin June 2, 2023 15 / 17
  • 88. Precomputation Most of the precomputation straightforward 1 Degree checks very simple 2 Openings at zero for Li (X) follow from symmetry Complicated part: computing Qi (X, Y ) in O(n2) group operations Solution: use the FK technique on the rows of M(X, Y ) and sum the results FK technique 1 Want to compute KZG openings at N roots of unity 2 Write vector of KZG openings as a 2N × 2N circulant matrix times vector of [xi ] 3 Circulant matrix diagonalizes as FDF−1 where F is the DFT matrix 4 This product computable in O(N log N) + O(N) + O(N log N) = O(N log N) time Takes O(n log n) per row, for a total of O(n2 log n) Liam Eagen (Blockstream Research) cqlin June 2, 2023 16 / 17
  • 89. Precomputation (cont.) Naive FK takes O(n2 log n) group and field operations It is possible to exploit the structure of FK to avoid the extra log n 1 Precompute F−1 times vector of [xi ] 2 Compute D multiplication in O(n) 3 The final F multiplication is linear, so first add the results and then do a single F multiplication 4 Takes O(n2 ) + O(n log n) = O(n2 ) time. Liam Eagen (Blockstream Research) cqlin June 2, 2023 17 / 17