This repository contains a Python-based simulation of a Zero-Knowledge Proof (ZKP) system using elliptic curve cryptography. It demonstrates a scenario where a borrower proves they meet certain credit score criteria to a lender without revealing their actual score.
The project simulates a lending process where borrowers can prove that their credit score falls within certain categories (excellent, fair, poor, or not qualified) without disclosing the actual score. It uses elliptic curve digital signatures to create and verify proofs.
- Python 3.x
- Libraries:
ecdsa
,ipywidgets
To set up the project, clone this repository and install the required Python libraries.
git clone https://github.com/mickymult/ZeroKnowledgeProofs.git
cd ZeroKnowledgeProofs
pip install ecdsa ipywidgets
Run the Jupyter Notebook (ZKP-ZeroKnowledgeProofs.ipynb
) in a Jupyter environment or Google Colab. The notebook is divided into sections:
- Key Generation: Generates cryptographic keys using elliptic curve cryptography.
- Proof Creation: Allows a borrower to enter their credit score and generates a proof for their score category.
- Proof Verification: Enables a lender to verify the borrower's proof without learning the actual credit score.
- Interactive UI: Use sliders and buttons to simulate the process interactively.
Contributions to this project are welcome. Please fork the repository and submit a pull request with your changes.
This project is licensed under the MIT License
This project is for educational purposes and demonstrates the basic concepts of Zero-Knowledge Proofs and elliptic curve cryptography in a simplified manner.