New version is out, and with that a move to blsttc_ui
The renamed site is https://iancoleman.io/blsttc_ui/
New renamed repo is GitHub - iancoleman/blsttc_ui: UI for blsttc rust library
Standalone file is in the releases 0.4.0: Release 0.4.0 · iancoleman/blsttc_ui · GitHub
v0.4.0 is a really exciting step and feels close to being more than just a prototype.
The big change is to move from threshold_crypto to blsttc library, which was done for two main reasons:
data serialization is done in a consistent / documented / tested way using
from_bytes. This means bincode is not used any more (yay!).
signatures are now bbs+ signatures which are compatible with virtually every other user of bls12-381 (eg chia, eth2 etc).
The serialization thing is pretty huge imo. Being able to settle on a particular format for
Commitment data (and
Ciphertext etc) makes them more portable and usable beyond just this tool (although I don’t know anyone using these kind of keys yet). Poly is sorta equivalent to bip32 xprv and Commitment is sorta equivalent to bip32 xpub.
Prior to this we only had portable secret keys and public keys, so hopefully we can see Poly and Commitment style keys become more widely used.
Now we can start to really think seriously about key management. EIP2333 is another similar key management tool but is a little constrained since it doesn’t have the concept of master public key for deriving child keys (only a master secret, at least as far as I know). So I’m really pumped about Poly and Commitment hopefully becoming easier to use.
Shoutout to github user glitch003 for giving some tips on how to get blst working with wasm in this issue. It was incredibly helpful and good timing considering this was an unprompted issue he raised at just the right time.
One small detail is I tried adding a
single-threaded feature flag to blst, which worked for tests, but when I tried to compile to wasm using that feature flag it didn’t seem to omit the threading. I’ll have to look further into that (any help is welcome), but in the meantime I’ll be using this single_thread branch in the tool, which I’ll do my best to keep up to date with blst master branch.