FROST Threshold Signatures
# FROST
FROST: Flexible Round-Optimized Schnorr Threshold Signatures
threshold signature
基于schnorr signature, 注意 \(c=H(R, Y, m)\)
Feldman’s Verifiable Secret Sharing (VSS) Scheme
t-1阶多项式f, \(f(0)=s\) ,coffients为 \((a_1, . . . , a_{t−1})\)
distributing the private share (i, f (i)) to each participant Pi
显然,可以用Lagrange校验
KeyGen
基于VSS。
Round 1:
每个Pi都随机生成自己的 \(f_i\), 以 \(a_{i0}\) 为私钥计算 φ_{i0}=g^{a_{i0}} 的schnorr signature \(σ_i\) , 广播 \(σ_i\) 、\(C_i = < φ_{i0}, . . . , φ_{i(t−1)} >\) 。
Round 2:
Each \(P_i\) securely sends to each other participant \(P_l\) a secret share \((l, f_i(l))\)
\(P_i\) 校验 \(g^{f_l(i)}\) 等于 \(φ_{lk}^(i^k mod q), 0 ≤ k ≤ t-1\) 的积,相当于 \(P_i\) 确认 \(f_i(l)\) 与 \(P_l\) 发布的 \(C_l\) 匹配
\(P_i\) 计算
其他 \(P_j\) 可以校验 \(Y_i = ∏ ∏ φ_{lk}^(i^k mod q), 0 ≤ k ≤ t-1; 1 ≤ l ≤ n\)
\(s_i\) 相当于每个Participants的f在i上取值的和,作为 \(P_i\) 的私钥
而Y相当于以 每个Participants的f的0上取值的和 求幂, 即为公共Public Key
Preprocess for signing
每个 \(P_i\) 随机生成nonce list \(((d_{ij} , D_{ij}), (e_{ij}, E_{ij})), 1 ≤ j ≤ π\), \(L_i\) 是 \((D_{ij}, E_{ij}), 1 ≤ j ≤ π\) 的集合
一次Preprocess生成的π份nonce,可以算π次signature
用过即删
Signing
SA为此次Signing选择 \(α : t ≤ α ≤ n\) participants, the next available commitment \((D_i, E_i) : i ∈ S\) 集合记为B。
显然,secret nonce相当于 \(k = ∑ k_i , i∈S\)
FROST-Interactive
主要是 \(ρ_i\) 的区别
Preprocess
\((i, 〈(D_{ij} , E_{ij} , A_{ij} , B_{ij} )〉, 1 ≤ j ≤ π)\)
注意 \(A_{ij}, B_{ij}\) 用于辅助校验 \(ρ_i\)
Signing
SA公开所有 \(ρ_i\)
每个Participant校验
two round
Two-Round Threshold Schnorr Signatures with FROST
参数名贼长。。。