Question

Problems: 1. Explain in your own words: what is a bitcoin private key, a public key, and a bitcoin address. (2pts) 2. Develop an executable program including the following functions. a.

Randomly generate a 256-bit bitcoin private key presented in hex format (3pts) b. Derive a bitcoin public key with the generated private key using Elliptic Curve Cryptography (ECC) satisfying the secp256k1¹ standard (3pts) 3. Design a simple demo by running your program and include screenshots and/or output results for each function required. (2pts) 4. (Bonus) Improve your program to enable generating private keys using several mnemonic code words (e.g. using 12 words). (2pts) Requirements: 1. Please submit your assignment in one Word or PDF file. 2. Include your source code and screenshots in your submission file. 3. You may use any programming language you are proficient with such as C/C++/Python/Java/Javascript/Shell. 4. Develop your own code from scratch. You may import libraries or toolkits available. Properly acknowledge/refer the libraries and toolkits used in your submission file. 5. This is an individual assignment. Please work on your own.

Fig: 1