Files
darkfi/proofs/bits.psm
2020-10-08 10:05:36 +02:00

30 lines
508 B
Plaintext

contract bits_decomposition
param x
{% for i in range(256) %}
private b_{{i}}
{% endfor %}
# x is unpacked into little endian order
unpack_bits x b_0 b_255
{% for i in range(256) %}
# (1 - b) * b == 0
lc0_add_one
lc0_sub b_{{i}}
lc1_add b_{{i}}
enforce
{% endfor %}
{% for i in range(256) %}
lc0_add b_{{i}}
lc_coeff_double
{% endfor %}
lc_coeff_reset
lc0_sub x
lc1_add_one
enforce
end