From 0f5b2bbafe71366faf7270fd4eb8b294c0aae699 Mon Sep 17 00:00:00 2001 From: Jimmy Hu Date: Wed, 12 Sep 2018 10:09:11 +0800 Subject: Updated DKG Protocol (markdown) --- DKG-Protocol.md | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) (limited to 'DKG-Protocol.md') diff --git a/DKG-Protocol.md b/DKG-Protocol.md index 535d3c7..631f560 100644 --- a/DKG-Protocol.md +++ b/DKG-Protocol.md @@ -1,31 +1,41 @@ DEXON DKG Protocol =========================== -Phase 1 ID Registration +### λ = One gossip time +Phase 1 ID Registration ------- +### @ T < 0 + Each validator register its ID with stack. Phase 2 Secret Key Share Exchange ------- +### @ T = 0 Each validator `i` generates `n` (`n` = # of ID registered in phase 1) secret key shares (`SK_i,0, SK_i,1, ..., SK_i,n`) of order `t` and the secret key share is sent to the corresponding validator (`SK_i,j` is sent to validator `j`) via a secure channel. Each validator `i` broadcast the master public key (`PK_i`) associated with the secret key shares. +Phase 3 Complaint +------- +### @ T = 2λ Each validator `i` verify if the secret key share `SK_i,j` is associated with the master public key of validator `j` `PK_j`. If the verification fails, `i` broadcast complaint of `j`, `CMP_i,j`. -Phase 3 Disqualify Byzantine Node +Phase 4 Disqualify Byzantine Node ------- +### @ T = (2λ, 4λ) If there are more then `t` complaints to validator j (`SUM_i CMP_i,j > t` (`i` : for all validator `i`)), then `j` is marked as **Disqualified**. Each validator `i` determines the combined secret key, `CSK_i = SUM_k SK_k,i` (`k`: validator `k` is not marked as **Disqualified**) Each validator `i` determines the combined public key for all validator `j`, `CPK_j = SUM_k PK_k,j` (`k`: validator `k` is not marked as **Disqualified**) -Phase 4 Sign with CSK +Phase 5 Sign with CSK ------- +### @ T = 4λ Each validator `i` sign the message with `CSK_i` and broadcast the signature, `Sign_i`. -Phase 5 TSIG +Phase 6 TSIG ------- +### @ T = (4λ, +inf) Verify `Sign_i` with `CPK_i`. Collect more than `t` valid `Sign_i` and recover TSIG. \ No newline at end of file -- cgit v1.2.3