{\small\circ} \
P_{\textsf{acc}}
\stackrel{?}{=}
a \textcolor{darkgreen}{G_{\textsf{last}}} +
b \textcolor{sienna}{H_{\textsf{last}}} +
\langle a, b \rangle \textcolor{gray}{Q}
After \(\lceil \text{log}_2(N) \rceil\) rounds, final verification check:
IPA Efficient Verifier
Verifier needs \(\textcolor{gray}{\textsf{MSM:}} \ 2\lceil \text{log}_2(N) \rceil+1\) to compute \(P_{\textsf{acc}}\)
Note that \(\textcolor{darkgreen}{G_{\textsf{last}}}\) and \(\textcolor{sienna}{H_{\textsf{last}}}\) only depend on \(\textcolor{darkgreen}{\vec{G}}, \textcolor{sienna}{\vec{H}}\) and challenges
a \textcolor{darkgreen}{G_{\textsf{last}}} +
b \textcolor{sienna}{H_{\textsf{last}}} +
\langle a, b \rangle \textcolor{gray}{Q}
\stackrel{?}{=}
P_{\textsf{acc}}
After \(\lceil \text{log}_2(N) \rceil\) rounds, final verification check:
Here, we just need one generator vector \(\textcolor{darkgreen}{\vec{G}}\) (read: smaller overall MSM)
With the Inner-product argument, we can derive a PCS:
Halo2 Recursion
\begin{aligned}
a \textcolor{red}{G_{\textsf{last}}} + a\textcolor{red}{b}\textcolor{gray}{Q}
\stackrel{?}{=}
P + v\textcolor{gray}{Q} \sum_{j \in \lceil \text{log}(d) \rceil} (\textcolor{gray}{x_j^2} L_j + \textcolor{gray}{x_j^{-2}}R_j)
\end{aligned}
RHS is \(\mathcal{O}(\text{log}(d))\) but LHS is still \(\mathcal{O}(d)\) as \(\textcolor{darkgreen}{G_{\textsf{last}}} = \langle \vec{s}, \textcolor{darkgreen}{\vec{G}} \rangle, b = \langle \vec{s}, \vec{z} \rangle\)