Skip to main content

Feldman DKG 核心 刷新私钥份额

在分布式密钥生成(DKG)协议中,私钥份额刷新(resharing)是一个重要的过程,用于在不改变原始公钥的情况下更新每个参与者的私钥份额。这个过程可以增加系统的安全性,并且在某些情况下(例如参与者更替)是必要的。

私钥份额刷新过程

  1. 生成新多项式:每个参与者生成一个新的秘密多项式 fi(x)f_i'(x),并使用这个多项式生成新的私钥份额和验证者点。

  2. 分发新份额:每个参与者将新的私钥份额分发给其他所有参与者。

  3. 验证新份额:每个参与者使用验证者点来验证收到的新份额的正确性。

  4. 更新私钥份额:每个参与者将新的私钥份额加到旧的私钥份额上,以生成更新后的私钥份额。

公钥更新的保证

在私钥份额刷新过程中,公钥不需要更新。这是因为公钥是由所有私钥份额的和决定的,而私钥份额的刷新过程并不改变这一点。具体来说,假设原始公钥是 GxG \cdot x,其中 xx 是所有私钥份额的和:

x=i=1nxix = \sum_{i=1}^{n} x_i

在刷新过程中,每个参与者生成一个新的私钥份额 xix_i',并将其加到旧的私钥份额上:

xi=xi+xix_i'' = x_i + x_i'

新的私钥份额的和仍然等于原始的私钥份额的和加上所有新生成的私钥份额的和:

x=i=1nxi=i=1n(xi+xi)=x+i=1nxix'' = \sum_{i=1}^{n} x_i'' = \sum_{i=1}^{n} (x_i + x_i') = x + \sum_{i=1}^{n} x_i'

由于新的私钥份额的和(即 xx'')仍然会生成相同的公钥(因为公钥是通过曲线点乘生成的,而曲线点乘是线性的),所以公钥保持不变。

关键点

  1. 生成新的多项式和私钥份额:每个参与者生成一个新的多项式,产生新的私钥份额。
  2. 更新私钥份额:将新的私钥份额加到旧的私钥份额上。
  3. 验证新份额:使用新的验证者点来验证新份额的正确性。
  4. 更新验证者点:将新的验证者点加到旧的验证者点上。

通过上述步骤,私钥份额得到了刷新,而公钥保持不变,从而保证了系统的安全性和一致性。