@ -52,7 +52,7 @@
\title { Notes on Nova}
\title { Notes on Nova}
\author { arnaucube}
\author { arnaucube}
\date { February 2023}
\date { March 2023}
\begin { document}
\begin { document}
@ -199,6 +199,38 @@ The previous protocol achieves non-interactivity via Fiat-Shamir transform, obta
Note: the paper later uses $ \mathsf { u } _ i,~ \mathsf { U } _ i $ for the two inputed $ \varphi _ 1 ,~ \varphi _ 2 $ , and later $ \mathsf { u } _ { i + 1 } $ for the outputed $ \varphi $ . Also, the paper later uses $ \mathsf { w } ,~ \mathsf { W } $ to refer to the witnesses of two folded instances (eg. $ \mathsf { w } = ( E, r _ E, W, r _ W ) $ ).
Note: the paper later uses $ \mathsf { u } _ i,~ \mathsf { U } _ i $ for the two inputed $ \varphi _ 1 ,~ \varphi _ 2 $ , and later $ \mathsf { u } _ { i + 1 } $ for the outputed $ \varphi $ . Also, the paper later uses $ \mathsf { w } ,~ \mathsf { W } $ to refer to the witnesses of two folded instances (eg. $ \mathsf { w } = ( E, r _ E, W, r _ W ) $ ).
\subsection { NIFS}
\underline { fold witness, $ ( pk, ( u _ 1 , w _ 1 ) , ( u _ 2 , w _ 2 ) ) $ } :
\begin { enumerate}
\item $ T = A z _ 1 \circ B z _ 1 + A z _ 2 \circ B z _ 2 - u _ 1 C z _ 2 - u _ 2 C z _ 2 $
\item $ \overline { T } = Commit ( T, r _ T ) $
% \item output the folded instance $ \varphi = ( \overline { E } , u, \overline { W } , x ) $
% \begin { align*}
% & \overline { E} =\overline { E} _ 1 + r \overline { T} + r^ 2 \overline { E} _ 2\\
% & u = u_ 1 + r u_ 2\\
% & \overline { W} = \overline { W} _ 1 + r \overline { W} _ 2\\
% & x = x_ 1 + r x_ 2
% \end { align*}
\item output the folded witness $ ( E, r _ E, W, r _ W ) $
\begin { align*}
& E = E_ 1 + r T + r^ 2 E_ 2\\
& r_ E = r_ { E_ 1} + r \cdot r_ T + r^ 2 r_ { E_ 2} \\
& W=W_ 1 + r W_ 2\\
& r_ W = r_ { W_ 1} + r \cdot r_ { W_ 2}
\end { align*}
\end { enumerate}
\underline { fold instances $ ( \varphi _ 1 , \varphi _ 2 ) \rightarrow \varphi $ , $ ( vk, u _ 1 , u _ 2 , \overline { E } _ 1 , \overline { E } _ 2 , \overline { W } _ 1 , \overline { W } _ 2 , \overline { T } ) $ } :\\
V compute folded instance $ \varphi = ( \overline { E } , u, \overline { W } , x ) $
\begin { align*}
& \overline { E} =\overline { E} _ 1 + r \overline { T} + r^ 2 \overline { E} _ 2\\
& u = u_ 1 + r u_ 2\\
& \overline { W} = \overline { W} _ 1 + r \overline { W} _ 2\\
& x = x_ 1 + r x_ 2
\end { align*}
\section { Nova}
\section { Nova}
IVC (Incremental Verifiable Computation) scheme for a non-interactive folding scheme.
IVC (Incremental Verifiable Computation) scheme for a non-interactive folding scheme.
@ -236,7 +268,7 @@ $F'$ proves that:
$ F' $ is described as follows:\\
$ F' $ is described as follows:\\
$ F' ( vk, \mathsf { U } _ i, \mathsf { u } _ i, ( i, z _ 0 , z _ i ) , w _ i, \overline { T } ) \rightarrow x $ :\\
\underline { $ F' ( vk, \mathsf { U } _ i, \mathsf { u } _ i, ( i, z _ 0 , z _ i ) , w _ i, \overline { T } ) \rightarrow x $ } :\\
if $ i = 0 $ , output $ H ( vk, 1 , z _ 0 , F ( z _ 0 , w _ i ) , \mathsf { u } _ { \bot } ) $ \\
if $ i = 0 $ , output $ H ( vk, 1 , z _ 0 , F ( z _ 0 , w _ i ) , \mathsf { u } _ { \bot } ) $ \\
otherwise
otherwise
\begin { enumerate}
\begin { enumerate}
@ -273,7 +305,27 @@ otherwise, parse $\pi_i = ( (\mathsf{U}_i, \mathsf{W}_i), (\mathsf{u}_i, \mathsf
\item check that $ \mathsf { W } _ i,~ \mathsf { w } _ i $ are satisfying witnesses to $ \mathsf { U } _ i,~ \mathsf { u } _ i $ respectively
\item check that $ \mathsf { W } _ i,~ \mathsf { w } _ i $ are satisfying witnesses to $ \mathsf { U } _ i,~ \mathsf { u } _ i $ respectively
\end { enumerate}
\end { enumerate}
\paragraph { A zkSNARK of a Valid IVC Proof}
\vspace { 0.5cm}
\paragraph { A zkSNARK of a Valid IVC Proof} prover and verifier:\\
\underline { $ P ( pk, ( i, z _ 0 , z _ i ) , \Pi ) \rightarrow \pi $ } :\\
if $ i = 0 $ , output $ \perp $ , otherwise:\\
parse $ \Pi $ as $ ( ( \mathsf { U } , \mathsf { W } ) , ( \mathsf { u } , \mathsf { w } ) ) $
\begin { enumerate}
\item compute $ ( \mathsf { U } ', \mathsf { W } ', \overline { T } ) \leftarrow NIFS.P ( pk _ { NIFS } , ( \mathsf { U,~W } ) , ( \mathsf { u,~w } ) ) $
\item compute $ \pi _ { \mathsf { u } ' } \leftarrow zkSNARK.P ( pk _ { zkSNARK } , \mathsf { U } ', \mathsf { W } ' ) $
\item output $ ( \mathsf { U,~ u } , \overline { T } , \pi _ { \mathsf { u } ' } ) $
\end { enumerate}
\underline { $ V ( vk, ( i, z _ 0 , z _ i ) , \pi ) \rightarrow \{ 0 , 1 \} $ } :\\
if $ i = 0 $ : check that $ z _ i = z _ 0 $ \\
parse $ \pi $ as $ ( \mathsf { U } , \mathsf { u } , \overline { T } , \pi _ { \mathsf { u } ' } ) $
\begin { enumerate}
\item check $ \mathsf { u } .x = H ( vk _ { NIFS } , i, z _ 0 , z _ i, \mathsf { U } ) $
\item check $ ( \mathsf { u } . { \overline { E } } , \mathsf { u } .u ) = ( \mathsf { u } _ { \perp } . { \overline { E } } , 1 ) $
\item compute $ \mathsf { U } ' \leftarrow NIFS.V ( vk _ { NIFS } , \mathsf { U } , \mathsf { u } , \overline { T } ) $
\item check $ zkSNARK.V ( vk _ { zkSNARK } , \mathsf { U } ', \pi _ { \mathsf { u } ' } ) = 1 $
\end { enumerate}
\bibliography { paper-notes.bib}
\bibliography { paper-notes.bib}