Skip to main content

11 posts tagged with "web-sdk"

View All Tags

Aleo Support (ed-bls12-377)

The Web SDK now supports threshold signing for the Aleo network through the new EdBls12377 class, implementing the frost-ed-bls12-377 MPC protocol.

  • Threshold Aleo keys — generate a t-of-n Aleo computeKey/address pair, with the private key never reconstructed in one place.
  • Sign Aleo requestssignRequest signs the fields of an Aleo program execution request; signBytes produces an Aleo Schnorr signature over arbitrary bytes.
  • View keys & key export — extract an Aleo view key (to decrypt records) or the full private key, either online to a single party or offline from a threshold of shares.
  • Full key lifecycle — refresh, resharing, and key import are all supported, consistent with the other schemes.

See the Aleo signing guide for the full walkthrough and API reference.

DKLs23 Overview

DKLs23 is a cutting-edge MPC protocol designed for secure ECDSA signing.
It offers improved performance compared to DKLs19 which is used in older versions of the SDK.
Generally, up to ~50% reduction in signing time can be expected when using DKLs23 compared to DKLs19 for most use cases.
As signing times are affected mostly by network latency, these gains may vary. In environments where latency between participants is high, the improvements should be the most significant.

Upgrading the SDK to DKLs23

In general, upgrading to DKLs23 is equivalent to a regular version upgrade.
However, in order to utilize the DKLs23 protocol, all parties involved in the signing process must be upgraded to version 1.7.0 or higher, otherwise DKLs19 will be used implicitly.

Important Notes

  1. Keys generated with older versions of the SDK can be used as-is with the new version of the SDK, there is no need to update the key shares as part of this upgrade.
  2. Even though the DKLs23 upgrade is completely backwards compatible, it is not "forwards compatible", meaning that keys generated with SDK versions 1.7.0 and above (using DKLs23) cannot be used with older SDK versions (using DKLs19).
    As the older versions cannot parse newer shares created with the new version.
    Therefore, once a key share is used with the new SDK version, it is best-practice to avoid using it with older SDK versions.
  3. The DKLs-23 implementation has been audited by NCC Group.

Added

Added compatibility for importing wallets from seed phrases.

  • This was done by adding an optional parameter chainCode to the importPrivateKeyImporter method in the SDK.
  • When the chainCode parameter is provided, the SDK will now be able to import wallets that were generated using seed phrases, in addition to the existing functionality of importing raw private keys.
  • To use this feature, derive all hardened child keys from the master key using the BIP32 standard, and provide the corresponding chainCode when importing the private key.
  • This change affects Ecdsa and BIP-340.

Added

  • The following functions can now take a string as the type for their keygenResult argument:
    • exportID
    • sign
    • refresh
    • reshareRemainingParty
    • derivePubkey
    • getSpub
    • exportFullPrivateKey
    • offlineExportFullPrivateKey