Specification

Specification 24 — Share re-sharing

Re-sharing works by Lagrange interpolation.


status: accepted · implementation: shipped

Two distinct operations

Operation What changes Public key When
Re-sharing Committee composition (add/remove party) Unchanged Any time
Proactive refresh All shares refreshed; committee same Unchanged Periodic
Root renewal Root keypair itself New keypair Rare

Why re-sharing preserves the public key

Share re-sharing protocol

Re-sharing works by Lagrange interpolation. T current directors collaboratively compute new shares without revealing the original secret:

For each new party q_j in C_new:
  s_j_new = Σ over participating-i of (Lagrange_basis(j, i) * s_i_old)

The aggregate secret is unchanged because the Lagrange interpolation evaluates to the same value at x=0. Therefore the public key P = secret · G is unchanged.

Scheduling

Trigger Type Sync?
Director term expires Routine Sync (annual ceremony)
Director dies / resigns Emergency Async
Director YubiKey lost Emergency Async
Director compromised Emergency Async
Periodic refresh Routine Async (monthly/quarterly)
Quorum policy change Routine Sync (annual ceremony)

Why this matters

Without re-sharing preserving the public key, every director change would invalidate hundreds of dependent certificates. With re-sharing:

  • Public key stays the same
  • All existing certs remain valid
  • No re-issuance cascade

This is the operational enabler for long-term institution-grade threshold crypto.

Implementation source

  • Crate: confium-tc (reshare submodule)
  • Algorithm: Lagrange interpolation over P-256 scalar field
Edit on GitHub github.com/confium/specs/blob/main/specs/24-share-reshare.adoc