constant one 0x0000000000000000000000000000000000000000000000000000000000000001 contract tutorial_contract param w param a param b private m set m a mul m b # ab = m lc0_add a lc1_add b lc2_add m enforce # v = wab ... public v set v w mul v a mul v b # v = wab + a + b ... add v a add v b # v = wab + a + b - v' # v' = w(a + b) local vprime set vprime a add vprime b mul vprime w sub v vprime # w(m - a - b) = v - a - b lc0_add w lc1_add m lc1_sub a lc1_sub b lc2_add v lc2_sub a lc2_sub b enforce # Binary check that w^2 = w lc0_add w lc1_add w lc2_add w enforce end