App Login

TSM Release 65.0.0

Changelog

Node Configuration:
- All MPC protocol methods can be toggled on and off, and are DISABLED by default. You must explicitly enable the ones you need.
Patch changes (no effect on compatibility):
- Fixed error with DNS lookup when using iOS SDKs
- SDKv2 method for signing with a recovered schnorr private key

Mobile frameworks have been built using golang.org/x/mobile v0.0.0-20240905004112-7c4916698cc9

Versions

Client API: 54.0
Client Communication: 29.0
Database: 7.10.0
Node Communication: 32.0
Node Configuration: 21.0 (!)

Upgrade Instructions

MPC Protocol Features (Node Configuration: 21.0)

MPC protocol features such as GenerateKey, Sign, PublicKey, etc. can now be enabled or disabled per MPC protocol, and by default all methods are DISABLED. This means that without changes to the configuration file, the node will not be able to use the given MPC protocol, and it will fail to start.

Each MPC protocol (here we use DKLS19 as an example) now have a configuration section called DKLS19.Features that can look like this:

[DKLS19.Features]  
  GenerateKey = true  
  GeneratePresignatures = true  
  Sign = true  
  SignWithPresignature = true  
  GenerateRecoveryData = false  
  PublicKey = true  
  ChainCode = true  
  Reshare = false  
  CopyKey = false  
  BackupKeyShare = false  
  RestoreKeyShare = false  
  ExportKeyShares = false  
  ImportKeyShares = false  
  BIP32GenerateSeed = false  
  BIP32DeriveFromSeed = false  
  BIP32DeriveFromKey = false  
  BIP32ConvertKey = false  
  BIP32ExportSeed = false  
  BIP32ImportSeed = false  
  BIP32Info = false

Each MPC protocol can have a different feature set. Check the example configuration for a complete list of features for each protocol. The feature names correspond to methods in the SDK. If a feature is not listed, it defaults to false.

Also, some configuration options have been removed from the MPC protocols, as they are now controlled through the protocol features instead. This includes options such as EnableResharing, EnableShareBackup, EnableExport,
EnableERSExport and EnableBIP32ExportSeed.

If all features for an MPC protocol are disabled, the MPC node will refuse to start. In this case you should just
disable the protocol completely in the configuration.

Do not just enable all features without considering the impact of doing so. Especially features that allow export of
key shares in some way should be used with caution. In the example above the potentially dangerous features are
GenerateRecoveryData, BackupKeyShare, ExportKeyShares and BIP32ExportSeed.