Simple blockchain project node using ECDSA technology that demonstrates the power of public key cryptography in securing transactions between local accounts. With this project, you can safely transfer funds locally from one account to another using digital signatures, which ensure that only the user with the appropriate private key can authorize a transaction.
- Public key cryptography: Transactions are secured using digital signatures that verify the identity of the sender.
- Private key ownership verification: Users must verify that they own the private key corresponding to the address that is sending funds.
- Centralized server: Transactions are processed by a single server, which ensures consistency and security.
- Local Wallet: Users can create a wallet and store their private key locally.
- Transaction history: Users can view their transaction history and balances: To be implemented
- Trust in server operator: Since the server is centralized, users must trust the operator not to act maliciously.
- Centralization: The centralized nature of the server may limit scalability and decentralization efforts.
- Simplified implementation: This project is intended as a learning exercise and does not include all the features or complexities of a real-world blockchain.
The client folder contains a react app using vite. To get started, follow these steps:
- Open up a terminal in the
/clientfolder - Run
npm installto install all the depedencies - Run
npm run devto start the application - Now you should be able to visit the app at http://127.0.0.1:5173/
The server folder contains a node.js server using express. To run the server, follow these steps:
- Open a terminal within the
/serverfolder - Run
npm installto install all the depedencies - Run
node indexto start the server
The application should connect to the default server port (3042) automatically!
- Use nodemon instead of
nodeto automatically restart the server on any changes.
- Blockchain Basics: An introduction to blockchain technology
- Bitcoin Whitepaper: The original Bitcoin whitepaper by Satoshi Nakamoto
- Ethereum Whitepaper: The Ethereum whitepaper by Vitalik Buterin
- Elliptic Curve Digital Signature Algorithm (ECDSA): An explanation of ECDSA on Wikipedia
- Secp256k1: The elliptic curve used by Bitcoin and other cryptocurrencies
This project is licensed under the MIT License
Bourseau Julien - 2nd year student at Ensimag, 2022 - Linkedin
Project Link: Minimal-blockchain

