Trusted Setup 包含两阶段
- 第一阶段生成所有电路共用的参数,只需要执行一次,由以太坊社区会运行,称为 Perpetual Powers of Tau.
- 第二阶段生成每个电路特定的参数,针对每个电路执行一次。
Phase 1: Powers of Tau
生成随机数 $\tau, \alpha, \beta$,在计算出 powers of tau 后必须被丢弃。
计算
其中,m 是 ZKP 系统所支持的电路的多项式的最大度数,相当于电路的最大约束数量。
Phase 2: Circuit-Specific Setup
生成随机数 $\gamma, \delta$,在计算出 pk 和 vk 后必须被丢弃。
根据电路多项式 $A_i, B_i, C_i$ 定义 $L_i$
$$ L_i(X)=β⋅A_i(X)+α⋅B_i(X)+C_i(X) $$
由于 $\alpha, \beta$ 已被丢弃,所以转而计算 $L_i(τ ) · G_1$
计算 pk
计算 vk
参考
The Mathematical Mechanics Behind the Groth16 Zero-knowledge Proving Protocol
没有评论