Skip to content

Commit 74bcd59

Browse files
authored
Merge pull request #224 from dalek-cryptography/oleg/two-phase
Two-phase low-level variable commitments in R1CS protocol
2 parents 5b79b71 + 2fb8f4d commit 74bcd59

File tree

2 files changed

+319
-88
lines changed

2 files changed

+319
-88
lines changed

docs/cs-proof.md

Lines changed: 110 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -17,54 +17,74 @@ The protocol begins with the prover computing commitments to the secret values \
1717
V_i \gets \operatorname{Com}(v_i, {\widetilde{v}\_i}) = v\_i \cdot B + {\widetilde{v}\_i} \cdot {\widetilde{B}}
1818
\\] where each \\(\widetilde{v}\_i\\) is sampled randomly.
1919

20-
The prover then [builds constraints](#building-constraints), allocating necessary multiplication gates on the fly,
21-
generating challenge values bound to the commitments \\(V_i\\), filling in weights \\(\mathbf{W}\_L,\mathbf{W}\_R,\mathbf{W}\_O,\mathbf{W}\_V\\), and assigning values to the left, right and output wires
22-
of the multiplication gates (\\(\mathbf{a}\_{L}, \mathbf{a}\_{R}, \mathbf{a}\_{O}\\)).
20+
The prover then [builds constraints](#building-constraints) in two phases.
2321

24-
Once all multiplication wires are assigned, the prover commits to them via vector Pedersen commitments:
22+
In the first phase, the prover allocates necessary multiplication gates on the fly, fills in weights \\(\mathbf{W}\_L',\mathbf{W}\_R',\mathbf{W}\_O',\mathbf{W}\_V'\\), and assigns values to the left, right and output wires
23+
of the multiplication gates (\\(\mathbf{a}\_L', \mathbf{a}\_R', \mathbf{a}\_O'\\)) without using the challenge values.
24+
25+
Once \\(n'\\) multiplication gates are assigned, the prover commits to them via vector Pedersen commitments:
2526

2627
\\[
2728
\begin{aligned}
28-
\tilde{a} \\;&{\xleftarrow{\\$}}\\; \mathbb Z\_p \\\\
29-
\tilde{o} \\;&{\xleftarrow{\\$}}\\; \mathbb Z\_p \\\\
30-
A_I &\gets \widetilde{B} \cdot \tilde{a} + \langle \mathbf{G} , \mathbf{a}\_L \rangle + \langle \mathbf{H}, \mathbf{a}\_R \rangle \\\\
31-
A_O &\gets \widetilde{B} \cdot \tilde{o} + \langle \mathbf{G} , \mathbf{a}\_O \rangle \\\\
29+
\tilde{a}' \\;&{\xleftarrow{\\$}}\\; \mathbb Z\_p \\\\
30+
\tilde{o}' \\;&{\xleftarrow{\\$}}\\; \mathbb Z\_p \\\\
31+
A_I' &\gets \widetilde{B} \cdot \tilde{a}' + \langle \mathbf{G}' , \mathbf{a}\_L' \rangle + \langle \mathbf{H}', \mathbf{a}\_R' \rangle \\\\
32+
A_O' &\gets \widetilde{B} \cdot \tilde{o}' + \langle \mathbf{G}' , \mathbf{a}\_O' \rangle \\\\
3233
\end{aligned}
3334
\\]
3435

35-
The prover also computes blinding factors \\(\mathbf{s}\_L, \mathbf{s}\_R\\)
36+
The prover also computes blinding factors \\(\mathbf{s}\_L', \mathbf{s}\_R'\\)
3637
for the left and right multiplication values and commits to them:
3738

3839
\\[
3940
\begin{aligned}
40-
\mathbf{s}\_{L} \\; &{\xleftarrow{\\$}}\\; {\mathbb Z\_p}^{n} \\\\
41-
\mathbf{s}\_{R} \\; &{\xleftarrow{\\$}}\\; {\mathbb Z\_p}^{n} \\\\
42-
\tilde{s} \\; &{\xleftarrow{\\$}}\\; \mathbb Z\_p \\\\
43-
S &\gets \widetilde{B} \cdot \tilde{s} + \langle \mathbf{G} , \mathbf{s}\_L \rangle + \langle \mathbf{H}, \mathbf{s}\_R \rangle
41+
\mathbf{s}\_L' \\; &{\xleftarrow{\\$}}\\; {\mathbb Z\_p}^{n'} \\\\
42+
\mathbf{s}\_R' \\; &{\xleftarrow{\\$}}\\; {\mathbb Z\_p}^{n'} \\\\
43+
\tilde{s}' \\; &{\xleftarrow{\\$}}\\; \mathbb Z\_p \\\\
44+
S' &\gets \widetilde{B} \cdot \tilde{s}' + \langle \mathbf{G}', \mathbf{s}\_L' \rangle + \langle \mathbf{H}', \mathbf{s}\_R' \rangle
45+
\end{aligned}
46+
\\]
47+
48+
The prover adds \\(A_I'\\), \\(A_O'\\) and \\(S'\\) to the protocol transcript.
49+
50+
In the second phase, the prover is allowed to use challenge values when allocating multiplication gates (\\(\mathbf{a}\_{L}'', \mathbf{a}\_{R}'', \mathbf{a}\_{O}''\\)) and computing weights \\(\mathbf{W}\_L'',\mathbf{W}\_R'',\mathbf{W}\_O'',\mathbf{W}\_V''\\).
51+
52+
When additional \\(n''\\) multiplication gates are assigned, the prover commits to them via vector Pedersen commitments, along with the corresponding blinding factors \\(\mathbf{s}\_L'', \mathbf{s}\_R''\\):
53+
54+
\\[
55+
\begin{aligned}
56+
\tilde{a}'' \\;&{\xleftarrow{\\$}}\\; \mathbb Z\_p \\\\
57+
\tilde{o}'' \\;&{\xleftarrow{\\$}}\\; \mathbb Z\_p \\\\
58+
A_I'' &\gets \widetilde{B} \cdot \tilde{a}'' + \langle \mathbf{G}'' , \mathbf{a}\_L'' \rangle + \langle \mathbf{H}'', \mathbf{a}\_R'' \rangle \\\\
59+
A_O'' &\gets \widetilde{B} \cdot \tilde{o}'' + \langle \mathbf{G}'' , \mathbf{a}\_O'' \rangle \\\\
60+
\mathbf{s}\_L'' \\; &{\xleftarrow{\\$}}\\; {\mathbb Z\_p}^{n''} \\\\
61+
\mathbf{s}\_R'' \\; &{\xleftarrow{\\$}}\\; {\mathbb Z\_p}^{n''} \\\\
62+
\tilde{s}'' \\; &{\xleftarrow{\\$}}\\; \mathbb Z\_p \\\\
63+
S'' &\gets \widetilde{B} \cdot \tilde{s}'' + \langle \mathbf{G}'' , \mathbf{s}\_L'' \rangle + \langle \mathbf{H}'', \mathbf{s}\_R'' \rangle
4464
\end{aligned}
4565
\\]
4666

47-
The prover adds \\(A_I\\), \\(A_O\\) and \\(S\\) to the protocol transcript
67+
The prover adds \\(A_I''\\), \\(A_O''\\) and \\(S''\\) to the protocol transcript
4868
and obtains challenge scalars \\(y,z \in {\mathbb Z\_p}\\) from the transcript.
4969

5070
The prover then flattens the constraints using \\(q\\) powers of challenge \\(z\\):
5171

5272
\\[
5373
\begin{aligned}
54-
\mathbf{w}\_L &\gets z \mathbf{z}^q \cdot \mathbf{W}\_L, \\\\
55-
\mathbf{w}\_R &\gets z \mathbf{z}^q \cdot \mathbf{W}\_R, \\\\
56-
\mathbf{w}\_O &\gets z \mathbf{z}^q \cdot \mathbf{W}\_O, \\\\
57-
\mathbf{w}\_V &\gets z \mathbf{z}^q \cdot \mathbf{W}\_V,
74+
\mathbf{w}\_L &\gets z \mathbf{z}^q \cdot (\mathbf{W}\_L' || \mathbf{W}\_L''), \\\\
75+
\mathbf{w}\_R &\gets z \mathbf{z}^q \cdot (\mathbf{W}\_R' || \mathbf{W}\_R''), \\\\
76+
\mathbf{w}\_O &\gets z \mathbf{z}^q \cdot (\mathbf{W}\_O' || \mathbf{W}\_O''), \\\\
77+
\mathbf{w}\_V &\gets z \mathbf{z}^q \cdot (\mathbf{W}\_V' || \mathbf{W}\_V''),
5878
\end{aligned}
5979
\\]
60-
where each of \\(\mathbf{w}\_L, \mathbf{w}\_R, \mathbf{w}\_O\\) has length \\(n\\) and \\(\mathbf{w}\_V\\) has length \\(m\\).
80+
where each of \\(\mathbf{w}\_L, \mathbf{w}\_R, \mathbf{w}\_O\\) has length \\(n = n' + n''\\) and \\(\mathbf{w}\_V\\) has length \\(m\\).
6181

6282
The prover then constructs the blinded polynomials and their inner product:
6383

6484
\\[
6585
\begin{aligned}
66-
{\mathbf{l}}(x) &\gets \mathbf{a}\_L \cdot x + \mathbf{s}\_L \cdot x^3 + \mathbf{y}^{-n} \circ \mathbf{w}\_R \cdot x + \mathbf{a}\_O \cdot x^2 \\\\
67-
{\mathbf{r}}(x) &\gets \mathbf{y}^n \circ \mathbf{a}\_R \cdot x + \mathbf{y}^n \circ \mathbf{s}\_R \cdot x^3 + \mathbf{w}\_L \cdot x - \mathbf{y}^n + \mathbf{w}\_O \\\\
86+
{\mathbf{l}}(x) &\gets (\mathbf{a}\_L' || \mathbf{a}\_L'') \cdot x + (\mathbf{s}\_L' || \mathbf{s}\_L'') \cdot x^3 + \mathbf{y}^{-n} \circ \mathbf{w}\_R \cdot x + (\mathbf{a}\_O' || \mathbf{a}\_O'') \cdot x^2 \\\\
87+
{\mathbf{r}}(x) &\gets \mathbf{y}^n \circ (\mathbf{a}\_R' || \mathbf{a}\_R'') \cdot x + \mathbf{y}^n \circ (\mathbf{s}\_R' || \mathbf{s}\_R'') \cdot x^3 + \mathbf{w}\_L \cdot x - \mathbf{y}^n + \mathbf{w}\_O \\\\
6888
t(x) &\gets {\langle {\mathbf{l}}(x), {\mathbf{r}}(x) \rangle}
6989
\end{aligned}
7090
\\]
@@ -80,16 +100,16 @@ The prover generates blinding factors for terms \\(t\_1, t\_3, t\_4, t\_5, t\_6\
80100
\\]
81101

82102
The prover adds \\(T_1, T_3, T_4, T_5, T_6\\) to the protocol transcript
83-
and obtains a challenge scalar \\(x \in {\mathbb Z\_p}\\) from the transcript.
103+
and obtains the challenge scalars \\(u,x \in {\mathbb Z\_p}\\) from the transcript.
84104

85-
Using the concrete value \\(x\\), the prover computes
105+
Using the concrete values \\(u, x\\), the prover computes
86106
the synthetic blinding factors \\({\tilde{t}}(x)\\) and \\(\tilde{e}\\):
87107

88108
\\[
89109
\begin{aligned}
90110
\tilde{t}\_2 &\gets \langle \mathbf{w}\_V, \tilde{\mathbf{v}} \rangle \\\\
91111
{\tilde{t}}(x) &\gets \sum\_{i = 1}^{6} x^i \tilde{t}\_{i} \\\\
92-
{\tilde{e}} &\gets \tilde{a} \cdot x + \tilde{o} \cdot x^2 + \tilde{s} \cdot x^3 \\\\
112+
{\tilde{e}} &\gets (\tilde{a}' + u \tilde{a}'') \cdot x + (\tilde{o}' + u \tilde{o}'') \cdot x^2 + (\tilde{s}' + u \tilde{s}'') \cdot x^3 \\\\
93113
\end{aligned}
94114
\\]
95115

@@ -104,34 +124,43 @@ The prover evaluates polynomials \\(\mathbf{l}(x), \mathbf{r}(x)\\) and
104124

105125
\\[
106126
\begin{aligned}
107-
n^{+} &= 2^{\lceil \log_2 n \rceil} \\\\
108-
\mathbf{l}^{+} &= \mathbf{l}(x) \hspace{0.1cm} || \hspace{0.1cm} \mathbf{0} \\\\
109-
\mathbf{r}^{+} &= \mathbf{r}(x) \hspace{0.1cm} || \hspace{0.1cm} [-y^n,...,-y^{n^{+}-1}]
127+
n^{+} &\gets 2^{\lceil \log_2 n \rceil} \\\\
128+
\mathbf{l}^{+} &\gets \mathbf{l}(x) \hspace{0.1cm} || \hspace{0.1cm} \mathbf{0} \\\\
129+
\mathbf{r}^{+} &\gets \mathbf{r}(x) \hspace{0.1cm} || \hspace{0.1cm} [-y^n,...,-y^{n^{+}-1}]
130+
\end{aligned}
131+
\\]
132+
133+
The prover transmutes generators using challenges \\(y\\) and \\(u\\):
134+
135+
\\[
136+
\begin{aligned}
137+
\hat{\mathbf{G}} &\gets \mathbf{G}' || (u \cdot \mathbf{G}'') \\\\
138+
\hat{\mathbf{H}} &\gets \mathbf{y}^{-n} \circ \big( \mathbf{H}' || (u \cdot \mathbf{H}'') \big) \\\\
110139
\end{aligned}
111140
\\]
112141

113142
The prover also takes a larger slice of the generators \\(\mathbf{G}, \mathbf{H}\\):
114143

115144
\\[
116145
\begin{aligned}
117-
\mathbf{G}^{+} &= \mathbf{G} \hspace{0.1cm} || \hspace{0.1cm} [G_n,...,G_{n^{+}-1}] \\\\
118-
{\mathbf{H}'}^{+} &= \mathbf{H}' \hspace{0.1cm} || \hspace{0.1cm} \Big( [y^n,...,y^{n^{+}-1}] \circ [H_n,...,H_{n^{+}-1}] \Big) \\\\
146+
\hat{\mathbf{G}}^{+} &\gets \hat{\mathbf{G}} \hspace{0.1cm} || \hspace{0.1cm} u \cdot [G_n,...,G_{n^{+}-1}] \\\\
147+
\hat{\mathbf{H}}^{+} &\gets \hat{\mathbf{H}} \hspace{0.1cm} || \hspace{0.1cm} u \cdot [y^{-n} H_n,..., y^{-(n^{+}-1)} H_{n^{+}-1}] \\\\
119148
\end{aligned}
120149
\\]
121150

122151
Finally, the prover performs the [inner product argument](../inner_product_proof/index.html) to prove the relation:
123152
\\[
124153
\operatorname{PK}\left\\{
125-
(\mathbf{G}^{+}, {\mathbf{H}'}^{+} \in {\mathbb G}^{n^{+}}, P', Q \in {\mathbb G}; \mathbf{l}^{+}, \mathbf{r}^{+} \in {\mathbb Z\_p}^{n^{+}})
126-
: P' = {\langle \mathbf{l}^{+}, \mathbf{G}^{+} \rangle} + {\langle \mathbf{r}^{+}, {\mathbf{H}'}^{+} \rangle} + {\langle \mathbf{l}^{+}, \mathbf{r}^{+} \rangle} Q
154+
(\hat{\mathbf{G}}^{+}, \hat{\mathbf{H}}^{+} \in {\mathbb G}^{n^{+}}, P', Q \in {\mathbb G}; \mathbf{l}^{+}, \mathbf{r}^{+} \in {\mathbb Z\_p}^{n^{+}})
155+
: P' = {\langle \mathbf{l}^{+}, \hat{\mathbf{G}}^{+} \rangle} + {\langle \mathbf{r}^{+}, \hat{\mathbf{H}}^{+} \rangle} + {\langle \mathbf{l}^{+}, \mathbf{r}^{+} \rangle} Q
127156
\right\\}
128-
\\] where \\({\mathbf{H}'}^{+} = {\mathbf{y}}^{-n^{+}} \circ \mathbf{H}^{+}\\).
157+
\\]
129158

130159
The result of the inner product proof is a list of \\(2k\\) points and \\(2\\) scalars, where \\(k = \lceil \log_2(n) \rceil\\): \\(\\{L\_k, R\_k, \\dots, L\_1, R\_1, a, b\\}\\).
131160

132-
The complete proof consists of \\(13+2k\\) 32-byte elements:
161+
The complete proof consists of \\(16+2k\\) 32-byte elements:
133162
\\[
134-
\\{A\_I, A\_O, S, T\_1, T\_3, T\_4, T\_5, T\_6, t(x), {\tilde{t}}(x), \tilde{e}, L\_k, R\_k, \\dots, L\_1, R\_1, a, b\\}
163+
\\{A\_I', A\_O', S', A\_I'', A\_O'', S'', T\_1, T\_3, T\_4, T\_5, T\_6, t(x), {\tilde{t}}(x), \tilde{e}, L\_k, R\_k, \\dots, L\_1, R\_1, a, b\\}
135164
\\]
136165

137166

@@ -140,21 +169,28 @@ Verifier’s algorithm
140169
--------------------
141170

142171
The input to the verifier is the aggregated proof, which contains the \\(m\\) value commitments \\(V_{(j)}\\),
143-
and \\(32 \cdot (13 + 2 k)\\) bytes of the proof data where \\(k = \lceil \log_2(n) \rceil\\) and \\(n\\) is a number of [multiplication gates](#multiplication-gates):
172+
and \\(32 \cdot (16 + 2 k)\\) bytes of the proof data where \\(k = \lceil \log_2(n) \rceil\\) and \\(n\\) is a number of [multiplication gates](#multiplication-gates):
144173

145174
\\[
146-
\\{A\_I, A\_O, S, T\_1, T\_3, T\_4, T\_5, T\_6, t(x), {\tilde{t}}(x), \tilde{e}, L\_k, R\_k, \\dots, L\_1, R\_1, a, b\\}
175+
\\{A\_I', A\_O', S', A\_I'', A\_O'', S'', T\_1, T\_3, T\_4, T\_5, T\_6, t(x), {\tilde{t}}(x), \tilde{e}, L\_k, R\_k, \\dots, L\_1, R\_1, a, b\\}
147176
\\]
148177

149178
The verifier starts by adding all value commitments \\(V_i\\) to the protocol transcript.
150179

151-
The verifier then [builds constraints](#building-constraints), allocating necessary multiplication gates on the fly and
152-
generating challenge values bound to the commitments \\(V_i\\).
180+
The verifier then [builds constraints](#building-constraints) in two phases.
153181

154-
The verifier uses the Fiat-Shamir transform to obtain challenges by adding the appropriate data sequentially to the protocol transcript:
182+
In the first phase, the verifier allocates \\(n'\\) multiplication gates and the first set of constraints without using challenges.
155183

156-
1. \\(A_I, A_O, S\\) are added to obtain challenge scalars \\(y,z \in {\mathbb Z\_p}\\),
157-
2. \\(T_1, T_3, T_4, T_5, T_6\\) are added to obtain a challenge \\(x \in {\mathbb Z\_p}\\),
184+
Then, the verifier uses the Fiat-Shamir transform to generate challenges required by the gadgets
185+
by adding the intermediate commitments \\(A_I', A_O', S'\\) to the protocol transcript.
186+
187+
In the second phase, the verifier allocates additional \\(n''\\) multiplication gates and the second set of constraints,
188+
providing necessary challenges to the gadgets that form the constraint system.
189+
190+
The verifier obtains more challenges by adding the appropriate data sequentially to the protocol transcript:
191+
192+
1. \\(A_I'', A_O'', S''\\) are added to obtain challenge scalars \\(y,z \in {\mathbb Z\_p}\\),
193+
2. \\(T_1, T_3, T_4, T_5, T_6\\) are added to obtain a challenge scalars \\(u,x \in {\mathbb Z\_p}\\),
158194
3. \\(t(x), {\tilde{t}}(x), \tilde{e}\\) are added to obtain a challenge \\(w \in {\mathbb Z\_p}\\).
159195

160196
The verifier flattens constraints:
@@ -175,10 +211,10 @@ by taking a larger slice of the generators \\(\mathbf{G},\mathbf{H}\\) and more
175211

176212
\\[
177213
\begin{aligned}
178-
n^{+} &= 2^{\lceil \log_2 n \rceil} \\\\
179-
\mathbf{G}^{+} &= \mathbf{G} \hspace{0.1cm} || \hspace{0.1cm} [G_n,...,G_{n^{+}-1}] \\\\
180-
\mathbf{H}^{+} &= \mathbf{H} \hspace{0.1cm} || \hspace{0.1cm} [H_n,...,H_{n^{+}-1}] \\\\
181-
\mathbf{y}^{n^{+}} &= \mathbf{y}^n \hspace{0.1cm} || \hspace{0.1cm} [y^n,...,y^{n^{+}-1}] \\\\
214+
n^{+} &\gets 2^{\lceil \log_2 n \rceil} \\\\
215+
\mathbf{G}^{+} &\gets \mathbf{G} \hspace{0.1cm} || \hspace{0.1cm} [G_n,...,G_{n^{+}-1}] \\\\
216+
\mathbf{H}^{+} &\gets \mathbf{H} \hspace{0.1cm} || \hspace{0.1cm} [H_n,...,H_{n^{+}-1}] \\\\
217+
\mathbf{y}^{n^{+}} &\gets \mathbf{y}^n \hspace{0.1cm} || \hspace{0.1cm} [y^n,...,y^{n^{+}-1}] \\\\
182218
\end{aligned}
183219
\\]
184220

@@ -209,26 +245,29 @@ If we rewrite the check as a comparison with the identity point, we get:
209245
**Second**, verify the inner product argument for the vectors \\(\mathbf{l}(x), \mathbf{r}(x)\\) that form the \\(t(x)\\) (see [inner-product protocol](../inner_product_proof/index.html#verification-equation))
210246

211247
\\[
212-
P' \overset ? = {\langle a \cdot \mathbf{s}, \mathbf{G}^{+} \rangle} + {\langle {\mathbf{y}^{-n^{+}}} \circ (b /{\mathbf{s}}), \mathbf{H}^{+} \rangle} + abQ - \sum\_{j=1}^{k} \left( L\_{j} u\_{j}^{2} + u\_{j}^{-2} R\_{j} \right).
248+
P' \overset ? = {\langle a \cdot \mathbf{s}, \hat{\mathbf{G}}^{+} \rangle} + {\langle b/\mathbf{s}, \hat{\mathbf{H}}^{+} \rangle} + abQ - \sum\_{j=1}^{k} \left( L\_{j} u\_{j}^{2} + u\_{j}^{-2} R\_{j} \right),
249+
\\]
250+
where
251+
\\[
252+
\begin{aligned}
253+
\hat{\mathbf{G}}^{+} &= \mathbf{G}' \hspace{0.1cm} || \hspace{0.1cm} u \cdot \mathbf{G}'' \hspace{0.1cm} || \hspace{0.1cm} u \cdot [G_n,...,G_{n^{+}-1}] \\\\
254+
\hat{\mathbf{H}}^{+} &= \mathbf{y}^{-n^{+}} \circ \big( \mathbf{H}' \hspace{0.1cm} || \hspace{0.1cm} u \cdot \mathbf{H}'' \hspace{0.1cm} || \hspace{0.1cm} u \cdot [H_n,...,H_{n^{+}-1}]\big) \\\\
255+
\end{aligned}
213256
\\]
214257

215258
Rewriting as a comparison with the identity point and expanding \\(Q = wB\\) and \\(P' = P^{+} + t(x) wB\\) as [needed for transition to the inner-product protocol](../notes/index.html#inner-product-proof):
216259

217260
\\[
218-
0 \overset ? = P^{+} + t(x) wB - {\langle a \cdot \mathbf{s}, \mathbf{G}^{+} \rangle} - {\langle \mathbf{y}^{-n^{+}} \circ (b /\mathbf{s}), \mathbf{H}^{+} \rangle} - abwB + \sum\_{j=1}^{k} \left( L\_{j} u\_{j}^{2} + u\_{j}^{-2} R\_{j} \right),
261+
0 \overset ? = P^{+} + t(x) wB - {\langle a \cdot \mathbf{s}, \hat{\mathbf{G}}^{+} \rangle} - {\langle b/\mathbf{s}, \hat{\mathbf{H}}^{+} \rangle} - abwB + \sum\_{j=1}^{k} \left( L\_{j} u\_{j}^{2} + u\_{j}^{-2} R\_{j} \right),
219262
\\]
220263
where the [definition](#proving-that-mathbflx-mathbfrx-are-correct) of \\(P^{+}\\) is:
221264

222265
\\[
223266
\begin{aligned}
224-
P^{+} = -{\widetilde{e}} {\widetilde{B}} + x \cdot A_I + x^2 \cdot A_O - \langle \mathbf{1}, \mathbf{H}^{+} \rangle + W_L \cdot x + W_R \cdot x + W_O + x^3 \cdot S
225-
\end{aligned}
226-
\\]
227-
\\[
228-
\begin{aligned}
229-
W_L &= \langle \mathbf{y}^{-n} \circ \mathbf{w}\_L, \mathbf{H} \rangle \\\\
230-
W_R &= \langle \mathbf{y}^{-n} \circ \mathbf{w}\_R, \mathbf{G} \rangle \\\\
231-
W_O &= \langle \mathbf{y}^{-n} \circ \mathbf{w}\_O, \mathbf{H} \rangle \\\\
267+
P^{+} = &-{\widetilde{e}} {\widetilde{B}} + x \cdot (A_I' + u \cdot A_I'') + x^2 \cdot (A_O' + u \cdot A_O'') \\\\
268+
&-\langle \mathbf{1}, \mathbf{H}' \rangle - u \cdot \langle \mathbf{1}, {\mathbf{H}''} \rangle - u \cdot [H_n,...,H_{n^{+}-1}]\\\\
269+
&+x \cdot \langle \mathbf{w}\_L, \hat{\mathbf{H}} \rangle + x \cdot \langle \mathbf{w}\_R, \hat{\mathbf{G}} \rangle + \langle \mathbf{w}\_O, \hat{\mathbf{H}} \rangle +
270+
x^3 \cdot (S' + u \cdot S'')
232271
\end{aligned}
233272
\\]
234273

@@ -239,15 +278,22 @@ Finally, verifier groups all scalars by each point and performs a single multisc
239278

240279
\\[
241280
\begin{aligned}
242-
0 \quad \stackrel{?}{=} & \quad x \cdot A\_I \\\\
243-
+ & \quad x^2 \cdot A\_O \\\\
244-
+ & \quad x^3 \cdot S \\\\
245-
+ & \quad \langle r x^2 \mathbf{w}\_V, \mathbf{V} \rangle \\\\
246-
+ & \quad \sum\_{i = 1,3,4,5,6} r x^i T\_{i} \\\\
247-
+ & \quad \Big(w \big(t(x) - ab\big) + r \big(x^2 (w\_c + \delta(y,z)) - t(x)\big) \Big) \cdot B \\\\
248-
+ & \quad (-{\widetilde{e}} - r{\tilde{t}}(x)) \cdot \widetilde{B} \\\\
249-
+ & \quad {\langle \big( x \mathbf{y}^{-n} \circ \mathbf{w}\_R \big) || \mathbf{0} - a\mathbf{s}, \mathbf{G}^{+} \rangle}\\\\
250-
+ & \quad {\langle -\mathbf{1} + \mathbf{y}^{-n^{+}} \circ \big( (x \mathbf{w}\_L + \mathbf{w}\_O) || \mathbf{0} - (b /{\mathbf{s}}) \big), \mathbf{H}^{+} \rangle}\\\\
281+
0 \quad \stackrel{?}{=} & \quad x \cdot A\_I' \\\\
282+
+ & \quad x^2 \cdot A\_O' \\\\
283+
+ & \quad x^3 \cdot S' \\\\
284+
+ & \quad u \cdot x \cdot A\_I'' \\\\
285+
+ & \quad u \cdot x^2 \cdot A\_O'' \\\\
286+
+ & \quad u \cdot x^3 \cdot S'' \\\\
287+
+ & \quad \langle r \cdot x^2 \cdot \mathbf{w}\_V, \mathbf{V} \rangle \\\\
288+
+ & \quad \sum\_{i = 1,3,4,5,6} r \cdot x^i \cdot T\_{i} \\\\
289+
+ & \quad \Big(w \cdot \big(t(x) - a \cdot b\big) + r \cdot \big(x^2 \cdot (w\_c + \delta(y,z)) - t(x)\big) \Big) \cdot B \\\\
290+
+ & \quad (-{\widetilde{e}} - r \cdot {\tilde{t}}(x)) \cdot \widetilde{B} \\\\
291+
+ & \quad {\langle x \cdot \mathbf{y}^{-n^{+}}\_{[0:n']} \circ \mathbf{w}\_R' - a \cdot \mathbf{s}\_{[0:n']}, \mathbf{G}^{+}\_{[0:n']} \rangle}\\\\
292+
+ & \quad {\langle u \cdot \big( x \cdot \mathbf{y}^{-n^{+}}\_{[n':n]} \circ \mathbf{w}\_R'' - a \cdot \mathbf{s}\_{[n':n]} \big), \mathbf{G}^{+}\_{[n':n]} \rangle}\\\\
293+
+ & \quad {\langle -u \cdot a \cdot \mathbf{s}\_{[n:n^{+}]}, \mathbf{G}^{+}\_{[n:n^{+}]} \rangle}\\\\
294+
+ & \quad {\langle -\mathbf{1} + \mathbf{y}^{-n^{+}}\_{[0:n']} \circ (x \mathbf{w}\_L' + \mathbf{w}\_O' - b /\mathbf{s}\_{[0:n']} ), \mathbf{H}^{+}\_{[0:n']} \rangle}\\\\
295+
+ & \quad {\langle u \cdot \big(-\mathbf{1} + \mathbf{y}^{-n^{+}}\_{[n':n]} \circ (x \mathbf{w}\_L'' + \mathbf{w}\_O'' - b /\mathbf{s}\_{[n':n]} ) \big), \mathbf{H}^{+}\_{[n':n]} \rangle}\\\\
296+
+ & \quad {\langle u \cdot \big(-\mathbf{1} + \mathbf{y}^{-n^{+}}\_{[n:n^{+}]} \circ ( -b /\mathbf{s}\_{[n:n^{+}]} ) \big), \mathbf{H}^{+}\_{[n:n^{+}]} \rangle}\\\\
251297
+ & \quad {\langle [u_{1}^2, \dots, u_{k}^2 ], [L_1, \dots, L_{k}] \rangle}\\\\
252298
+ & \quad {\langle [u_{1}^{-2}, \dots, u_{k}^{-2} ], [R_1, \dots, R_{k}] \rangle}
253299
\end{aligned}

0 commit comments

Comments
 (0)