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 and Remove parties #17
Conversation
Hi!
EDIT: I see that that's because |
Another thing, IIUC the approach you talk is as follows: Instead we could do the following: Notation: So |
I need to take this on paper, if you have any links to check on this, it would be very useful! |
src/add_party.rs
Outdated
impl JoinMessage { | ||
pub fn distribute() -> (Self, Keys) { | ||
let new_party_key = Keys::create(0); | ||
let (dlog_statement, composite_dlog_proof) = generate_dlog_statement(); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm confused, this is generating a proof for some random paillier key that isn't saved?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, @omershlo explained it in the telegram conversation. It confuses me as well, but I understood that it's like system parameters that are submitted, we don't care about the secret at all.
src/add_party.rs
Outdated
for refresh_message in refresh_messages.iter() { | ||
if refresh_message.public_key != refresh_messages[0].public_key { | ||
return Err(FsDkrError::BroadcastedPublicKeyError); | ||
} | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Are the parties signed on this or something? how do you know they actually sent that? (as I think the whole point is that we do not require secure channels)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
For the key to be generated, all other parties need to validate the same public key. I know that @omershlo mentioned that we should be able to verify everything in the message, but for now, this is good enough and we can continue working on it.
src/add_party.rs
Outdated
ni: h2, | ||
}; | ||
|
||
let composite_dlog_proof = CompositeDLogProof::prove(&statement, &xhi); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
we need two composite dlog proofs here. copy from here: https://github.com/ZenGo-X/multi-party-ecdsa/blob/master/src/protocols/multi_party_ecdsa/gg_2020/party_i.rs#L232-L246
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I believe that both proofs and statements needs to be attached and verified, but which of them we use in the h1_h2_N_tilde_vec? The one with the base in h1, right? I've implemented this, tell me if it's fine.
No description provided.