A version written into a manifest is written into every manifest that wants it, which is how eslint came to exist in a hundred and four forms across this estate and how a package came to resolve twice at run time. The catalog moves the number out of the manifest: a manifest names the package, the workspace names the version. Four are held below their latest because the newer release cannot be used, and the reason is recorded rather than the version alone: @noble/hashes 2 renamed every subpath the web3 stack imports, @splinetool/runtime 2 depends on a package that was never published, @dynamic-labs 5.4.1 the same, and react-resizable-panels 3 points its types condition at the bundle.
Multi-party ECDSA
This project is a Typescrypt & Rust implementation of {t,n}-threshold ECDSA (elliptic curve digital signature algorithm) for Teleport bridge protocol.
CAUTION: Current project is for testing in local environment without any containers, and will be updated soon
Library Introduction
The library was built with four core design principles in mind:
- Multi-protocol support
- Build mpc oracle nodes for teleport bridge
- Testing purpose
Setup
-
You need Rust and GMP library (optionally) to be installed on your computer.
-
- Run
cargo build --release --examples - Don't have GMP installed? Use this command instead:
But keep in mind that it will be less efficient.
cargo build --release --examples --no-default-features --features curv-kzen/num-bigint
Either of commands will produce binaries into
./target/release/examples/folder. - Run
Run GG18 sm_manger
- Run
cd sm_manager - Run
cargo build --release --examples - Run
./target/release/examples/gg18_sm_manager
Run fist mpc node
- Run
cd mpc_node_0 - Run
pnpm install - Run
cd ./src/multiparty
build multiparty library
- Run
cargo build --release --examplesOnce build is done, move /target/release/examples and edit client name i.e. gg18_sign_client -> gg18_sign_client0 (0 is index of mpc node)
edit env variables according to example.env file
Run second mpc node
Build second node accordig to above instruction
Example
Once two sm_sign_manager, and two mpc nodes are running successfully, you can test sign function by send http request Please refer to ./requests
References
[1] https://eprint.iacr.org/2017/552.pdf
[2] https://eprint.iacr.org/2019/114.pdf