@cello-protocol/crypto 0.0.11 → 0.0.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,50 @@
1
+ import type { FrostSecret, Signers } from "@noble/curves/abstract/frost.js";
2
+ /** A party's zero-constant refresh contribution: Feldman commitments + the sub-share for each participant. */
3
+ export interface RefreshContribution {
4
+ /** The contributing party's FROST identifier (32-byte LE scalar hex). Binds the contribution to a sender
5
+ * so the applying party can verify the set is complete (one per participant), deduplicated, and matches
6
+ * the agreed epoch roster — a partial/empty/divergent set must NOT silently produce a share. */
7
+ readonly fromId: string;
8
+ /** Feldman VSS commitments C[k] = a_k·G, length T. C[0] is the curve identity (zero constant term). */
9
+ readonly commitment: Uint8Array[];
10
+ /** δ(j) for every participant identifier j, as a 32-byte LE scalar. */
11
+ readonly subShares: Record<string, Uint8Array>;
12
+ }
13
+ /**
14
+ * Generate one party's refresh contribution: a degree-(T-1) polynomial δ with constant term 0, evaluated
15
+ * at every participant identifier in `allIds`, plus the Feldman commitments to its coefficients.
16
+ *
17
+ * T = signers.min (the reconstruction threshold). δ keeps degree T-1 so the refreshed sharing preserves
18
+ * the same threshold. The non-constant coefficients are uniformly random scalars; the contribution leaks
19
+ * nothing about the holder's existing share.
20
+ */
21
+ export declare function generateRefreshContribution(signers: Signers, myId: string, allIds: string[]): RefreshContribution;
22
+ /**
23
+ * Verify a contribution's commitment vector is well-formed: exactly T commitments, each a valid curve
24
+ * point, and — the load-bearing check — commitment[0] is the curve IDENTITY, proving the polynomial's
25
+ * constant term is zero (the refresh cannot shift the joint secret). Throws on any violation.
26
+ */
27
+ export declare function verifyRefreshContribution(commitment: Uint8Array[], signers: Signers): void;
28
+ /**
29
+ * Apply the refresh to one party's share. For this party's identifier j: enforce the full-roster
30
+ * completeness gate, verify every contribution (zero constant term + non-trivial + well-formed) and
31
+ * Feldman-check each sub-share δ_i(j)·G == Σ_k j^k·C_i[k] before trusting it, then return the rotated share
32
+ * s'_j = s_j + Σ_i δ_i(j) (mod L). The group public key is unchanged; old-epoch shares no longer combine
33
+ * with the result.
34
+ *
35
+ * PRECONDITION — broadcast agreement (NOT enforceable by this local primitive): every honest party MUST
36
+ * receive the IDENTICAL `commitment` (and the matching sub-share) from each contributor i. This primitive
37
+ * verifies each sub-share only against the commitment in ITS OWN list, so a malicious contributor that
38
+ * EQUIVOCATES — handing party A `(C, δ_A)` and party B a different but internally-consistent `(C', δ_B)`,
39
+ * both with commitment[0]=identity — passes every local check, yet A and B then land on DIFFERENT
40
+ * polynomials (Δ_A ≠ Δ_B): no secret shift, but the quorum can no longer reconstruct/sign. Detecting
41
+ * equivocation requires an echo/agreement round (every party broadcasts H(commitment_i) it received and
42
+ * aborts on any mismatch). The daemon orchestration layer (runNetworkRefresh) owns that echo round; this
43
+ * function assumes the contribution set it is handed is already agreement-checked. A corrupt party cannot
44
+ * silently SHIFT THE SECRET here, but the unusable-share (equivocation) attack is out of local scope.
45
+ *
46
+ * Throws if any contribution is malformed or any sub-share is inconsistent with its commitment — a
47
+ * corrupt party cannot silently shift the secret or hand a victim an unusable share.
48
+ */
49
+ export declare function applyRefresh(oldShare: FrostSecret, contributions: RefreshContribution[], signers: Signers, expectedParticipantIds: string[]): FrostSecret;
50
+ //# sourceMappingURL=frost-resharing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"frost-resharing.d.ts","sourceRoot":"","sources":["../../src/frost/frost-resharing.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,iCAAiC,CAAC;AAK5E,8GAA8G;AAC9G,MAAM,WAAW,mBAAmB;IAClC;;qGAEiG;IACjG,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,uGAAuG;IACvG,QAAQ,CAAC,UAAU,EAAE,UAAU,EAAE,CAAC;IAClC,uEAAuE;IACvE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;CAChD;AAsCD;;;;;;;GAOG;AACH,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,mBAAmB,CAgBjH;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,UAAU,EAAE,UAAU,EAAE,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAuB1F;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,YAAY,CAC1B,QAAQ,EAAE,WAAW,EACrB,aAAa,EAAE,mBAAmB,EAAE,EACpC,OAAO,EAAE,OAAO,EAChB,sBAAsB,EAAE,MAAM,EAAE,GAC/B,WAAW,CAwDb"}
@@ -0,0 +1,183 @@
1
+ /**
2
+ * FROST proactive share resharing (PSS) — M8B DOD-REFRESH-1.
3
+ *
4
+ * Zero-constant-term proactive secret sharing (Herzberg, Jarecki, Krawczyk, Yung — "Proactive Secret
5
+ * Sharing", CRYPTO 1995), applied to the joint FROST/Ed25519 group key (RFC 9591 §C VSS commitments).
6
+ *
7
+ * Each party i adds a degree-(T-1) polynomial δ_i with constant term ZERO to its share. Because every
8
+ * δ_i(0) = 0, the sum Δ = Σ_i δ_i has Δ(0) = 0, so the joint secret f(0) — and therefore the group public
9
+ * key (commitments[0]) — is UNCHANGED, while every individual share s_j = f(j) becomes s'_j = f(j) + Δ(j),
10
+ * a fresh value. A share captured in epoch e is on the OLD polynomial f; it cannot be combined with
11
+ * epoch-(e+1) shares (which lie on f' = f + Δ) to reconstruct or sign for the joint secret.
12
+ *
13
+ * @noble/curves@2.2.0 rejects `utils.generateSecretPolynomial(secret=0)` ("invalid scalar: 1 <= sc < n"),
14
+ * so the zero-constant polynomial is built manually from `utils.Fn` + `utils.randomScalar`. Each
15
+ * contribution publishes Feldman VSS commitments `C_i[k] = a_{i,k}·G`; `C_i[0]` is the curve identity —
16
+ * the public proof that δ_i has a zero constant term (the refresh cannot shift the secret). Recipients
17
+ * verify every sub-share δ_i(j) against the commitments before adding it.
18
+ *
19
+ * Scalars and identifiers use @noble's little-endian encoding: a FROST `identifier` is the 32-byte LE
20
+ * scalar (e.g. "0100…00" === 1). All field arithmetic is mod L via `ed25519_FROST.utils.Fn`.
21
+ */
22
+ import { ed25519_FROST, ed25519 } from "@noble/curves/ed25519.js";
23
+ const Fn = ed25519_FROST.utils.Fn;
24
+ const Point = ed25519.Point;
25
+ function hexToBytes(hex) {
26
+ return Uint8Array.from(Buffer.from(hex, "hex"));
27
+ }
28
+ /** Identifier (32-byte LE scalar hex) → field scalar bigint. `Fn.fromBytes` already rejects a non-canonical
29
+ * (≥ L) or non-32-byte identifier; FROST identifiers must additionally be non-zero (0 is not a valid
30
+ * evaluation point), so reject it explicitly — mirrors noble's `validateIdentifier`. */
31
+ function identifierScalar(identifier) {
32
+ const x = Fn.fromBytes(hexToBytes(identifier));
33
+ if (x === 0n) {
34
+ throw new Error("frost-resharing: identifier 0 is not a valid FROST evaluation point");
35
+ }
36
+ return x;
37
+ }
38
+ /** Evaluate Σ_k coeffs[k]·x^k (mod L) via Horner, in the scalar field. */
39
+ function evalPolynomial(coeffs, x) {
40
+ let acc = Fn.create(0n);
41
+ for (let k = coeffs.length - 1; k >= 0; k--) {
42
+ acc = Fn.add(Fn.mul(acc, x), coeffs[k]);
43
+ }
44
+ return acc;
45
+ }
46
+ /** scalar·G, identity-safe (Point.BASE.multiply rejects a zero scalar). */
47
+ function scalarBaseMul(s) {
48
+ return s === 0n ? Point.ZERO : Point.BASE.multiply(s);
49
+ }
50
+ /** point·scalar, identity-safe. */
51
+ function pointMul(p, s) {
52
+ if (s === 0n)
53
+ return Point.ZERO;
54
+ if (p.is0())
55
+ return Point.ZERO;
56
+ return p.multiply(s);
57
+ }
58
+ /**
59
+ * Generate one party's refresh contribution: a degree-(T-1) polynomial δ with constant term 0, evaluated
60
+ * at every participant identifier in `allIds`, plus the Feldman commitments to its coefficients.
61
+ *
62
+ * T = signers.min (the reconstruction threshold). δ keeps degree T-1 so the refreshed sharing preserves
63
+ * the same threshold. The non-constant coefficients are uniformly random scalars; the contribution leaks
64
+ * nothing about the holder's existing share.
65
+ */
66
+ export function generateRefreshContribution(signers, myId, allIds) {
67
+ const threshold = signers.min;
68
+ // coefficients[0] === 0 (zero constant term); coefficients[1..T-1] uniformly random.
69
+ const coefficients = [0n];
70
+ for (let k = 1; k < threshold; k++) {
71
+ coefficients.push(Fn.fromBytes(ed25519_FROST.utils.randomScalar()));
72
+ }
73
+ // Feldman commitments C[k] = coefficients[k]·G; C[0] = 0·G = identity.
74
+ const commitment = coefficients.map((c) => scalarBaseMul(c).toBytes());
75
+ const subShares = {};
76
+ for (const id of allIds) {
77
+ const share = evalPolynomial(coefficients, identifierScalar(id));
78
+ subShares[id] = Fn.toBytes(share);
79
+ }
80
+ return { fromId: myId, commitment, subShares };
81
+ }
82
+ /**
83
+ * Verify a contribution's commitment vector is well-formed: exactly T commitments, each a valid curve
84
+ * point, and — the load-bearing check — commitment[0] is the curve IDENTITY, proving the polynomial's
85
+ * constant term is zero (the refresh cannot shift the joint secret). Throws on any violation.
86
+ */
87
+ export function verifyRefreshContribution(commitment, signers) {
88
+ const threshold = signers.min;
89
+ if (commitment.length !== threshold) {
90
+ throw new Error(`frost-resharing: commitment length ${commitment.length} !== threshold ${threshold}`);
91
+ }
92
+ const identityHex = Buffer.from(Point.ZERO.toBytes()).toString("hex");
93
+ if (Buffer.from(commitment[0]).toString("hex") !== identityHex) {
94
+ throw new Error("frost-resharing: commitment[0] is not the identity — refresh would shift the secret");
95
+ }
96
+ // Each commitment must decode to a valid curve point (rejects garbage / off-curve points).
97
+ for (const c of commitment) {
98
+ Point.fromBytes(c);
99
+ }
100
+ // Non-triviality: the polynomial must NOT be identically zero (all coefficients 0 → every commitment is
101
+ // the identity). A zero-polynomial contribution passes the zero-constant check yet adds NO fresh
102
+ // randomness — a free-rider that contributes nothing to Δ. Require at least one non-constant commitment
103
+ // (commitment[1..T-1]) to be non-identity so every contributor actually masks the shares.
104
+ const nonConstantNonIdentity = commitment
105
+ .slice(1)
106
+ .some((c) => Buffer.from(c).toString("hex") !== identityHex);
107
+ if (!nonConstantNonIdentity) {
108
+ throw new Error("frost-resharing: contribution is the zero polynomial (no fresh randomness) — rejected");
109
+ }
110
+ }
111
+ /**
112
+ * Apply the refresh to one party's share. For this party's identifier j: enforce the full-roster
113
+ * completeness gate, verify every contribution (zero constant term + non-trivial + well-formed) and
114
+ * Feldman-check each sub-share δ_i(j)·G == Σ_k j^k·C_i[k] before trusting it, then return the rotated share
115
+ * s'_j = s_j + Σ_i δ_i(j) (mod L). The group public key is unchanged; old-epoch shares no longer combine
116
+ * with the result.
117
+ *
118
+ * PRECONDITION — broadcast agreement (NOT enforceable by this local primitive): every honest party MUST
119
+ * receive the IDENTICAL `commitment` (and the matching sub-share) from each contributor i. This primitive
120
+ * verifies each sub-share only against the commitment in ITS OWN list, so a malicious contributor that
121
+ * EQUIVOCATES — handing party A `(C, δ_A)` and party B a different but internally-consistent `(C', δ_B)`,
122
+ * both with commitment[0]=identity — passes every local check, yet A and B then land on DIFFERENT
123
+ * polynomials (Δ_A ≠ Δ_B): no secret shift, but the quorum can no longer reconstruct/sign. Detecting
124
+ * equivocation requires an echo/agreement round (every party broadcasts H(commitment_i) it received and
125
+ * aborts on any mismatch). The daemon orchestration layer (runNetworkRefresh) owns that echo round; this
126
+ * function assumes the contribution set it is handed is already agreement-checked. A corrupt party cannot
127
+ * silently SHIFT THE SECRET here, but the unusable-share (equivocation) attack is out of local scope.
128
+ *
129
+ * Throws if any contribution is malformed or any sub-share is inconsistent with its commitment — a
130
+ * corrupt party cannot silently shift the secret or hand a victim an unusable share.
131
+ */
132
+ export function applyRefresh(oldShare, contributions, signers, expectedParticipantIds) {
133
+ const j = oldShare.identifier;
134
+ const xj = identifierScalar(j);
135
+ // COMPLETENESS GATE (fallback HIGH): a proactive refresh — like DKG — requires EVERY current shareholder
136
+ // to contribute exactly one δ. The applying party MUST verify the contribution set is the full agreed
137
+ // roster: no missing party (a partial set lands every party on a DIFFERENT polynomial Δ and silently
138
+ // destroys the joint key), no extra/duplicate sender (double-counts a δ), and not empty (a no-op refresh
139
+ // that returns the OLD share while reporting success — leaving a captured epoch-e share alive). This also
140
+ // enforces the joint-randomness requirement: Δ = Σ δ_i is only safe when summed across all independent
141
+ // parties, never a single contributor. Fail LOUD here rather than return a share that looks rotated.
142
+ const expected = new Set(expectedParticipantIds);
143
+ if (expected.size !== expectedParticipantIds.length) {
144
+ throw new Error("frost-resharing: expectedParticipantIds contains duplicates");
145
+ }
146
+ const seen = new Set();
147
+ for (const c of contributions) {
148
+ if (!expected.has(c.fromId)) {
149
+ throw new Error(`frost-resharing: contribution from unexpected party ${c.fromId} (not in the agreed roster)`);
150
+ }
151
+ if (seen.has(c.fromId)) {
152
+ throw new Error(`frost-resharing: duplicate contribution from party ${c.fromId}`);
153
+ }
154
+ seen.add(c.fromId);
155
+ }
156
+ if (seen.size !== expected.size) {
157
+ const missing = expectedParticipantIds.filter((id) => !seen.has(id));
158
+ throw new Error(`frost-resharing: incomplete refresh — missing contributions from ${missing.length} party/parties (a partial refresh would diverge the joint key)`);
159
+ }
160
+ let acc = Fn.fromBytes(oldShare.signingShare);
161
+ for (const contribution of contributions) {
162
+ verifyRefreshContribution(contribution.commitment, signers);
163
+ const subShareBytes = contribution.subShares[j];
164
+ if (!subShareBytes) {
165
+ throw new Error(`frost-resharing: contribution missing sub-share for identifier ${j}`);
166
+ }
167
+ const delta = Fn.fromBytes(subShareBytes);
168
+ // Feldman VSS check: δ_i(j)·G must equal Σ_k j^k · C_i[k] (Horner over the commitment points).
169
+ const lhs = scalarBaseMul(delta);
170
+ let rhs = Point.ZERO;
171
+ for (let k = contribution.commitment.length - 1; k >= 0; k--) {
172
+ rhs = pointMul(rhs, xj).add(Point.fromBytes(contribution.commitment[k]));
173
+ }
174
+ if (!lhs.equals(rhs)) {
175
+ throw new Error(`frost-resharing: sub-share for ${j} fails the VSS check against its commitment`);
176
+ }
177
+ acc = Fn.add(acc, delta);
178
+ }
179
+ // new Uint8Array(...) gives an ArrayBuffer-backed copy (FrostSecret.signingShare is the stricter
180
+ // Uint8Array<ArrayBuffer>, not Fn.toBytes's Uint8Array<ArrayBufferLike>).
181
+ return { identifier: j, signingShare: new Uint8Array(Fn.toBytes(acc)) };
182
+ }
183
+ //# sourceMappingURL=frost-resharing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"frost-resharing.js","sourceRoot":"","sources":["../../src/frost/frost-resharing.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"frost-threshold-signer.d.ts","sourceRoot":"","sources":["../../src/frost/frost-threshold-signer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoFG;AAGH,OAAO,KAAK,EACV,WAAW,EACX,WAAW,EACZ,MAAM,iCAAiC,CAAC;AACzC,OAAO,KAAK,EACV,gBAAgB,EAChB,kBAAkB,EAClB,0BAA0B,EAE1B,eAAe,EACf,YAAY,EACb,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,6BAA6B,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAgBzE;;;;;;;;GAQG;AACH,wBAAgB,eAAe,IAAI,IAAI,CAKtC;AAED;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAC5B,cAAc,EAAE,MAAM,EACtB,MAAM,EAAE,WAAW,EACnB,GAAG,EAAE,WAAW,GACf,IAAI,CAGN;AA+BD;;;;;;;;;;;;GAYG;AACH,wBAAsB,kBAAkB,CACtC,WAAW,EAAE,UAAU,EACvB,MAAM,EAAE,0BAA0B,GACjC,OAAO,CAAC,eAAe,CAAC,CAwD1B;AAID,qBAAa,oBAAqB,YAAW,gBAAgB;;gBAa/C,MAAM,EAAE,0BAA0B,EAAE,WAAW,EAAE,UAAU;IAgBvE;;;OAGG;IACH,gBAAgB,IAAI,UAAU;IAU9B;;;OAGG;IACH,eAAe,CACb,SAAS,EAAE,UAAU,EACrB,GAAG,EAAE,UAAU,EACf,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,UAAU,GACpB,OAAO;IASV;;;;;OAKG;IACG,qBAAqB,CACzB,UAAU,EAAE,MAAM,EAClB,GAAG,EAAE,UAAU,EACf,OAAO,EAAE,YAAY,EACrB,UAAU,CAAC,EAAE,OAAO,YAAY,EAAE,wBAAwB,GACzD,OAAO,CAAC,kBAAkB,CAAC;CAmQ/B;AAID;;;;;;;;;;;;GAYG;AACH,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,UAAU,EACrB,GAAG,EAAE,UAAU,EACf,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,UAAU,GACpB,OAAO,CAOT;AAID;;;;;;;;;GASG;AACH,qBAAa,mBAAoB,YAAW,gBAAgB;IACpD,qBAAqB,CACzB,WAAW,EAAE,MAAM,EACnB,GAAG,EAAE,UAAU,EACf,QAAQ,EAAE,YAAY,EACtB,WAAW,CAAC,EAAE,OAAO,YAAY,EAAE,wBAAwB,GAC1D,OAAO,CAAC,kBAAkB,CAAC;IAW9B;;;OAGG;IACH,gBAAgB,IAAI,UAAU;IAO9B,eAAe,CACb,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,UAAU,EAChB,QAAQ,EAAE,YAAY,EACtB,UAAU,EAAE,UAAU,GACrB,OAAO;CAIX;AAGD,OAAO,EAAE,6BAA6B,EAAE,YAAY,EAAE,CAAC"}
1
+ {"version":3,"file":"frost-threshold-signer.d.ts","sourceRoot":"","sources":["../../src/frost/frost-threshold-signer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoFG;AAGH,OAAO,KAAK,EACV,WAAW,EACX,WAAW,EACZ,MAAM,iCAAiC,CAAC;AACzC,OAAO,KAAK,EACV,gBAAgB,EAChB,kBAAkB,EAClB,0BAA0B,EAE1B,eAAe,EACf,YAAY,EACb,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,6BAA6B,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAgBzE;;;;;;;;GAQG;AACH,wBAAgB,eAAe,IAAI,IAAI,CAKtC;AAED;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAC5B,cAAc,EAAE,MAAM,EACtB,MAAM,EAAE,WAAW,EACnB,GAAG,EAAE,WAAW,GACf,IAAI,CAGN;AA+BD;;;;;;;;;;;;GAYG;AACH,wBAAsB,kBAAkB,CACtC,WAAW,EAAE,UAAU,EACvB,MAAM,EAAE,0BAA0B,GACjC,OAAO,CAAC,eAAe,CAAC,CAwD1B;AAID,qBAAa,oBAAqB,YAAW,gBAAgB;;gBAa/C,MAAM,EAAE,0BAA0B,EAAE,WAAW,EAAE,UAAU;IAgBvE;;;OAGG;IACH,gBAAgB,IAAI,UAAU;IAU9B;;;OAGG;IACH,eAAe,CACb,SAAS,EAAE,UAAU,EACrB,GAAG,EAAE,UAAU,EACf,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,UAAU,GACpB,OAAO;IASV;;;;;OAKG;IACG,qBAAqB,CACzB,UAAU,EAAE,MAAM,EAClB,GAAG,EAAE,UAAU,EACf,OAAO,EAAE,YAAY,EACrB,UAAU,CAAC,EAAE,OAAO,YAAY,EAAE,wBAAwB,GACzD,OAAO,CAAC,kBAAkB,CAAC;CA+O/B;AAID;;;;;;;;;;;;GAYG;AACH,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,UAAU,EACrB,GAAG,EAAE,UAAU,EACf,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,UAAU,GACpB,OAAO,CAOT;AAID;;;;;;;;;GASG;AACH,qBAAa,mBAAoB,YAAW,gBAAgB;IACpD,qBAAqB,CACzB,WAAW,EAAE,MAAM,EACnB,GAAG,EAAE,UAAU,EACf,QAAQ,EAAE,YAAY,EACtB,WAAW,CAAC,EAAE,OAAO,YAAY,EAAE,wBAAwB,GAC1D,OAAO,CAAC,kBAAkB,CAAC;IAW9B;;;OAGG;IACH,gBAAgB,IAAI,UAAU;IAO9B,eAAe,CACb,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,UAAU,EAChB,QAAQ,EAAE,YAAY,EACtB,UAAU,EAAE,UAAU,GACrB,OAAO;CAIX;AAGD,OAAO,EAAE,6BAA6B,EAAE,YAAY,EAAE,CAAC"}
@@ -249,21 +249,15 @@ export class FrostThresholdSigner {
249
249
  */
250
250
  async participateInCeremony(ceremonyId, tbs, context, onProgress) {
251
251
  const agentHex = toHex(this.#agentPubkey);
252
- process.stderr.write(`[CLIENT-DEBUG] FrostThresholdSigner.participateInCeremony: enter agent=${agentHex.slice(0, 16)} ceremony=${ceremonyId.slice(0, 16)}\n`);
253
252
  const localShare = _localShares.get(agentHex);
254
- process.stderr.write(`[CLIENT-DEBUG] FrostThresholdSigner: localShare=${localShare ? "FOUND" : "NOT FOUND"} agentHex=${agentHex.slice(0, 16)}\n`);
255
253
  if (!localShare) {
256
- process.stderr.write(`[CLIENT-DEBUG] FrostThresholdSigner: all keys in _localShares: (cannot iterate module-private map)\n`);
257
254
  throw new Error("Not bootstrapped: call bootstrapKeyShares before using FrostThresholdSigner");
258
255
  }
259
256
  const stubs = this.#config.directoryNodeStubs ?? [];
260
257
  const { threshold, roundTimeoutMs, ceremonyTimeoutMs, maxRetries } = this.#config;
261
- process.stderr.write(`[CLIENT-DEBUG] FrostThresholdSigner: stubs=${stubs.length} threshold=${threshold} maxRetries=${maxRetries} roundTimeoutMs=${roundTimeoutMs}\n`);
262
- stubs.forEach((s, i) => process.stderr.write(`[CLIENT-DEBUG] FrostThresholdSigner: stub[${i}] id=${s.id?.slice(0, 16)} isReachable=${s.isReachable()}\n`));
263
258
  // Frame message for domain separation: context\0tbs
264
259
  const msg = frameMessage(context, tbs);
265
260
  const { pub } = localShare;
266
- process.stderr.write(`[CLIENT-DEBUG] FrostThresholdSigner: pub.signers=${JSON.stringify(pub.signers)} pub.commitments.length=${pub.commitments?.length}\n`);
267
261
  const clientId = ed25519_FROST.Identifier.derive(`client:${toHex(this.#agentPubkey)}`);
268
262
  // Ceremony-level timeout: a deadline across all retry attempts
269
263
  const ceremonyDeadline = Date.now() + ceremonyTimeoutMs;
@@ -272,9 +266,7 @@ export class FrostThresholdSigner {
272
266
  // reachable, fail immediately — the ceremony cannot possibly succeed.
273
267
  // (threshold - 1 because the client itself is one of the threshold signers)
274
268
  const reachableAtInitiation = stubs.filter((s) => s.isReachable());
275
- process.stderr.write(`[CLIENT-DEBUG] FrostThresholdSigner: reachableAtInitiation=${reachableAtInitiation.length} need=${threshold - 1}\n`);
276
269
  if (reachableAtInitiation.length < threshold - 1) {
277
- process.stderr.write(`[CLIENT-DEBUG] FrostThresholdSigner: FAIL pre-check DIRECTORY_BELOW_THRESHOLD\n`);
278
270
  return {
279
271
  ok: false,
280
272
  error: { reason: "DIRECTORY_BELOW_THRESHOLD" },
@@ -286,16 +278,13 @@ export class FrostThresholdSigner {
286
278
  // On each new participateInCeremony call, the exclusion set resets.
287
279
  const ceremonyExcluded = new Set();
288
280
  for (let attempt = 0; attempt < maxRetries; attempt++) {
289
- process.stderr.write(`[CLIENT-DEBUG] FrostThresholdSigner: attempt ${attempt + 1}/${maxRetries} excluded=${[...ceremonyExcluded].length}\n`);
290
281
  if (Date.now() >= ceremonyDeadline) {
291
- process.stderr.write(`[CLIENT-DEBUG] FrostThresholdSigner: FAIL CEREMONY_TIMEOUT at attempt ${attempt + 1}\n`);
292
282
  return {
293
283
  ok: false,
294
284
  error: { reason: "CEREMONY_TIMEOUT" },
295
285
  };
296
286
  }
297
287
  const available = reachableAtInitiation.filter((s) => !ceremonyExcluded.has(s.id));
298
- process.stderr.write(`[CLIENT-DEBUG] FrostThresholdSigner: available stubs=${available.length} need=${threshold - 1}\n`);
299
288
  // Select (threshold - 1) stubs for this round (client counts as one signer)
300
289
  const selected = available.slice(0, threshold - 1);
301
290
  if (selected.length < threshold - 1) {
@@ -311,22 +300,46 @@ export class FrostThresholdSigner {
311
300
  error: { reason: "DIRECTORY_BELOW_THRESHOLD" },
312
301
  };
313
302
  }
314
- // Round 1: generate fresh nonces + commitment list
315
- process.stderr.write(`[CLIENT-DEBUG] FrostThresholdSigner: Round1 calling ed25519_FROST.commit\n`);
303
+ // Round 1: generate fresh nonces + commitment list. Gather per-stub (NOT Promise.all) so a stub
304
+ // that FAILS or REFUSES its commitment — e.g. a SUSPENDED directory sending {ok:false} is added
305
+ // to ceremonyExcluded and the attempt retried with the survivors, mirroring the sign round's
306
+ // exclusion (Round 2 below). Without this, a refusing stub stays in `selected` every attempt
307
+ // (selection is the first threshold-1 of `available`), so a SUB-threshold suspension exhausts
308
+ // maxRetries instead of routing to the healthy directories — violating DOD-SUSPEND-1
309
+ // (threshold-refusal ≠ single-node-refusal: < N−T+1 suspensions must still sign).
316
310
  const localNonce = ed25519_FROST.commit(localShare.secret);
317
- process.stderr.write(`[CLIENT-DEBUG] FrostThresholdSigner: Round1 calling generateCommitment on ${selected.length} stubs\n`);
318
- let stubCommits;
319
- try {
320
- stubCommits = await Promise.all(selected.map(async (s) => {
321
- process.stderr.write(`[CLIENT-DEBUG] FrostThresholdSigner: generateCommitment stub=${s.id?.slice(0, 16)}\n`);
322
- const r = await s.generateCommitment();
323
- process.stderr.write(`[CLIENT-DEBUG] FrostThresholdSigner: generateCommitment stub=${s.id?.slice(0, 16)} nodeId=${r.nodeId?.slice(0, 16)}\n`);
324
- return r;
325
- }));
311
+ const stubCommits = [];
312
+ let commitFailedThisRound = false;
313
+ for (const s of selected) {
314
+ // Mirror the sign round (below): check the ceremony deadline before each node and RACE the
315
+ // network-blocking generateCommitment against a per-node timeout. A directory that accepts the
316
+ // stream but never responds (silent drop / hung TCP) must be routed around (excluded), not
317
+ // allowed to stall participateInCeremony indefinitely — CELLO's availability invariant. Without
318
+ // this the commit round — now the load-bearing route-around path for a sub-threshold suspension
319
+ // — could hang forever, the exact failure mode the sovereign-node redundancy rule forbids.
320
+ if (Date.now() >= ceremonyDeadline) {
321
+ return { ok: false, error: { reason: "CEREMONY_TIMEOUT" } };
322
+ }
323
+ const commitTimeout = new Promise((resolve) => setTimeout(() => resolve(null), roundTimeoutMs));
324
+ let r;
325
+ try {
326
+ r = await Promise.race([s.generateCommitment(), commitTimeout]);
327
+ }
328
+ catch {
329
+ r = null;
330
+ }
331
+ if (!r || !r.nonceCommitment) {
332
+ // Refused (suspended), failed, or timed out → EXCLUDE and retry with survivors (same as Round 2).
333
+ // The refusing node's distinct reason (AGENT_SUSPENDED vs AGENT_NOT_BOOTSTRAPPED vs EPOCH_EXPIRED)
334
+ // is surfaced structurally by the directory ITSELF (frost.debug.frost_stream.commit_response /
335
+ // frost.share.refused.suspended) — the coordinator only needs the route-around decision here.
336
+ ceremonyExcluded.add(s.id);
337
+ commitFailedThisRound = true;
338
+ continue;
339
+ }
340
+ stubCommits.push(r);
326
341
  }
327
- catch (err) {
328
- const msg = err instanceof Error ? err.message : String(err);
329
- process.stderr.write(`[CLIENT-DEBUG] FrostThresholdSigner: generateCommitment THREW: ${msg}\n`);
342
+ if (commitFailedThisRound) {
330
343
  continue;
331
344
  }
332
345
  const commitmentList = [
@@ -355,20 +368,15 @@ export class FrostThresholdSigner {
355
368
  const timeoutPromise = new Promise((resolve) => setTimeout(() => resolve(null), roundTimeoutMs));
356
369
  let partialSig;
357
370
  try {
358
- process.stderr.write(`[CLIENT-DEBUG] FrostThresholdSigner: calling signRound stub=${stub.id?.slice(0, 16)}\n`);
359
371
  partialSig = await Promise.race([
360
372
  stub.signRound({ pub, commitmentList, msg, ceremonyId }),
361
373
  timeoutPromise,
362
374
  ]);
363
- process.stderr.write(`[CLIENT-DEBUG] FrostThresholdSigner: signRound stub=${stub.id?.slice(0, 16)} result=${partialSig === null ? "TIMEOUT" : `Uint8Array(${partialSig.length})`}\n`);
364
375
  }
365
- catch (err) {
366
- const msg = err instanceof Error ? err.message : String(err);
367
- process.stderr.write(`[CLIENT-DEBUG] FrostThresholdSigner: signRound THREW stub=${stub.id?.slice(0, 16)}: ${msg}\n`);
376
+ catch {
368
377
  partialSig = null;
369
378
  }
370
379
  if (partialSig === null) {
371
- process.stderr.write(`[CLIENT-DEBUG] FrostThresholdSigner: excluding stub=${stub.id?.slice(0, 16)} (null/timeout)\n`);
372
380
  ceremonyExcluded.add(stub.id);
373
381
  anyFailedThisRound = true;
374
382
  continue;
@@ -377,15 +385,11 @@ export class FrostThresholdSigner {
377
385
  try {
378
386
  const stubId = ed25519_FROST.Identifier.derive(stub.id);
379
387
  isValid = ed25519_FROST.verifyShare(pub, commitmentList, msg, stubId, partialSig);
380
- process.stderr.write(`[CLIENT-DEBUG] FrostThresholdSigner: verifyShare stub=${stub.id?.slice(0, 16)} isValid=${isValid}\n`);
381
388
  }
382
- catch (err) {
383
- const msg = err instanceof Error ? err.message : String(err);
384
- process.stderr.write(`[CLIENT-DEBUG] FrostThresholdSigner: verifyShare THREW stub=${stub.id?.slice(0, 16)}: ${msg}\n`);
389
+ catch {
385
390
  isValid = false;
386
391
  }
387
392
  if (!isValid) {
388
- process.stderr.write(`[CLIENT-DEBUG] FrostThresholdSigner: excluding stub=${stub.id?.slice(0, 16)} (invalid sig)\n`);
389
393
  ceremonyExcluded.add(stub.id);
390
394
  anyFailedThisRound = true;
391
395
  continue;
@@ -408,49 +412,23 @@ export class FrostThresholdSigner {
408
412
  // All selected stubs provided valid partial sigs. Compute client's partial sig.
409
413
  let clientSig;
410
414
  try {
411
- // Log everything before signShare so a throw gives full context
412
- const pubRec = pub;
413
- const secretRec = localShare.secret;
414
- process.stderr.write(`[CLIENT-DEBUG] FrostThresholdSigner: PRE-signShare attempt=${attempt + 1}\n`);
415
- process.stderr.write(`[CLIENT-DEBUG] pub.signers=${JSON.stringify(pubRec.signers)}\n`);
416
- process.stderr.write(`[CLIENT-DEBUG] pub.commitments.length=${Array.isArray(pubRec.commitments) ? pubRec.commitments.length : "NOT_ARRAY"}\n`);
417
- process.stderr.write(`[CLIENT-DEBUG] pub.commitments[0] type=${Array.isArray(pubRec.commitments) ? typeof pubRec.commitments[0] : "N/A"} isUint8Array=${Array.isArray(pubRec.commitments) ? pubRec.commitments[0] instanceof Uint8Array : "N/A"}\n`);
418
- process.stderr.write(`[CLIENT-DEBUG] secret.identifier=${String(secretRec.identifier)} type=${typeof secretRec.identifier}\n`);
419
- process.stderr.write(`[CLIENT-DEBUG] secret.signingShare type=${typeof secretRec.signingShare} isUint8Array=${secretRec.signingShare instanceof Uint8Array}\n`);
420
- process.stderr.write(`[CLIENT-DEBUG] localNonce.nonces type=${typeof localNonce.nonces} keys=${typeof localNonce.nonces === "object" && localNonce.nonces ? Object.keys(localNonce.nonces).join(",") : "N/A"}\n`);
421
- process.stderr.write(`[CLIENT-DEBUG] commitmentList.length=${commitmentList.length}\n`);
422
- commitmentList.forEach((c, i) => {
423
- const cr = c;
424
- process.stderr.write(`[CLIENT-DEBUG] commitmentList[${i}]: identifier=${String(cr.identifier)} hiding.isUint8Array=${cr.hiding instanceof Uint8Array} binding.isUint8Array=${cr.binding instanceof Uint8Array}\n`);
425
- });
426
- process.stderr.write(`[CLIENT-DEBUG] msg.length=${msg.length} isUint8Array=${msg instanceof Uint8Array}\n`);
427
- process.stderr.write(`[CLIENT-DEBUG] clientId type=${typeof clientId} value=${String(clientId).slice(0, 20)}\n`);
428
415
  clientSig = ed25519_FROST.signShare(localShare.secret, pub, localNonce.nonces, commitmentList, msg);
429
- process.stderr.write(`[CLIENT-DEBUG] FrostThresholdSigner: client signShare OK sigLength=${clientSig.length}\n`);
430
416
  sigShares[String(clientId)] = clientSig;
431
417
  partialSigCount++;
432
418
  onProgress?.({ type: "partial_sig_collected", index: partialSigCount, total: totalParticipants });
433
419
  }
434
- catch (err) {
435
- const msg2 = err instanceof Error ? err.message : String(err);
436
- process.stderr.write(`[CLIENT-DEBUG] FrostThresholdSigner: client signShare THREW: ${msg2}\n`);
420
+ catch {
437
421
  continue;
438
422
  }
439
- process.stderr.write(`[CLIENT-DEBUG] FrostThresholdSigner: sigShares count=${Object.keys(sigShares).length} threshold=${threshold}\n`);
440
423
  if (Object.keys(sigShares).length < threshold) {
441
- process.stderr.write(`[CLIENT-DEBUG] FrostThresholdSigner: not enough sigShares, continuing\n`);
442
424
  continue;
443
425
  }
444
426
  // Aggregate
445
427
  let signature;
446
428
  try {
447
- process.stderr.write(`[CLIENT-DEBUG] FrostThresholdSigner: calling aggregate sigShareKeys=${Object.keys(sigShares).map(k => k.slice(0, 8)).join(",")}\n`);
448
429
  signature = ed25519_FROST.aggregate(pub, commitmentList, msg, sigShares);
449
- process.stderr.write(`[CLIENT-DEBUG] FrostThresholdSigner: aggregate OK sigLength=${signature.length}\n`);
450
430
  }
451
- catch (err) {
452
- const msg2 = err instanceof Error ? err.message : String(err);
453
- process.stderr.write(`[CLIENT-DEBUG] FrostThresholdSigner: aggregate THREW: ${msg2}\n`);
431
+ catch {
454
432
  continue;
455
433
  }
456
434
  return { ok: true, signature };
@@ -1 +1 @@
1
- {"version":3,"file":"frost-threshold-signer.js","sourceRoot":"","sources":["../../src/frost/frost-threshold-signer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"frost-threshold-signer.js","sourceRoot":"","sources":["../../src/frost/frost-threshold-signer.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cello-protocol/crypto",
3
- "version": "0.0.11",
3
+ "version": "0.0.12",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "engines": {