feat(tss): bump tss-lib v2.0.3 to v3.0.1 - #164
Open
vietddude wants to merge 1 commit into
Open
Conversation
Migrate to fystack/tss-lib v3.0.1 (GG20 session binding + SRC-2026-573 hardening). Update module path v2->v3 across root and e2e modules. Adapt pkg/mpc/ckd.go to the v3 API change where ckd.ExtendedKey.PublicKey moved from *crypto.ECPoint to ecdsa.PublicKey; the ECDSA/EdDSA UpdateSinglePublicKeyAndAdjustBigXj helpers now take an ecdsa.PublicKey child key and convert internally. Compatibility with v2-generated wallets verified: - LocalPartySaveData JSON format unchanged; existing shares load and sign. - EdDSA CKD addresses unchanged (local reimpl already reduced IL mod N, which v3 now matches). Add regression tests: - pkg/ckdutil golden vectors pinning ECDSA/EdDSA child pubkeys so any future derivation drift fails loudly. - pkg/mpc CKD update-and-adjust invariants. Verified: unit tests + full e2e (keygen, signing, CKD signing, resharing) green on 3 v3 nodes.
vietddude
force-pushed
the
feat/bump-tss-lib-v3
branch
from
August 31, 2026 02:55
186564b to
f9ae2e1
Compare
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.



Summary
Migrate to
fystack/tss-libv3.0.1 (GG20 session binding + SRC-2026-573 hardening). Module path bumpedv2→v3across root ande2emodules.The only API break requiring code changes:
ckd.ExtendedKey.PublicKeymoved from*crypto.ECPointtoecdsa.PublicKey. Adaptedpkg/mpc/ckd.go— the ECDSA/EdDSAUpdateSinglePublicKeyAndAdjustBigXjhelpers now take anecdsa.PublicKeychild key and convert internally.Compatibility with existing (v2-generated) wallets
LocalPartySaveDataJSON format is identical between v2.0.3 and v3.0.1 (only import paths differ).IL mod N; v3 now matches it (v3 actually fixes non-hardened EdDSA CKD, which errored ~94% of the time under v2).Tests added
pkg/ckdutil/golden_compat_test.go— golden vectors pinning ECDSA/EdDSA child pubkeys so any future derivation drift fails loudly.pkg/mpc/ckd_update_test.go— invariants of the CKD update-and-adjust helpers.Verification
TestKeyGeneration,TestSigning,TestCKDSigning(ECDSA+EdDSA),TestResharing+ signing-after-reshare — all PASS, 0 fail / 0 skip.v3 binds
ssidinto proofs, so v2 and v3 nodes cannot interoperate. All 3 nodes must be upgraded together (no rolling/mixed-version rollout).