BulletProof的工作原理
Building on BulletProof
Range Proof
我们要证明一个 statement(论述): 0 ≤ v < 2 n 0 \le v < 2^n 0≤v<2n
我们知道如果这个论述是真的话,那么 v v v 必须是一个 n n n 长度的二进制数。例如,如果 n = 4 n=4 n=4 并且 v = 3 v=3 v=3,那么 v v v 可以被分解为一个二进制数即 4 位长度。
我们想以内积的形式展示这个声明(claim),这是由于 BulletProof 推出的高效率的内积证明(inner product proof)。
首先,让我们定义 v 的比特形式为: V b i t s V_{bits} Vbits
如果 v b i t s v_{bits} vbits 的确是 v v v 的比特形式, v v v 必须与 v b i t s v_{bits} vbits 和 向量 2 n 2^n 2n 的内积相等, 2 n 2^n 2n 向量的展开为长度为 n n n 的 ( 2 0 , 2 1 , .