aboutsummaryrefslogtreecommitdiffstats
path: root/DKG-Protocol.md
diff options
context:
space:
mode:
Diffstat (limited to 'DKG-Protocol.md')
-rw-r--r--DKG-Protocol.md18
1 files changed, 14 insertions, 4 deletions
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