Skip to content

Commit

Permalink
Merge pull request #76 from zkSNACKs/network_identity_states
Browse files Browse the repository at this point in the history
network identity state diagram
  • Loading branch information
nopara73 authored Jul 13, 2020
2 parents ecc35e5 + e6e3ef8 commit cf7ef40
Show file tree
Hide file tree
Showing 3 changed files with 91 additions and 0 deletions.
46 changes: 46 additions & 0 deletions diagrams/network_identity_states.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
33 changes: 33 additions & 0 deletions diagrams/network_identity_states.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
@startuml
hide empty description



[*] -> ready

state "Ready" as ready
state "Input\nRegistered" as registered_input
state "Connection\nConfirmed" as confirmed_input
state c1 <<choice>>

ready -left-> ready : get\nstatuses

ready --> registered_input : register\ninput

ready--> c1 : confirm\nconnection
registered_input --> c1 : confirm\nconnection

c1 --> registered_input : not_final\n(zero creds)
c1 --> confirmed_input : final\n(real creds)

ready--> [*] : signature
confirmed_input --> [*] : signature

ready --> [*] : deregister\ninput
registered_input --> [*] : deregister\ninput

ready --> [*] : register\noutput

ready --> [*] : reissue\ncreds

@enduml
12 changes: 12 additions & 0 deletions protocol.md
Original file line number Diff line number Diff line change
Expand Up @@ -192,3 +192,15 @@ The following shows the coordinator's state transitions pertaining to a
specific UTXO, possibly spanning multiple rounds.

![UTXO states](diagrams/utxo_states.svg)

## Network Identity State Diagram

The following diagram shows the client's state transitions for a specific
identity. Once an identity reaches the terminal state the identity must no longer
be used. If a connection is broken a new identity may be used to submit
subsequent requests related to the same input (connection confirmations,
signature). Therefore at most one input or output should be associated with a
single network identity to avoid privacy leaks, but multiple network identities
may be associated with a single input or output.

![Network Identity states](diagrams/network_identity_states.svg)

0 comments on commit cf7ef40

Please sign in to comment.