Step1. Build trace (fib2-example)

STARK - 深度解析

標紅部分為Public info

STARK - 深度解析

Step2. Prover for Trace

協議參數選取:

STARK - 深度解析

1.AIR 實例化

STARK - 深度解析

2.驗證AIR和Trace的一致性(Debug模式)

2.1 校驗基礎參數

STARK - 深度解析

2.2 校驗assertion有效(boundary cs)

STARK - 深度解析

2.3 校驗Trace滿足transition cs(Debug module)

STARK - 深度解析

Transcript

STARK - 深度解析

3.Commit for trace

域參數選取:

STARK - 深度解析

3.1 Interpolate -> LDE -> evaluate over LDE-domain

STARK - 深度解析

3.2 Commitment

STARK - 深度解析

Tracescript

STARK - 深度解析

4.Evaluate CS

4.1 獲取線性組合係數

STARK - 深度解析

係數個數和約束的個數一致

在本例中(fib2-example),transition cs 2 個;boundary cs 3個

4.2 為t-cs和b-cs構建evaluator

4.2.1 t-cs

STARK - 深度解析

4.2.2 b-cs

STARK - 深度解析

4.3 Evaluate t/s-cs over ce_domain

4.3.1 定義evaluator table

STARK - 深度解析

5 Commitment to Evaluate CS

5.1 建立constraints composition polynomial

STARK - 深度解析

5.2 commitment to composition poly

Example:

Compose_poly = a * x^3 + b * x^2 + c * x + d = (a * x^2 + c) * x^ + (b * x^2 + d)

(a * x^2 + c), (b *x^2 +d) 分別對應兩個column

STARK - 深度解析

6.建立DEEP composition多項式

The general formal: f(x) = q(x)* t(x)

Need check at random z

1. f(z) = q(z) * t(z)

2. f(x),q(x),t(x) indeed equal respectively f(z), q(z), t(z)

3. calculate Deep_composition = (q(x) - q(z)) / (x - z)

4. Check LDT for q_q(x)

6.1 select z which out of domain(ood)

draw an out-of-domain point z. Depending on the type of E, the point is drawn either from the base field or from an extension field defined by E.

The purpose of sampling from the extension field here (instead of the base field) is to increase security.

6.2 evaluate trace and constraint polynomials at the OOD point z

6.2.1 trace_poly at z & z * g

STARK - 深度解析

STARK - 深度解析

6.2.2 composition poly at z

STARK - 深度解析

6.3 建立Deep compositon polynomial

6.3.1 產生隨機數

STARK - 深度解析

6.3.2 cal quotient poly

STARK - 深度解析

6.4 evaluate Deep over LDE

STARK - 深度解析

7.計算Deep 的FRI Layer num

STARK - 深度解析

STARK - 深度解析

8.確定query位置

從lde_domain中選取多個query的位置。

STARK - 深度解析

9.構建proof對象

9.1 生成FRI proof

STARK - 深度解析

STARK - 深度解析

9.2 query trace poly at above positions

和上述類似

STARK - 深度解析

9.3 query constraint poly at above positions

和上述類似

STARK - 深度解析

9.4 構建STARK PROOF

STARK - 深度解析

Step3. Verify for proof

從 transcript中讀取pub-info,用來獲取相關的數據,以執行驗證過程。

1. Ood consistency check

驗證章節5.2描述的數學關係的一致性。

STARK - 深度解析

2. 實例化FRI-verifier對象

STARK - 深度解析

3.計算Deep poly on query positions

計算方式和章節6.4相同

4.執行FRI VERIFY過程

STARK - 深度解析

STARK - 深度解析

關於我們

Sin7Y成立於2021年,由頂尖的區塊鏈開發者和密碼學工程師組成。我們既是項目孵化器也是區塊鏈技術研究團隊,探索EVM、Layer2、跨鏈、隱私計算、自主支付解決方案等最重要和最前沿的技術。

微信公眾號:Sin7Y

GitHub:Sin7Y

Twitter:@Sin7Y_Labs

Medium:Sin7Y

Mirror:Sin7Y

HackMD:Sin7Y

HackerNoon:Sin7Y

Email:contact@sin7y.org