Description
Implementing BTC Blocks
1. Assignment
Implement Bitcoin blockchain data structure. This will be done in the following steps:
• Define 6 users – requires creating EC public key pairs for six different users. Can be done either on the command line using OpenSSL or in a program using OpenSSL libraries. Requires:
understanding EC key generation and storage.
• Create coin transactions for the 6 users. Start initially with One user having all the coins, which are then transferred to other users and then traded between users. Requires: Understanding BTC transaction data structures. EC encryption, decryption and EC signatures.
• Create a Merkle tree for the transactions. What a Merkle tree is and how to create one is covered in class. Requires: Hashing and DSA signatures.
• Create genesis block.
• Add set of five blocks to the genesis block
• Provide within the program verification that each cryptographic primitive is being done correctly
2. Expected environment
• Debugger, like GDB, suggested,
• Open SSL (Used for calling cryptography primitives)
3. To compile with gcc
• gcc –g –o block block.c –lssl -lcrypto
4. To run either:
• ./block
• gdb ./block
• Emacs block.c o $x gdb-many-windows o $x gdb
o $x gdb-display-memory-buffer
o break main o r o s




Reviews
There are no reviews yet.