以前的记录,同步过来。
Decentralized Thoughts - Decentralized thoughts about decentralization
- 区块链 密码学相关的知识
密码学
What is a cryptographic hash function?
2020-8-28 Alin Tomescu 讨论了 ROM 和 哈希函数的应用
类比:哈希函数是 “guy in the sky”
- 输入任意长度的 $x$
- 输出固定长度、看起来是随机的 $y$
- 对同样的输入有同样的值
哈希函数是 random oracle
- 输入任意长度的 $x$
- 检查是否已经为 $x$ 产生了 256 随机比特
- 若已经存在,则返回
- 否则,随机选择 256 比特,返回,并存储下这个对应关系 $(x,y)$ ROM 的限制
- 理论上不能构建 ROM 这样的算法
- 实际上可以绕过
定义哈希函数为数学函数 $H:{0,1}^*\rightarrow {0,1}^{256}$
- collision-resistance 和鸽笼原理
- 由于输入无限,输出有限,那么必然存在两个不同的输入对应于同一个输出,这就是 collision
- ROM 下可以证明发生 collision 是不可能的
- $2^{256}$ 需要调用函数 $2^{128}$ 次
应用:
- 文件完整性校验
- PoW
- Commitment
What is a Merkle Tree
What is a Merkle Tree? 2020-12-22 Alin Tomescu 问题:
- 文件外包
- set membership
- anti-entropy:在不可靠信道上传递文件
- 将文件划分为块 -> 然后
Merkle Tree 是 collision-resistant hash function
- Merkle proof
Polynomials over a field
定理:度为 $d$ 的多项式最多 $d$ 个根(field 中)
ring 上可能有超过 d 个根
- 如:环$\mathbb{Z}_{12}$
- $2X= 4\pmod{12}$ 有 2 个根 $2,8$
- 如:环$\mathbb{Z}_{12}$
Proof
- Claim:若 $deg(P)\ge 1$ 并且 $P(a)=0$ 则存在多项式 $Q$ 使得 $P=(X-a)Q,deg(Q)<deg(P)$
证明这个 claim
- 当 $d=1$ 时:
- 由于在 field 中,则 $a=(p_0)(p_1)^{-1}$,并且 $Q=p_1$ 是一个 non-trivial degree zero 多项式,使得 $P=(X-a)Q$ 成立
- 当 $d>1$ 时:
- 定义一个新多项式 $P’=P-p_dX^{d-1}(X-a)$, $p_d$ 是 $P$ 的最大系数
- 当 $d=1$ 时:
Range proofs from Polynomial commitments
Range Proofs from Polynomial Commitments, Re-explained 2020-3-3 Alin Tomescu
从多项式承诺中构造 ZK range proof Statement:prover 有 $z\in\mathbb{Z}_p$ ,verifier 有 $z$ 的承诺,prover 要证明 $0\le z\le 2^n$
- 使用 KZG 来实例化
prover 做的事情
- 承诺两个度为 $n+1$ 的多项式
- 证明 3 个 evaluation
首先选择一个多项式 $f$ 使得 $f(1)=z$ 然后计算对应的承诺 $PC(f)$ $z$ 的二进制分解:$z=\sum_{i=0}^{n-1} 2^i\cdot z_i$ 为 $z_0,\dots,z_{n-1}$
- P 将 $z$ 编码为度为 $n-1$ 的多项式 $g$
- $g(\omega^{n-1})=z_{n-1}$
- $g(\omega^{i})=2g_{\omega^{i+1}}+z_i,\forall i=n-2,\dots,0$
- $g(1)=z$
- $g$ 可以使用 FFT 计算
- 然后使用多项式承诺产生对 $g$ 的承诺 $PC(g)$
为了证明 $z$ 在 range 内,prover 需要证明 3 个条件
- $g(1)=f(1)$
- $g(\omega^{n-1})\in{0,1}$
- $g(X)-2g(X\omega)\in {0,1},\forall X\in H / {\omega^{n-1}}$
等价于
- $g(1)=z$
- $z_{n-1}$ 是二进制值
- $z_i$ 是二进制值 $i\in[0,n-1)$ 和 $z=\sum_{i=0}^{n-1}z_i$
然后证明 3 个多项式 evaluation
- $\omega_1(X)=(g-f)\cdot (\frac{X^n-1}{X-1})$
- $\omega_2(X)=g(1-g)\cdot (\frac{X^n-1}{X-\omega^{n-1}})$
- $\omega_3(X)=[g(X)-2g(X\omega)]\cdot[1-g(X)+2g(X\omega)]\cdot (X-\omega^{n-1})$
证明
- $g(1)=f(1)$ 等价于 $\omega_1(X)=(g-f)\cdot (\frac{X^n-1}{X-1})$
- $g(\omega^{n-1})\in{0,1}$ 等价于 $\omega_2(X)=g(1-g)\cdot (\frac{X^n-1}{X-\omega^{n-1}})$
- $g(X)-2g(X\omega)\in {0,1},\forall X\in H / {\omega^{n-1}}$ 等价于 $\omega_3(X)=[g(X)-2g(X\omega)]\cdot[1-g(X)+2g(X\omega)]\cdot (X-\omega^{n-1})$
[!info] 证明
- 证明
- => $\omega_1(X)$ 在 $H/w^0$ 都为 $0$,在 $\omega^0$ 上时,因为 $g(1)=f(1)$ 使得 $\omega^0$ ,因此 $H$ 上的 $\omega_1(X)=0$
- <= 因为 $H$ 上 $\omega_1(X)=0$ ,因为在 $H/\omega^0$ 上已经为 0 ,所以只有当 $g(1)=f(1)$
然后使用 random linear combination:$\tau\in\mathbb{F}_p$ \(R(X)=\omega_1(X)+\tau\omega_2(X)+\tau^2\omega_3(X)=0,\forall X\in H\)
然后 Prover 将 $R(X)$ 除以 $X^n-1$ 产生商多项式 $q(X)$ Prover 证明 $\omega(X)=R(X)-q(X)\cdot (X^n-1)=0$
- 等价于 $R(X)=0,\forall X\in H$