分布式密钥生成与安全代理支付协议解析
分布式密钥生成协议(DKG)
协议概述
分布式密钥生成协议(DKG)基于 [GJKR99] 协议,有两个主要不同点。一是增加了一个更新 QUAL 集合中玩家份额的阶段,该阶段利用第一阶段准备的信息,无需额外轮次;二是定义了两个合格集阶段,SQUAL(半合格集)和 QUAL,所有玩家可获取初始有效密钥份额,但只有 QUAL 中的玩家能得到最终有效份额。同时,为防止份额更新阶段密钥产生偏差,使用了额外多项式。
协议阶段
- 密钥生成阶段
- 每个玩家 Pi 执行 Pedersen - VSS 协议为密钥贡献份额,密钥 x 由所有诚实玩家唯一确定,且在信息理论意义上安全承诺。
- 每个玩家 Pi 生成 2(n + 1) 个 t 次零自由项备份多项式,前 2n 个用于使不诚实玩家的份额在更新阶段失效,另外两个用于防止密钥偏差。
- Pi 将这些多项式的份额发送给其他玩家,但 Pj(j ≠ i)不会收到 r(j)ij = R(j)i (j) 和 r′(j)ij = R′(j)i (j)。
- 若玩家被超过 t 个其他玩家投诉或无法反驳投诉,则被取消资格,此阶段结束后未被取消资格的玩家集合为 SQUAL。
- 公钥提取阶段
- 密钥生成阶段未被取消资格的玩家发布公钥 y 的部分 yi = gxi mod p。
- 若玩家发送无效公钥份额,则在此阶