mpc_wallet_core/keygen/messages.rs
1//! DKG protocol messages
2
3use serde::{Deserialize, Serialize};
4
5use crate::PartyId;
6
7/// Round 1 DKG message: commitments to secret polynomial
8#[derive(Debug, Clone, Serialize, Deserialize)]
9pub struct DkgRound1Message {
10 /// Sender's party ID
11 pub party_id: PartyId,
12 /// Commitments to polynomial coefficients (each commitment is a compressed EC point)
13 pub commitments: Vec<Vec<u8>>,
14}
15
16/// Round 2 DKG message: secret share for a specific party
17#[derive(Debug, Clone, Serialize, Deserialize)]
18pub struct DkgRound2Message {
19 /// Sender's party ID
20 pub from: PartyId,
21 /// Recipient's party ID
22 pub to: PartyId,
23 /// The secret share (32 bytes)
24 pub share: Vec<u8>,
25}