- Table of Contents
- π About
- β¨ Features
- π¦ Structure
- π Modules
- π Libraries
- π Install & Run
- β€οΈ Thanks
- π License
Warning
This project is a pure Python implementation of a cryptocurrency inspired by the original concept introduced in Satoshi Nakamoto's whitepaper: Bitcoin: A Peer-to-Peer Electronic Cash System.
Important
All cryptographic protocols and functions in this project are implemented according to their official specifications. The ECDSA algorithm is secured against side-channel attacks by using the Montgomery Ladder technique for point multiplication on elliptic curves.
Since this project is written entirely in Python, the cryptographic protocols are way less efficient compared to implementations in lower-level languages like C++. However, for general tasks such as networking, Python provides sufficient performance.
-
Project
-
π Reproducible: Built with uv, this configuration can be effortlessly reproduced on other machines, ensuring a consistent setup.
-
π Documented: Most of the parts of my source files are commented and documented with links and explanations if necessary
-
-
Program
Directories
This module implements all cryptographic protocols and primitives that are necessary to ensure cryptocurrency's security and integrity. All protocols were implemented from scratch in pure python based on their official description.
Here is the implemented ones :
- Base 58
- Ecdsa
- AES
- Bloom filter
- Murmur hash
- Merkle tree
- Sparse merkle tree
- Ripemd160
- Sha256
Note
None, everything was re-implemented from Scratch for learning purposes
First, ensure you have the uv
python package manager installed.
If so, then clone the repo
git clone https://github.com/leoraclet/unycoin
cd unycoin
Create a virtual environment for Python if you want to add package in the future
uv venv
Resources that guided me :
*and many more hours of research ton internet to finally understand how Bitcoin works (the only TRUE cyrptocurrency btw)
This project is licensed under the MIT License - see the LICENSE file for details.