Zero knowledge proof

Deep dive to InfoEvaluator of Stwo

The reason I write this is because I saw the verification sample ood points are related to InfoEvalator. InfoEvalator contains this mask or mask offset information which basically embedded the circuit information.

This mask points of MleEvalProverComponent

Bus in different field -1

the goal is to understand the extra cost (witness column) brought by using different field, in the bus part.

start with lookup_via_challenges_range_constraint.asm

use std::convert::fe;
use std::protocols::lookup::lookup;
use std::math::fp2::from_base;
use std::prover::challenge;

machine Main with degree: 8 {

    // Prove a correct decomposition of x into 3-bit limbs
    col fixed x = 

Spartan 4

previous posts: 1,2, and 3

Overview of spartan paper

summarize again what …

Spartan 3

following the previous posts about spartan: 1 and 2

Spartan 2 some basic terminologies

Follow my first post for Spartan

Implement Stwo challenger in Powdr 2

Implement Stwo challenger in Powdr 1

The first place the challenger is called is in stark.rs prove function:

in circuit_builder.rs in plonky3, the ConstraintSystem has a field: challenges_by_stage, can check how this field is built.

in stark.rs, the constraintSystem is initialized from a pil file