aboutsummaryrefslogtreecommitdiffstats
path: root/DKG-Protocol.md
diff options
context:
space:
mode:
authorJimmy Hu <jimmy.hu@dexon.org>2018-09-12 10:09:11 +0800
committerJimmy Hu <jimmy.hu@dexon.org>2018-09-12 10:09:11 +0800
commit0f5b2bbafe71366faf7270fd4eb8b294c0aae699 (patch)
tree6987f042f8e45312b526d46f90a3bcdd6c9e9610 /DKG-Protocol.md
parent2f03697d706eac318982b55fe6bd75e8d457a911 (diff)
downloaddexon-wiki-0f5b2bbafe71366faf7270fd4eb8b294c0aae699.tar
dexon-wiki-0f5b2bbafe71366faf7270fd4eb8b294c0aae699.tar.gz
dexon-wiki-0f5b2bbafe71366faf7270fd4eb8b294c0aae699.tar.bz2
dexon-wiki-0f5b2bbafe71366faf7270fd4eb8b294c0aae699.tar.lz
dexon-wiki-0f5b2bbafe71366faf7270fd4eb8b294c0aae699.tar.xz
dexon-wiki-0f5b2bbafe71366faf7270fd4eb8b294c0aae699.tar.zst
dexon-wiki-0f5b2bbafe71366faf7270fd4eb8b294c0aae699.zip
Updated DKG Protocol (markdown)
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