Skip to content

leoraclet/unycoin

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

4 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation


Unycoin


license language lastcommit
Language Libraries Size Open Source

Table of Contents

πŸ“– About

Warning

⚠️ This project was started even before I entered high school because I wanted to understand how Bitcoin worked. I almost didn't touched this project since then.

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

Security

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.

Efficiency

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.

✨ Features

  • 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

πŸ“¦ Structure

Directories

  • assets - Resources
  • src - Source files and modules
  • tests - Test files and modules

πŸ”Œ Modules

Cryptography

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

πŸ“š Libraries

Note

None, everything was re-implemented from Scratch for learning purposes

πŸš€ Install & Run

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

❀️ Thanks

Resources that guided me :

*and many more hours of research ton internet to finally understand how Bitcoin works (the only TRUE cyrptocurrency btw)

πŸ“œ License

This project is licensed under the MIT License - see the LICENSE file for details.

About

πŸͺ™ A pure python cryptocurrency implemented from scratch, based on Bitcoin

Topics

Resources

License

Stars

Watchers

Forks

Languages