To implement DKG and distributed private key management for BLS threshold cryptography
Motivation
IOTA Smart Contract security depends on the key management. Essentially, IOTA Smart Contract is a distributed automated wallet.
each participation and identity of the Wasp node in a smart contract is represented by a partial private key share. It must be generated by the participating node during Distributed Key Generation (DKG) protocol session, based on BLS cryptography, Shamir secret sharing etc. The DKG protocol is security sensitive. Each Wasp node keeps its generated private keys for each contract's lifetime.
by hacking private keys from the part of Wasp nodes would allow to stop smart contract from running. The event of stealing keys from the quorum of nodes will mean take over of the smart contract by the malicious party.
the feature of the Stronghold would be to include secure implementations for the BLS signature generation and signing, DKG protocol and secure registry for keys. In the future, in hardware.
as Wasp node is implemented in Go, there's a need for Go bindings of Stronghold
Requirements
Decentralized and secure DKG protocol for BLS threshold private key shares with metadata. Only participants can know private keys and no third party can know or reconstruct the master key.
Validation of consistency of generated distributed key sets
Storing and managing registry of private key shares with relevant metadata.
Secure backup and transfer of key(s) with metadata to another Stronghold instance
Go binding for Stronghold.
Open questions (optional)
particular DKG protocols and algorithms
Are you planning to do it yourself in a pull request?
Description
To implement DKG and distributed private key management for BLS threshold cryptography
Motivation
Requirements
Open questions (optional)
Are you planning to do it yourself in a pull request?
No.