Update Caulk notes with minimal Caulk+ overview. Add initial notes on FRI & Nova.master
@ -0,0 +1,186 @@ |
|||||
|
\documentclass{article} |
||||
|
\usepackage[utf8]{inputenc} |
||||
|
\usepackage{amsfonts} |
||||
|
\usepackage{amsthm} |
||||
|
\usepackage{amsmath} |
||||
|
\usepackage{mathtools} |
||||
|
\usepackage{enumerate} |
||||
|
\usepackage{hyperref} |
||||
|
\usepackage{xcolor} |
||||
|
|
||||
|
% prevent warnings of underfull \hbox: |
||||
|
\usepackage{etoolbox} |
||||
|
\apptocmd{\sloppy}{\hbadness 4000\relax}{}{} |
||||
|
|
||||
|
\theoremstyle{definition} |
||||
|
\newtheorem{definition}{Def}[section] |
||||
|
\newtheorem{theorem}[definition]{Thm} |
||||
|
|
||||
|
% custom lemma environment to set custom numbers |
||||
|
\newtheorem{innerlemma}{Lemma} |
||||
|
\newenvironment{lemma}[1] |
||||
|
{\renewcommand\theinnerlemma{#1}\innerlemma} |
||||
|
{\endinnerlemma} |
||||
|
|
||||
|
|
||||
|
\title{Notes on FRI} |
||||
|
\author{arnaucube} |
||||
|
\date{February 2023} |
||||
|
|
||||
|
\begin{document} |
||||
|
|
||||
|
\maketitle |
||||
|
|
||||
|
\begin{abstract} |
||||
|
Notes taken from \href{https://sites.google.com/site/vincenzoiovinoit/}{Vincenzo Iovino} explainations and while reading about FRI \cite{fri}, \cite{cryptoeprint:2022/1216}. |
||||
|
|
||||
|
Usually while reading papers I take handwritten notes, this document contains some of them re-written to $LaTeX$. |
||||
|
|
||||
|
The notes are not complete, don't include all the steps neither all the proofs. |
||||
|
\end{abstract} |
||||
|
|
||||
|
\tableofcontents |
||||
|
|
||||
|
\section{Preliminaries} |
||||
|
\subsection{Low degree testing} |
||||
|
V wants to ensure that $deg(f(x)) \leq d$. |
||||
|
|
||||
|
We are in the IOP setting, V asks on a point, P sends back the opening at that point. |
||||
|
|
||||
|
TODO |
||||
|
|
||||
|
\subsubsection{General degree d test} |
||||
|
|
||||
|
Query at points $\{ x_i \}_0^{d+1},~z$ (with rand $z \overset{R}{\in} \mathbb{F}$). |
||||
|
Interpolate $p(x)$ at $\{f(x_i)\}_0^{d+1}$ to reconstruct the unique polynomial $p$ of degree $d$ such that $p(x_i)=f(x_i)~\forall i=1, \ldots, d+1$. |
||||
|
|
||||
|
V checks $p(z)=f(z)$, if the check passes, then V is convinced with high probability. |
||||
|
|
||||
|
This needs $d+2$ queries, is linear, $\mathcal{O}(n)$. With FRI we will have the test in $\mathcal{O}(\log{}d)$. |
||||
|
|
||||
|
\section{FRI protocol} |
||||
|
Allows to test if a function $f$ is a poly of degree $\leq d$ in $\mathcal{O}(\log{}d)$. |
||||
|
|
||||
|
Note: "P \emph{sends} $f(x)$ to V", "\emph{sends}", in the ideal IOP model means that all the table of $f(x)$ is sent, in practice is sent a commitment to $f(x)$. |
||||
|
|
||||
|
\subsection{Intuition} |
||||
|
V wants to check that two functions $g,~h$ are both polynomials of degree $\leq d$. |
||||
|
|
||||
|
Consider the following protocol: |
||||
|
|
||||
|
\begin{enumerate} |
||||
|
\item V sends $\alpha \in \mathbb{F}$ to P. P sends $f(x) = g(x) + \alpha h(x)$ to V. |
||||
|
\item P sends $f(x)=g(x) + \alpha h(x)$ to V. |
||||
|
\item V queries $f(r), ~g(r), ~h(r)$ for rand $r \in \mathbb{F}$. |
||||
|
\item V checks $f(r)=g(r) + \alpha h(r)$. (Schwartz-Zippel lema). |
||||
|
If holds, V can be certain that $f(x)=g(x)+ \alpha h(x)$. |
||||
|
\item P proves that $deg(f) \leq d$. |
||||
|
\item If V is convinced that $deg(f) \leq d$, V belives that both $g, h$ have $deg \leq d$. |
||||
|
\end{enumerate} |
||||
|
|
||||
|
%/// TODO tabulate this next lines |
||||
|
With high probablility, $\alpha$ will not cancel the coeffs with $deg \geq d+1$. % TODO check which is the name of this theorem or why this is true |
||||
|
|
||||
|
Let $g(x)=a \cdot x^{d+1}, ~~ h(x)=b \cdot x^{d+1}$, and set $f(x) = g(x) + \alpha h(x)$. |
||||
|
Imagine that P can chose $\alpha$ such that $a x^{d+1} + \alpha \cdot b x^{d+1} = 0$, then, in $f(x)$ the coefficients of degree $d+1$ would cancel. |
||||
|
%/// |
||||
|
|
||||
|
\quad |
||||
|
|
||||
|
Here, P proves $g,~h$ both have $deg \leq d$, but instead of doing $2 \cdot (d+2)$ queries ($d+2$ for $g$, and $d+2$ for $h$), it is done in $d+2$ queries (for $f$). |
||||
|
So we halved the number of queries. |
||||
|
|
||||
|
|
||||
|
\subsection{FRI} |
||||
|
Both P and V have oracle access to function $f$. |
||||
|
|
||||
|
V wants to test if $f$ is polynomial with $deg(f) \leq d$. |
||||
|
|
||||
|
Let $f_0(x)=f(x)$. |
||||
|
|
||||
|
Each polynomial $f(x)$ of degree that is a power of $2$, can be written as |
||||
|
$$f(x) = f^L(x^2) + x f^R(x^2)$$ |
||||
|
for some polynomials $f^L,~f^R$ of degree $\frac{deg(f)}{2}$, each one containing the even and odd degree coefficients as follows: |
||||
|
|
||||
|
% $f^L(x)$ is built from the even degree coefficients divided by $x$, and $f^R(x)$ from the odd degree coefficients divided by $x$. |
||||
|
|
||||
|
$$f^L(x)= \sum_0^{\frac{d+1}{2}-1} c_{2i} x^i ,~~ f^R(x)= \sum_0^{\frac{d+1}{2}-1} c_{2i+1} x^i$$ |
||||
|
|
||||
|
eg. for $f(x)=x^4+x^3+x^2+x+1$, |
||||
|
\begin{align*} |
||||
|
\begin{rcases} |
||||
|
f^L(x)=x^2+x+1\\ |
||||
|
f^R(x)=x+1 |
||||
|
\end{rcases} |
||||
|
~f(x) = f^L(x^2) &+ x \cdot f^R(x^2)\\ |
||||
|
= (x^2)^2 + (x^2) + 1 &+ x \cdot ((x^2) + 1)\\ |
||||
|
= x^4 + x^2 + 1 &+ x^3 + x |
||||
|
\end{align*} |
||||
|
|
||||
|
\begin{enumerate} |
||||
|
\item V sends to P some $\alpha_0 \in \mathbb{F}$. |
||||
|
Let |
||||
|
\begin{equation}\tag{$A_0$} |
||||
|
f_0(x) = f_0^L(x^2) + x f_0^R(x^2) |
||||
|
\end{equation} |
||||
|
\item P sends |
||||
|
\begin{equation}\tag{$B_0$} |
||||
|
f_1(x) = f_0^L(x) + \alpha_0 f_0^R(x) |
||||
|
\end{equation} |
||||
|
to V. |
||||
|
|
||||
|
(remember that "sends" in IOP model is that P commits to it) |
||||
|
\item V sends to P some $\alpha_1 \in \mathbb{F}$. |
||||
|
Let |
||||
|
\begin{equation}\tag{$A_1$} |
||||
|
f_1(x) = f_1^L(x^2) + x f_1^R(x^2) |
||||
|
\end{equation} |
||||
|
\item P sends |
||||
|
\begin{equation}\tag{$B_1$} |
||||
|
f_2(x) = f_1^L(x) + \alpha_1 f_1^R(x) |
||||
|
\end{equation} |
||||
|
to V. |
||||
|
\item Keep repeating the process, eg. let |
||||
|
\begin{equation}\tag{$A_2$} |
||||
|
f_2(x) = f_2^L(x^2) + x f_2^R(x^2) |
||||
|
\end{equation} |
||||
|
until $f_i^L,~ f_i^R$ are constant (degree 0 polynomials). |
||||
|
\item Once $f_i^L,~ f_i^R$ are constant, P sends them to V. |
||||
|
\end{enumerate} |
||||
|
|
||||
|
Notice that at each step, $deg(f_i)$ halves. |
||||
|
|
||||
|
\paragraph{Query phase} |
||||
|
|
||||
|
\begin{enumerate} |
||||
|
\item V sends rand $z \in \mathbb{F}$ to P |
||||
|
\item P sends $\{ f_i(z^{2^i}), f_i(- z^{2^i}) \}$ to V.\\ |
||||
|
{\scriptsize eg. $f_0(z),~ f_0(-z),~ f_1(z^2),~ f_1(-z^2),~ f_2(z^4),~ f_2(-z^4),~ f_3(z^8),~ f_3(-z^8),~ \ldots$} |
||||
|
\item V checks $f_i(a)=f_i^L(a^2) + a f_i^R(a^2)$ for $a=\{z, -z\}$ |
||||
|
$$ |
||||
|
\begin{pmatrix} |
||||
|
1 & z\\ |
||||
|
1 & -z |
||||
|
\end{pmatrix} |
||||
|
\begin{pmatrix} |
||||
|
f_i^L(z^2)\\ |
||||
|
f_i^R(z^2) |
||||
|
\end{pmatrix} |
||||
|
= |
||||
|
\begin{pmatrix} |
||||
|
f_i(z)\\ |
||||
|
f_i(-z) |
||||
|
\end{pmatrix} |
||||
|
$$ |
||||
|
\end{enumerate} |
||||
|
|
||||
|
The number of queries needed is $2 \cdot log(d)$. |
||||
|
|
||||
|
\section{FRI as polynomial commitment} |
||||
|
\emph{[WIP. Unfinished document]} |
||||
|
|
||||
|
|
||||
|
\bibliography{paper-notes.bib} |
||||
|
\bibliographystyle{unsrt} |
||||
|
|
||||
|
\end{document} |
@ -0,0 +1,146 @@ |
|||||
|
\documentclass{article} |
||||
|
\usepackage[utf8]{inputenc} |
||||
|
\usepackage{amsfonts} |
||||
|
\usepackage{amsthm} |
||||
|
\usepackage{amsmath} |
||||
|
\usepackage{mathtools} |
||||
|
\usepackage{enumerate} |
||||
|
\usepackage{hyperref} |
||||
|
\usepackage{xcolor} |
||||
|
|
||||
|
% prevent warnings of underfull \hbox: |
||||
|
\usepackage{etoolbox} |
||||
|
\apptocmd{\sloppy}{\hbadness 4000\relax}{}{} |
||||
|
|
||||
|
\theoremstyle{definition} |
||||
|
\newtheorem{definition}{Def}[section] |
||||
|
\newtheorem{theorem}[definition]{Thm} |
||||
|
|
||||
|
% custom lemma environment to set custom numbers |
||||
|
\newtheorem{innerlemma}{Lemma} |
||||
|
\newenvironment{lemma}[1] |
||||
|
{\renewcommand\theinnerlemma{#1}\innerlemma} |
||||
|
{\endinnerlemma} |
||||
|
|
||||
|
|
||||
|
\title{Notes on Nova} |
||||
|
\author{arnaucube} |
||||
|
\date{February 2023} |
||||
|
|
||||
|
\begin{document} |
||||
|
|
||||
|
\maketitle |
||||
|
|
||||
|
\begin{abstract} |
||||
|
Notes taken while reading Nova \cite{cryptoeprint:2021/370} paper. |
||||
|
|
||||
|
Usually while reading papers I take handwritten notes, this document contains some of them re-written to $LaTeX$. |
||||
|
|
||||
|
The notes are not complete, don't include all the steps neither all the proofs. |
||||
|
\end{abstract} |
||||
|
|
||||
|
\tableofcontents |
||||
|
|
||||
|
\section{Folding Scheme for Committed Relaxed R1CS} |
||||
|
|
||||
|
\subsection{R1CS modification} |
||||
|
|
||||
|
Want: merge 2 instances of R1CS with the same matrices into a single one. Each instance has $z_i = (W_i,~ x_i)$ (public witness, private values resp.). |
||||
|
|
||||
|
\paragraph{traditional R1CS} |
||||
|
Merged instance with $z=z_1 + r z_2$, for rand $r$. But, since R1CS is not linear $\longrightarrow$ can not apply. |
||||
|
|
||||
|
eg. |
||||
|
\begin{align*} |
||||
|
Az \circ Bz &= A(z_1 + r z_2) \circ B (z_1 + r z_2)\\ |
||||
|
&= A z_1 \circ B z_1 + r(A z_1 \circ B z_2 + A z_2 \circ B z_1) + r^2 (A z_2 \circ B z_2)\\ |
||||
|
&\neq Cz |
||||
|
\end{align*} |
||||
|
|
||||
|
$\longrightarrow$ introduce error vector $E \in \mathbb{F}^m$, which absorbs the cross-temrs generated by folding. |
||||
|
|
||||
|
$\longrightarrow$ introduce scalar $u$, which absorbs an extra factor of $r$ in $C z_1 + r^2 C z_2$ and in $z=(W, x, 1+r\cdot 1)$. |
||||
|
|
||||
|
\paragraph{Relaxed R1CS} |
||||
|
\begin{align*} |
||||
|
&u=u_1+r u_2\\ |
||||
|
&E=E_1 + r (A z_1 \circ B z_2 + A z_2 \circ B z_1 - u_1 C z_2 - u_2 C z_1) + r^2 E_2\\ |
||||
|
&Az \circ Bz = uCz + E,~~ with~ z=(W,~x,~u) |
||||
|
\end{align*} |
||||
|
where R1CS set $E=0,~u=1$. |
||||
|
|
||||
|
\begin{align*} |
||||
|
Az \circ Bz &= A z_1 \circ B z_1 + r(A z_1 \circ B z_2 + A z_2 \circ B z_1) + r^2 (A z_2 \circ B z_2)\\ |
||||
|
&= (u_1 C z_1 + E_1) + r (A z_1 \circ B z_2 + A z_2 \circ B z_1) + r^2 (u_2 C z_2 + E_2)\\ |
||||
|
&= u_1 C z_1 + \underbrace{E_1 + r(A z_1 \circ B z_2 + A z_2 \circ B z_1) + r^2 E_2}_\text{E} + r^1 u_2 C z_2\\ |
||||
|
&= u_1 C z_1 + r^2 u_2 C z_2 + E\\ |
||||
|
&= (u_1 + r u_2) \cdot C \cdot (z_1 + r z_2) + E\\ |
||||
|
&= uCz + E |
||||
|
\end{align*} |
||||
|
|
||||
|
For R1CS matrices $(A,~B,~C)$, the folded witness $W$ is a satisfying witness for the folded instance $(E,~u,~x)$. |
||||
|
|
||||
|
|
||||
|
|
||||
|
\vspace{20px} |
||||
|
Problem: not non-trivial, and not zero-knowledge. Solution: use polynomial commitment with hiding, binding, succintness and additively homomorphic properties. |
||||
|
|
||||
|
\paragraph{Committed Relaxed R1CS} |
||||
|
Instance for a Committed Relaxed R1CS\\ |
||||
|
$(\overline{E}, u, \overline{W}, x)$, satisfyied by a witness $(E, r_E, W, r_W)$ such that |
||||
|
\begin{align*} |
||||
|
&\overline{E} = Com(E, r_E)\\ |
||||
|
&\overline{W} = Com(E, r_W)\\ |
||||
|
&Az \circ Bz = uCz+E,~~ where~z=(W, x, u) |
||||
|
\end{align*} |
||||
|
|
||||
|
|
||||
|
\subsection{Folding protocol} |
||||
|
|
||||
|
V and P take two \emph{committed relaxed R1CS} instances |
||||
|
\begin{align*} |
||||
|
\varphi_1&=(\overline{E}_1, u_1, \overline{W}_1, x_1)\\ |
||||
|
\varphi_2&=(\overline{E}_2, u_2, \overline{W}_2, x_2) |
||||
|
\end{align*} |
||||
|
|
||||
|
P additionally takes witnesses to both instances |
||||
|
\begin{align*} |
||||
|
(E_1, r_{E_1}, W_1, r_{W_1})\\ |
||||
|
(E_2, r_{E_2}, W_2, r_{W_2}) |
||||
|
\end{align*} |
||||
|
|
||||
|
Let $Z_1 = (W_1, x_1, u_1)$ and $Z_2 = (W_2, x_2, u_2)$. |
||||
|
|
||||
|
% \paragraph{Protocol} |
||||
|
\begin{enumerate} |
||||
|
\item P send $\overline{T} = Com(T, r_T)$,\\ |
||||
|
where $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$\\ |
||||
|
and rand $r_T \in \mathbb{F}$ |
||||
|
\item V sample random challenge $r \in \mathbb{F}$ |
||||
|
\item V, P output the folded instance $(\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 P outputs 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} |
||||
|
|
||||
|
P uses a zkSNARK showing that knows the valid witness $(E, r_E, W, r_W)$ for the committed relaxed R1CS without revealing its value. |
||||
|
Then, vie Fiat-Shamir transform we achieve non-interactivity. |
||||
|
|
||||
|
\section{IVC proofs} |
||||
|
\textbf{WIP} |
||||
|
|
||||
|
|
||||
|
\bibliography{paper-notes.bib} |
||||
|
\bibliographystyle{unsrt} |
||||
|
|
||||
|
\end{document} |