When Medical Certificates are needed - they’re often not standardised, informal and scattered. Certificate.pdf files end up in anonymous in Downloads folders or unknown email inboxes.
Unless requestors of Medical Certificates handle all of this sensitive information properly (which we can’t assume they will), this is bound to result in sensitive information leaking/being seen by people it shouldn’t.
LegitSick allows its users to selectively disclose a cryptographic proof that a Registered Doctor has created a Medical Certificate, and allows it’s client’s to select how much they wish to disclose when they share their certificate.
contracts- the midnight.network smart contracts that facilitate LegitSick's core functionality.api- an express server that the front end uses to read from midnight testnet.client- a web app to facilitate use of the contracts and circuits.
please see each respective folders README.md for instructions on how to install and run.
Here's a sequence diagram of the current flow:
sequenceDiagram
participant R as Registrar<br/>(Trusted Source)
participant D as Doctor
participant C as Client
participant CR as Certificate<br/>Requestor
Note over R,D: Step 1: Doctor Registration
R->>D: Add doctor to register
activate D
Note right of D: Doctor is now authorized<br/>to issue certificates
deactivate D
Note over D,C: Step 2: Certificate Creation
C->>D: Request medical certificate
activate D
D->>D: Examine client
D->>C: Create certificate record
deactivate D
activate C
Note right of C: Client now has<br/>certificate on-chain
deactivate C
Note over C,CR: Step 3: Selective Disclosure
CR->>C: Request to view certificate
activate C
C->>C: Select which details<br/>to disclose
C->>CR: Send link with disclosed details
deactivate C
Note right of CR: Link contains<br/>selective disclosure proof
Note over CR: Step 4: View Certificate
activate CR
CR->>CR: View disclosed certificate details
Note right of CR: Requestor sees only<br/>the details client chose<br/>to share
deactivate CR
The UI is under development - here is some screenshots:
To run the proof server locally:
docker run -p 6300:6300 midnightnetwork/proof-server -- 'midnight-proof-server --network testnet'


