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

Add generic threshold aggregation functionality to DKG #522

Closed
corverroos opened this issue May 13, 2022 · 0 comments
Closed

Add generic threshold aggregation functionality to DKG #522

corverroos opened this issue May 13, 2022 · 0 comments
Assignees
Labels
enhancement New feature or request
Milestone

Comments

@corverroos
Copy link
Contributor

corverroos commented May 13, 2022

Problem to be solved

At this point, DKG supports distributed aggregation of lock hash partial signatures.
There are however additional aggregation signatures that should be created as part of the DKG command.

This includes:

  • Threshold aggregate signature of deposit data message roots (one for each validator).
  • Maybe other things...?

The current signing logic:

  • is actually broken, since all peers should complete wiring BEFORE any peer sends a message (otherwise those messages are dropped).
  • only supports single lock hash signing and aggregation by all validators.

Proposed solution

  • Refactor DKG to support "general distributed aggregation of partial signatures".
  • Do this by extracting a aggregator type/function.
  • It should be wired and constructed before any peers send signing messages (before switch def.DKGAlgorithm step).
  • It should provide a function Aggregate(core.ParSignedDataSet) (map[core.PubKey]core.AggSignedData, error)
  • It should use the aggSignLockHash logic at its core (including parsigdb and parsigex and a custom sigAgg function).
  • This Aggregate function will then be called after creating a core.ParSignedDataSet for the lock hash (same hash for all pubkeys)

Out of Scope

  • This Aggregate function will later be after creating a core.ParSignedDataSet for the deposit datas hash (different hashes for each pubkey).
@corverroos corverroos added the enhancement New feature or request label May 13, 2022
@dB2510 dB2510 added this to the Devnet 2 milestone May 18, 2022
obol-bulldozer bot pushed a commit that referenced this issue May 18, 2022
Adds minimal exchanger struct with methods to get []core.ParSignedDataSet.

category: feature
ticket: #522
obol-bulldozer bot pushed a commit that referenced this issue May 20, 2022
Adds signing and aggregation of lock hash and deposit data to dkg.

category: feature
ticket: #522
@dB2510 dB2510 closed this as completed May 20, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants