ecadlabs / taquito

A library for building dApps on the Tezos Blockchain - JavaScript / TypeScript
https://taquito.io
Apache License 2.0
297 stars 117 forks source link

Add support for BLS signatures (tz4 prefixed addresses) #2271

Open dsawali opened 1 year ago

dsawali commented 1 year ago

Support for BLS signatures and introduction of a new account type whose address has the prefix tz4 (whose keys are BLS-MinPk key pairs). The CHECK_SIGNATURE instruction of Michelson can also check BLS signatures. tz4 accounts are forbidden to be delegates.

Mumbai Protocol update adds further support in Michelson for tz4 prefixed addresses (BLS signatures). We want to support these changes in Taquito.

relevant links:

dsawali commented 1 year ago

Need a bit more info:

dsawali commented 1 year ago

putting this back to the backlog due to these factors:

Added with the fact that tz4 address support for signing operations aren't particularly mandatory in order for users to use Taquito effectively.

dsawali commented 1 year ago

We now have the es-blst package published under the ECAD organization: https://github.com/ecadlabs/es-blst

We encountered several difficulties when trying to integrate the package into Taquito to help sign tz4 addresses.

Some of these can be fixed when Taquito supports ESM, or if we can find a non-hacky workaround for CJS solutions.

relevant thread: https://ecadlabs.slack.com/archives/CMX5YM1AM/p1681428681752089

Innkst commented 1 year ago

New package uses ESM that is of a newer version than the rest of Taquito packages. In the long run, we want to have support for both ESM and CJS, but it will be a step by step process. We will start with the new async signer package for BLS only that would support both ESM and CJS. It will bubble up to the rest of the packages where required. we will create a separate repo for BLS tz4 signatures and it will match with how other curves supported outside of taquito set of packages.