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}