Blockchain
Published:
We implemented a fully functional peer-to-peer blockchain network written in Python. This system supports decentralized transaction validation, dynamic mining difficulty, Merkle tree-based verification, cryptographic signatures, and automated testing — all with a GUI wallet interface.
Features
Blockchain with Proof-of-Work:
- Adjustable mining difficulty based on mining frequency
- Reward transaction for the block miner
Digital Signatures
- ECDSA signatures for all transactions
- Peers auto-generate public/private key pairs
- Transactions are signed by sender and verified before inclusion
Merkle Trees
- Merkle root stored in each block
- Enables Simplified Payment Verification
Peer-to-Peer Networking
- Peers discover others via a central tracker
- Peers broadcast transactions and blocks to the network
- Syncs longest valid chain automatically
Dynamic Mining Difficulty
- Mining difficulty increases if certain conditions are met.
GUI Payment System
- Visualizes blockchain & peers
- Sends transactions, mines blocks, verifies transactions by ID