This document outlines an assignment for a blockchain course. It has three parts:
Part A involves reviewing the code of a basic blockchain implementation to identify key components like node registration and transactions, the proof-of-work implementation, and the use of cryptographic hashing.
Part B tasks the student with analyzing data from blockchain explorers to verify hard forks of Bitcoin into Bitcoin Cash and Bitcoin SV by looking at block metrics like size, hashrate, and time over periods.
Part C asks the student to propose a new consensus mechanism that considers social criteria like equity to enhance decentralization, discussing the scalability-decentralization-security trilemma first.
"Boost Your Digital Presence: Partner with a Leading SEO Agency"
514 assignment
1. BLOC-514 Emerging Topics in Blockchain and Digital Currency
Assignment 2
Part A (25%)
In this part, a baseline implementation (not of industrial strength) of a blockchain system will be
reviewed, which can be also regarded as a lightweight simulator. In this context, you expected to
go through the source code without the demand to modify it (i.e., code inspection only). The
implementation (in Python) is available via the following link:
https://github.com/bitbat-io/learn-blockchain-by-creating-one-in-python/blob/master/blockchain.py
Please consider lines 1–181. For these lines do the following:
i. Mention the main components of the system. These components can be identified by
looking at the parts of code that start with the keyword “def”. For example, in lines 20–33
such a component is implemented, which is responsible for the registration of a node. In
addition, mention*
the dependencies between the identified components, e.g., the
functionality of component X is based on component Y.
ii. Identify the part of code where the Proof-of-Work is implemented and mention its
functionality.
iii. Based on the insights acquired through “Interactive Activity (Session 7)” and “Interactive
Activity (Session 8)”, answer the following: Which cryptographic hash function is used?
Also, mention the specific purpose of that function as being used throughput the present
implementation.
*
Note. No programming background is required. Also, brief and high-level (i.e., no technical
details) descriptions are adequate.
Part B (35%)
In this part, you may follow the visualization/analysis approach introduced in “Interactive Activity
(Session 9)” and “Interactive Activity (Session 10)”. Using one (or more) online blockchain
explorer(s), e.g., https://bitinfocharts.com/, verify the realization of the hard forks that caused the
creation of Bitcoin Cash and Bitcoin SV (i.e., check whether the underlying motivation/plan was,
in practice, used by the respective community). Specifically, collect appropriate block-related
information/metrics*
for a time period (or more) for: (i) Bitcoin, (ii) Bitcoin Cash, and (iii) Bitcoin
SV. Briefly report your methodology regarding the data collection and analysis along with a
concise presentation and discussion of your findings (e.g., provide possible explanations for the
observed patterns in the data, if any). For example, you may investigate whether the announced
block size increment was used in practice. In the context of this investigation, and given a specific
metric, you may utilize and report plots that show the respective Bitcoin vs. Bitcoin Cash vs.
Bitcoin SV differences with respect to the considered time period(s).
*
Note The block-related information can include metrics such as block size, hashrate, block time,
etc. Those metrics, as well as the time period(s) for which those metrics are considered, are left at
your discretion, while they should be justified. It is recommended to use more than one metric.
Part C (40%)
Suppose that you are providing consulting services to a firm that designs and develops consensus
mechanisms. Specifically, you are assigned to propose a new consensus mechanism based on social
criteria. For the development of your proposal, you may use the following structure.
i. First, briefly discuss the role of consensus algorithms with respect to the “scalability-
decentralization-security” trilemma.
ii. Briefly propose a consensus mechanism that takes into account social criteria (e.g., social
equity) for enhancing the decentralization property.
Note. Recommended length: 500-750 words (approximately).