The Full Protocol, Rolled Out#
This section presents the complete PIL2-STARK protocol as a single self-contained reference. All notation and parameters follow Primitives. The table references Constraint Polynomial Structure, FRI Polynomial Batching Formula, and Multi-AIR Challenge Binding.
Prover |
Verifier |
|
|---|---|---|
Round 1: Witness commitment ( |
||
Extend each \(f_j\) from \(H\) to \(H^*\) via \(\NTT\) ( |
||
\(r_1\) |
\(\longrightarrow\) |
\(r_1\) |
Seed transcript ( |
||
Round 2: Intermediate polynomials ( |
||
\((\alpha, \gamma)\) |
\(\longleftarrow\) |
\(\alpha \leftarrow \T.\sq(),\; \gamma \leftarrow \T.\sq()\), both \(\in \Fext\). |
\(\mathrm{compress}(b, c_1, \ldots, c_w) := ((\cdots((c_w \alpha + c_{w-1})\alpha + \cdots)\alpha + b) + \gamma\) ( |
||
\(r_2\) |
\(\longrightarrow\) |
\(r_2\); \(\T.\abs(r_2)\) |
Round Q: Quotient polynomial ( |
||
\(v_c\) |
\(\longleftarrow\) |
\(v_c \leftarrow \T.\sq()\), \(v_c \in \Fext\) |
\(C(x) := v_c^{J-1} C_0(x) + v_c^{J-2} C_1(x) + \cdots + C_{J-1}(x)\) (Constraint Polynomial Structure, |
||
\(r_Q\) |
\(\longrightarrow\) |
\(r_Q\); \(\T.\abs(r_Q)\) |
Evaluation stage ( |
||
\(\xi\) |
\(\longleftarrow\) |
\(\xi \leftarrow \T.\sq()\), \(\xi \in \Fext\) |
\(e_{p,o} := p(\xi \cdot \omega^o) \in \Fext\) for each polynomial \(p\), offset \(o \in \mathcal{O}\) ( |
||
\(\{e_{p,o}\}\) |
\(\longrightarrow\) |
\(\{e_{p,o}\}\); \(\T.\abs\bigl(\LinHash(\{e_{p,o}\})\bigr)\) |
FRI polynomial ( |
||
\((v_1, v_2)\) |
\(\longleftarrow\) |
\(v_1, v_2 \leftarrow \T.\sq()\), both \(\in \Fext\) |
\(\mathcal{G} := \{g_0, g_1, \ldots\}\) grouped by opening offset ( |
||
FRI commitment rounds ( |
||
Set \(F_0 = F\), \(b_0 = \log_2 N_{\mathrm{ext}}\). |
||
Commit: \(r_0^{\mathrm{FRI}} = \MT(F_0)\), tree height \(2^{b_1}\), leaf width \(2^{b_0 - b_1} \cdot 3\). |
\(\longrightarrow\) |
\(r_0^{\mathrm{FRI}}\); \(\T.\abs(r_0^{\mathrm{FRI}})\) |
\(\beta_0\) |
\(\longleftarrow\) |
\(\beta_0 \leftarrow \T.\sq()\), \(\beta_0 \in \Fext\) |
\(\Fold\) ( |
||
\(\vdots\) |
\(\vdots\) |
|
Commit: \(r_{K-1}^{\mathrm{FRI}} = \MT(F_{K-1})\), tree height \(2^{b_K}\), leaf width \(2^{b_{K-1} - b_K} \cdot 3\). |
\(\longrightarrow\) |
\(r_{K-1}^{\mathrm{FRI}}\); \(\T.\abs(r_{K-1}^{\mathrm{FRI}})\) |
\(\beta_{K-1}\) |
\(\longleftarrow\) |
\(\beta_{K-1} \leftarrow \T.\sq()\) |
\(\Fold\):
|
||
\(F_K\) |
\(\longrightarrow\) |
\(F_K\); \(\T.\abs\bigl(\LinHash(F_K)\bigr)\) |
Grinding ( |
||
\(\chi_{\mathrm{grind}}\) |
\(\longleftarrow\) |
\(\chi_{\mathrm{grind}} \leftarrow \T.\sq()\) |
Find \(\eta\): \(\Poseidon(\chi_{\mathrm{grind}} \| \eta)\) has \(b_{\mathrm{pow}}\) leading zeros. |
||
\(\eta\) |
\(\longrightarrow\) |
\(\eta\).
|
Constraint check ( |
||
\(C(\xi) := v_c^{J-1} C_0(\xi) + \cdots + C_{J-1}(\xi)\) from \(\{e_{p,o}\}\) (Constraint Polynomial Structure, |
||
Degree check ( |
||
\(\hat{F}_K := \INTT(F_K)\) ( |
||
Query phase ( |
||
Both sides derive query indices |
\(=\) |
\(\T'.\abs(\chi_{\mathrm{grind}}, \eta)\) ( |
Merkle opening proof at \(q_i\) for each tree ( |
\(\longrightarrow\) |
\(\{\text{Merkle proofs}\}\) |
Per-query checks ( |
||
For each query \(q\):
|
||
FRI polynomial consistency ( |
||
FRI fold verification ( |
||
Accept iff all checks pass. |
Proof output. \(\pi = \bigl(r_1, r_2, r_Q, \{e_{p,o}\}, \eta, \{r_k^{\mathrm{FRI}}\}_{k=0}^{K-1}, F_K, \{\text{Merkle proofs}\}\bigr)\), plus \(\chi\) (the global challenge used to seed the transcript, needed for verifier replay).
Communication: \(3 + K\) Merkle roots (\(\in \F^4\) each), \(|\{e_{p,o}\}|\) extension-field evaluations, \(F_K \in \Fext^{2^{b_K}}\), nonce \(\eta\), and Merkle paths for each query.