Bitcoin is the most famous digital currency we know today.
Many online shops have started to accept bitcoin as a payment method and many
are to follow. Living in a world where developing new technology is the key to
success, Bitcoin attracted many investors over the years.
Bitcoin faced many opposition from different Altcoins.
An Altcoin is a virtual currency that have been built after the success that
Bitcoin had over the years. Coins like Ethereum, Zcash and many others offer
newer and more innovative software (faster transaction speed, proof-of-stake,
privacy, etc.) 2. Zcash provide better privacy by hiding the sender,
recipient and the value on the blockchain 3, while Ethereum provide faster
transactions and it is mainly a platform for developers to build applications 4.
However, no matter what is the name of the digital currency, each one uses
blockchain technology. With all this competition, Bitcoin is still leading the
market and probably will still be on top in the years to follow.
Bitcoin is a peer-to-peer network, meaning that the money is
transferred directly from one person to another. The difference between
traditional online payment and Bitcoin is that Bitcoin offers a lower
transaction fee and is operated by a decentralized authority. Bitcoins are not printed like pounds or other cash
money. A process named mining needs to happen in order to create new blocks of
Bitcoin. It involves having powerful computers in order to complete a
computational problem which has as aim to discover new blocks and adding them into
the blockchain. By solving the puzzle, you receive a reward in form of new
bitcoins; in 2009, when Bitcoin first started, the reward for discovering a new
block was 50 bitcoins and every 4 years this reward has decreased. The
difficulty of the mining process is increasing due to the
number of bitcoins that are generated; between 2009 and 2017 the mining
difficulty increased by a factor of 4.27 billion. The value of Bitcoin is
dependent on the size of its network 5.
in Bitcoin involves risks that you must take in consideration. One of the risks is that the price may heavily decrease
one day due to the fact that Bitcoin’s value is volatile being dependent on its
network. Because everything is done online, and being a one-way exchange,
you need to defend yourself against hackers who can get access to your PC and
start transferring money to their accounts.
Talking with my supervisor about what should I do for my 3rd
year project, he suggested me to build an e-learning application. I have
started to understand more about e-leaning apps and how I ca build one, and
found out that constructing an application will not be beneficial just to my
project, but to other people as well.
The goal of the project is to help the users of the
app to understand the Bitcoin world better, what happens when you make a
transaction and the related processes. Features such as the ability to
visualize a blockchain as a linked- list of transactions, basic steps of how
mining and proof-of-work are implemented will be available on the application.
Background and report of literature
literature regarding Bitcoin is “Bitcoin: A Peer-to-Peer Electronic Cash
System” by Satoshi Nakamoto in which he explains the concept behind the most
famous digital currency nowadays. The paper states that Bitcoin is a solution
for the double-spending problem by removing the need of a trusted third party,
meaning that any two users could make direct transaction between them. For this
to happen, Satoshi Nakamoto said: “a peer-to-peer distributed timestamp server
to generate computational proof of the chronological order of transaction” it
is needed. When the owner of the coin wants
to make a transfer to another user, he needs to sign a hash of the previous
transaction digitally as well as the public key of the user he transfers the
coin and adding them to the contract. The receiver
can check the sign in order to verify the chain of ownership Fig 1.
double-spending problem is resolved by making the transactions public, so that
the payee can see that the owner of the coin is not making another transaction
using the same coin.
The solution for the double-spending problem is discussed by Wei Dai in his paper: “b-money” 7. He describes how the exchange of money can be done by untraceable entities, without a third party involved. For this to happened, it must have an untraceable network, which Bitcoin has. The sender of the coin and the payee are identified by public keys and the messages are signed by the sender and encrypted for the receiver. When a solution to an unsolved computational problem is send, it must be acknowledged by everyone with the same value (“if a problem takes 100 hours … and it takes 3 standard baskets to purchase 100 hours of computing time … everyone credits the broadcaster’s account by 3 units”), so a standard conversion needs to be available to every user. Same thing happens when a transaction is made by a user to another one. After the owner makes the transfer public, everyone acknowledge that the amount stated is going in the wallet of the payee and deducted from the owner’s wallet. Because everything is made public, each user can follow the transaction in order to guarantee the correctness of it. So, neither the owner or payee can cheat in order to take control over the transaction.
Wei Dai’s paper, a system is needed in order to get rid of the double-spending
problem, where the participants of the transaction agree on a single order
background. But that system cannot deal with the problem by itself. A timestamp
server was proposed by Satoshi which “works by choosing a hash of a block of
items to be timestamped”. This timestamp guarantees the existence of the data
at the time when the transaction was made. The hash of the timestamp is made
public, because there is no need of a third party; by adding new timestamps, it
will strengthen the previous ones. Fig 2 8.
Bitcoin seems to be an original concept, designs from
other persons who were interested in cryptocurrency are used. As well as
Wei Dai’s paper, the concept of proof-of-work comes from Adam Back’s Hashcash
9. A proof-of-work is a chunk of data which is costly and/or time-consuming
to be produced. The good side is that is easier for the
other participants to verify the concept based on certain requirements. Hashcash
is a DoS (Denial of Service) counter measure that some digital currencies have
in their implementation, making harder to be hacked. It is the proof-of-work
algorithm that is used to generate new blocks in Bitcoin., also known as
mining. For a block to be acknowledge by network, miners must finish a proof of
work, covering the data stored in the block; another step in accepting the
block is that the miner must find the right “nonce” number by. The difficulty
of this process increases in order to limit the ratio of generating new blocks
by the network. Before a block can be validated, it must hash to a value that
is less or equal to the target, meaning that the block shows how much work has
been done when it was generated. Because each block has in its structure the
hash of the last block, means that every block has a chain of blocks containing
a larger amount of work Fig 3 10.
blockchain is a list of blocks that are linked and secured. It is defined by
Harvard Business Review as “an open distributed ledger that can record
transactions between two parties efficiently and in a verifiable and permanent
way.” To temper the data stored in a block, you will need to alter all the successive
blocks in the chain in order to succeed. Bitcoin uses blockchain, facilitating
a secure online transaction, as a public ledger for all the contracts that
happen in its network. This helped at solving the double-spending problem
without the need of a trusted third party 11. In Fig
4 you can see that the main chain is composed of the green block which is the
genesis block and the black blocks resulting in the longest series of blocks.
The purple blocks are not used and are not considered in the longest series of
network data 13
As we have
seen Wei Dai and Adam Back had an indirect involvement in creating the Bitcoin.
But they were not the only ones who were involved. Nick Szabo with “Bit Gold”
14 and Hal Finney with “RPOW – Reusable Proofs of Work” 15 as well took
part in building Bitcoin unintended. Nick Szabo is talking about a coin but
with a problem regarding its proof-of-work depending only on the architecture
of the computer, rather than “an abstract mathematics based on an abstract
that Bitgold had. Hal Finney’s idea was
a prototype for digital currency and was based on the Nick Szabo’s thoughts
regarding the proof-of-work problem. Therefore, these two are behind the
proof-of-work that Bitcoin is using.
thing is that Satoshi never mentions Nick Szabo or Bitgold in his paper, email
or posts, even if the two concepts have very much in common. Because of this,
many thinks that the two are one person and with the help of Hal Finney, Nick
Szabo would have created Bitcoin, but this is not the aim of this paper.
Report on Technical Progress
and more people have a smartphone despite of their operating systems. Based on www.statista.com , there are 2.32 billion smartphones in use, and the
number will increase in the next years 16. It is easier and faster to find what you are
looking for on a smartphone than on a laptop/computer which needs time to load
its operating system, then connecting to the internet etc. The difficult part
when it comes to building a phone application is that the application you
create needs to be available on each platform despite of the operating system
the mobile is running. Therefore, if I create an application for an Android,
the users who own a phone which runs iOS must be able to access it. To solve this problem, I will use a non-OS specific code
which will help my application to be available on each OS without much
difference between them.
What I will
build is a hybrid app which will combine web-based front-end (HTML, CSS and
In order to
create the app, I will use Apache Cordova which is a free and open source
mobile application development framework. It will be
more efficient and the time spend on coding will be faster; and not only
that, but I can detect if there any bugs on a specific device before I release
the application. It has many free tools from which I can choose, but I will
stick with the most popular of them: PhoneGap.
many available software products, like NativeScript or Ionic, but
I will PhoneGap since it has standards-based web technologies to connect web
apps and phone devices. The user experience will be
better and enjoyable since PhoneGap is made with touch-screen interaction at
done until now
will work with a new software, I began with understanding how PhoneGap works
and how to use. Regarding HTML, CSS and
JS, I can say that I have no prior experience with it. So, because the idea of
building an e-learning application came during my time researching, I have been
studying HTML5, CSS3 and JS for the last 2 weeks in order to know how to
develop the app for my 3rd year project, and I am doing a great
progress understanding the new concepts. Building a mobile application, it is a
challenging task for me, but something that I looked forward to doing in order
to expand my knowledge, and maybe it will help me further in my career after I
graduate. So, I will work hard and I will give my best for this product.
Plan of remaining work
application is being developed
After the holiday,
the next step in project plan is to develop the application, starting with the
front-end of it. Because after the break it will be the exams period, I will
schedule my work in order to have more time to prepare for exams and, once that
I finish them, I will put more time in my project and work harder in order to
accomplish my weekly goals. By the beginning of April, I estimate that I will
have my mobile app up and running, being able to start and ask my friends to
test it and give me their feedbacks in order to understand the user needs. I
will ask a wide range of friends who own an Android, iOS or Windows OS to help
Christmas, I will start looking on the back-end side of the app and how
everything will look after I implement all my ideas, like having the full
picture of the app before I begin the work.
do I do with the feedbacks?
application done by April, means that I can update and make changes to it concerning
the information that I will get from the recruited users. The feedbacks will be
in form of a questionnaire where the participants will be asked whether or not
the app is friendly, if they find the navigation easy or not, and many other
questions which will give me the overall idea over the product. Apart from
questions, there will be a section where they can come up with ideas that can
be implemented in the application.
everything is done, I will double-check everything that I have done during my
project. Being able to meet my weekly deadlines is the most important thing.
That is why I will start, after the Christmas Holiday, to create sprint plans
and burndown charts to help me and my project by keeping track of each task
that I need to do in order to achieve the main goal: the development of an
e-learning application on cryptocurrency which helps the users to understand
the concepts behind how Bitcoin works.