Skip to content

Created-for-a-purpose/CuriSapphire

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

43 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

CuriSapphire (Submitted to Privacy for Web3 Hackathon)

Your Health, Your Data, Your Control πŸ›‚

CuriSapphire empowers user privacy by leveraging the Sapphire paratime and ZKPs. Enhanced privacy and tokenized data allow us to help create the first-ever responsible data economy.

Getting Started

image

Select your role, enter your details and experience a smooth and gasless onboarding process.

image image

Gasless transactions are implemented throught a Gasless Proxy Contract (Proxy.sol) which implements an on-chain signer.

image

User details, labs reports and prescriptions are going to be available in the dashboard section. You will be asked to make a signature to verify that you are indeed who you claim to be for data retrieval from the chain. This signature will be kept in the Context API for reuse until the next re-render.

image

Patient-Doctor interactions

In some cases, the doctor might need to see your (patient's) medical history for prescribing medications. But, sharing something like your medical history can seem like giving away a lot of private information. So, is there any way you could prove some statements to your doctor so that they may take well informed decisions and you do not have to compromise your privacy? Yes, the answer is Zero Knowledge Proofs (ZKPs). You can generate ZKPs to verify some of the doctor's requests while maintaining confidentiality. ZK proofs are implemented using the snarkjs library and circom circuits.

image

After generating proofs, you can share your latest lab report data with your doctor through data tokenization, implemented by the Tokenization.sol smart contract. A token will be issued by you to your doctor, and will have limited time validity after which it becomes in-accessible.

image

Patient-Pharmacy interaction

Sharing details such as prescription issue date, issuer of prescription, etc. can compromise patient privacy. Instead, you can generate ZKPs to prove that your issued prescription is still valid without revealing the exact dates of issue.

image

After verifying the generated proofs, your medicine and dosage details will be tokenized on your confirmation and shared with the pharmacy for medication orders. The tokenized data will be accessible for a limited amount of time.

image

As not all medicines require a prescription, we have used an AI model to decode your intent and extract information from it to place medication orders. image image

Creating a responsible data economy

Tokenized data opens use-cases where data providers can benefit financially from their data contribution.

image

People like researchers, are in the need of medical data for their research purposes and medical analysis. They can provide financial incentives to the data providers in exchange of their data for a fixed amount of time. The data provider can stake their data for this time and earn stake rewards.

image

The data provider can check if they meet the researcher's prime requirements by generating and verifying ZKPs and not having to reveal their data just for verification. After successful verification of the proofs, the data provider can stake their data for the given amount of time and accepting the stake reward proposed by the researcher.

image

That's all for now, folks!

Instructions to setup the project locally

  1. Clone this repo
  2. Go to directory "frontend" and execute "npm install --force"
  3. Run the node.js server in the "ZKP" directory through "node index.js"
  4. Execute "npm start" in the frontend directory, connect your wallet and that's it!