联系方式

  • QQ:99515681
  • 邮箱:99515681@qq.com
  • 工作时间:8:00-21:00
  • 微信:codinghelp

您当前位置:首页 >> Python编程Python编程

日期:2023-11-30 10:55

COMP4142 E-PAYMENT AND

CRYPTOCURRENCY

Project Specification

Objective

Have an in-depth understanding on how the blockchain system works.

Be able to write a UTXO (unspent transaction output) blockchain platform.

Requirements

This is a group project (group size 5-6 recommended). Please allocate among

yourselves the tasks and indicate the contributions made by each one of you. All

team members need to have fairly equal contributions in this project. A workload

table and contribution list need to be included in the project report.

A group of 2 students or less can have full marks even with fewer functions

implemented (this will be judged by TA/instructor). We still hope you can finish

most functions, which is the purpose of the group project. To be fair, with fewer

students, some difficult functions may not be finished. A group of 7 or 8 students is

allowed and more functions/features should be designed, justified, and reported.

For instance, we have 6 goals to achieve. 7 students need to achieve another 1

critical goal and 8 students need to achieve 2 more.

Please write the documents in your own words and make sure the materials used

have been properly referenced. Please notice the PolyU plagiarism booklet:

http://edc.polyu.edu.hk/PSP/Plagiarism_Booklet.pdf

Project Schedule

1. Grouping: Nov. 11, 2023

2. Demonstration: Dec. 1, 2023 (In the class)

3. Submission of all project deliverables: Dec. 6, 2023, in the blackboard

Please see the project submission part for more information about the project

demonstration and final project deliverables.

Note: Late submission will be penalized unless there is a proper reason justified.

Goals

1. Blockchain Prototype: construct the blockchain system according to the

following structure. The block should have the following basic content.

a) Index: the height of the current block.

b) Timestamp.

c) Previous Block Hash.

d) Current Block Hash.

e) Difficulty: the number of bits at the beginning of block hash, dynamic

change.

f) Nonce: the random number used to calculate the block hash.

g) Merkle root of transactions.

h) Data: transaction.

2. Mining and UTXO: implement a dynamic-difficulty Proof-of-Work algorithm.

a) Design a Proof-of-Work algorithm. For example, adjust the nonce and

generate a hash until it has a hash with a leading number of zeros.

b) Achieve dynamic difficulty. For example, adjusting the difficulty of the

current block dynamically based on the time taken to generate the

previous (10, 20, or more) blocks.

3. Transaction: implement pay-to-public-key-hash (P2PKH) transactions and

verify transactions.

a) Implement pay-to-public-key-hash (P2PKH) transactions.

b) Use asymmetric cryptography to create digital signatures and verify

transactions.

4. Network: basic interactions and validation should be realized.

a) Create an API to broadcast the new blocks and get the blocks from the

other nodes. The API should allow a user to interact with the blockchain

by the HTTP request, socket, or different ports.

b) Achieve a function to check if the new blocks that we receive from other

miners are valid or not. (Hint: recompute the hash of the block and

compare it with the given hash of the block.)

5. Storage: choose your database in the implementation.

a) Store the raw data of the whole blockchain in the disk.

b) Store the latest state (e.g., chain height, full node list, neighbor list) of the

blockchain in memory.

c) Store the transactions (UTXO) in a transaction pool.

6. Wallet: manage all transactions that you can spend.

You could refer to some open-source projects to implement your blockchain

system but you must refer to them in your report. Otherwise, it could be seen as

plagiarism.

Project Submissions

1. Project Presentation and Demonstration

Date: Dec. 1, 2023

In the class, 2-3 members can do the presentation.

2. Final Deliverables

Deadline: Dec. 6, 2023

The final submission (softcopy) contains the following items for each group:

1) A group report (pdf format, no page limits) to show how you implemented

the blockchain system and how you achieved the 6 goals. You could also

include what you have learned or tried but not demonstrated or included in

this project. Please also denote any coding/description referring to other

sources (e.g., using ChatGPT).

2) Each student needs to submit a short individual report (no more than half a

page), where you should describe your responsibility and contribution in

detail.

You should include all the required documents in a compressed file (.rar, .7z, etc.).

Each group only needs to submit once and name it after one group mate.

Note: The softcopy files should be submitted to the blackboard.

Grading Scheme

Total marks 100

1. Blockchain Prototype 12 (lab 3, referring code in

lab 1)

2. Mining and UTXO 12

3. Transaction and Verification 12

4.Network 8

5. Storage 8

6. Wallet 12

7. Presentation (time control, clear logic) 12

8.Demonstration (real, interactive) of all functions 16

9. Group report and individual contribution 8

Presentation Note: Suppose a 10-minute presentation for each group. Include 4

minutes for slide presentation to talk about how you implement 1-6. Another 4

minutes for the real-time, interactive demonstration with TA. The left 2 minutes for

Q&A.


版权所有:编程辅导网 2021 All Rights Reserved 联系方式:QQ:99515681 微信:codinghelp 电子信箱:99515681@qq.com
免责声明:本站部分内容从网络整理而来,只供参考!如有版权问题可联系本站删除。 站长地图

python代写
微信客服:codinghelp