开坑后一定更有动力写!
GG18
原论文:Fast Multiparty Threshold ECDSA with Fast Trustless Setup。
相关资料:
目标
注意:上述签名方式与标准流程略有区别(r=gk 表达为 r=gk−1,s 处相反),应该是为了求 s 时更好维护。
原理
将私钥 x 和 每次签名的随机数 k 各自拆成 ∑xi 和 ∑ki,每个参与者都持有一份。
求 r=gk−1 时引入辅助随机数 γ=∑γi,同样由每个参与者生成并持有一份:
gk−1=gγk−1γ−1=(g∑γi)(kγ)−1=(∏gγi)(kγ)−1
注意到各自公开 gγi 不影响 γi 的安全性,只需优雅计算出 kγ 即可。
求 kγ 时,每一组参与者 (i,j) 需要用 MtA 将 kiγj 拆解为各自持有的 kiγj=αi,j+βi,j
kv=(∑ki)(∑γi)=i=j∑kiγj+∑kiγi=i=j∑(αi,j+βi,j)+∑kiγi=∑kiγi+j=i∑αi,j+j=i∑βj,i
计算 s 时,每一组参与者 (i,j) 同样用 MtA 将 kixj 拆解为 kixj=μi,j+νi,j
s=k(m+xr)=(∑ki)m+(∑ki)(∑xi)r=∑(mki+rσi)
MtA 协议
Multiplicative-to-Additive 指的是乘法到加法的转换协议。假设 Alice 和 Bob 各自有个秘密值 a∈Zq,b∈Zq,MtA 能在不泄露各自秘密的情况下,让他们各自得到 α∈Zq,β∈Zq 使得 ab=α+βmodq。
MtA 通常使用 Paillier 工具,其原理详见我的《密码学导论》。
Range Proof
门限
协议流程