Threshold secret sharing in SUAVE chain for signing key management
SUAVE trusted execution environment is used to coordinate threshold secret sharing, where a user's signing key is split into multiple shares and stored in different SUAVE nodes. Users can then submit transaction calldata, where the signing key is reconstructed inside SUAVE to sign the transaction calldata. The resulting signed transaction can be submitted to other chains. As such, the user does not need to manually manage multiple keys on different chains.
We primarily use Flashbots SUAVE for this project. The Shamir secret sharing library is written in Solidity, and the threshold secret sharing is also coordinated in smart contracts. We use suave-std library to store and retrieve private data (key share) in the confidential data store of SUAVE's node. We also use Typescript and Bun to submit transactions to the SUAVE chain.