Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

BLS and Distributed Key Generation (DKG) #25

Open
lunfardo314 opened this issue Jul 30, 2020 · 1 comment
Open

BLS and Distributed Key Generation (DKG) #25

lunfardo314 opened this issue Jul 30, 2020 · 1 comment

Comments

@lunfardo314
Copy link

Description

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

  1. 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.
  2. Validation of consistency of generated distributed key sets
  3. Storing and managing registry of private key shares with relevant metadata.
  4. Secure backup and transfer of key(s) with metadata to another Stronghold instance
  5. Go binding for Stronghold.

Open questions (optional)

  • particular DKG protocols and algorithms

Are you planning to do it yourself in a pull request?

No.

@nothingismagick
Copy link
Contributor

@nothingismagick nothingismagick transferred this issue from iotaledger/stronghold.rs Dec 3, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants