Files
darkfi/proofs/tutorial.psm

53 lines
737 B
Plaintext

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