5270 Final Report
Amruta Chitloor Anjaneyalu
Wayne State University
With the increasing hype
for bitcoin it is really important to know how it works behind the curtain and
what it’s really worth of. It was introduced by an anonymous founder who uses
the alias Sathoshi Nakamoto in 2009. Essentially, Bitcoin is one of the leading
crypto currencies without any physical form. It is generated and used
electronically. Other examples of crypto currencies are Litecoin, Ethereum and
so on. There ae plenty in the market.
The whole idea behind the
bitcoin was presented in 2008, depicting the proof of concept and gaining the
trusts of many. The best part of Bitcoin is eradicating the necessity of bank
in the system or a central authority. There is no requirement of governance by
third party. It is irreversible and
committed once a transaction is approved.
Bitcoin, as told earlier
does not have a physical form. But the value can be saved in a digital wallet.
This is either stored in cloud or in some other public server but connected to
owner’s bank accounts. Value for the bitcoin is higher only because people are
willing to trade to the money against their account numbers. In short, the
value exists only because people believe it does. The concept behind bitcoin is
noting all the transactions in a ledger. Every participant has a copy of it. As
soon as a new transaction is made it is added to a block that contains all the
other transactions what happen during the specific time duration. This is referred
to as blockchain. Then, a miner takes a transaction and converts it into a hash
and adds it to the existing blockchain. After this is done, nodes pass a copy
of the blockchain so every node on the network is updated. Every node in the
network freely exchanges information not only about blocks but also about
transactions, alerts, and IP addresses of known nodes. So, if a user tries to
double spend the same bitcoins after already spending them, the nodes reject
the transactions after verifying the existing blockchain.
The user community of
bitcoin is so huge and there no need of any approval to add yourself to it. The
user encrypts the message using his private key and the decryption can be done
by the public key which makes it fail proof system. As the receiver is the only
person who would be able to decode it to a meaningful message. This feature
increases the privacy of the transaction. Every transaction has a different key
making it secure.
Every time a transaction
is made the amount from the sender’s account decreases and the receiver’s
account increases. Also, there is a new entry in the ledger which every
computer on the network has a copy of as record of transaction. It is important
to record that everyone knows every transaction and not just the sender and
receiver. Also, since there is no “bank” as such it makes it harder to
authenticate the incoming as we receive the amount from total strangers. Thus,
we should not trust anyone.
There is upper limit to
the total number of bitcoins that can be and that is 21 million. This limit is
expected to reach by miners by 2140. There is a mathematical explanation for this number too.
2. TRANSACTION MANAGEMENT
On high level, Bitcoin is just a file that contains all
the transactions with sender and receiver details with currencies like a
ledger. Bitcoin a currency which is made in a way it can not be copied. This
prevents people from spending the same money twice which is usually referred to
as double spending problem. There are 3 ways to earn it: earn it in return for
your goods and services, but it for money its worth or it can also be mined.
Miners are essentially the people who use high computational power and hashes
to solve complicated math problems and if they are successful then awarded with
a coin. With increase in number of miners, bitcoin is mostly not going to hit
any inflation till about the year 2140.
transactions using bitcoins is carefully designed to make it hackproof as it is
implicit that we cannot trust strangers. While sending money, following are the
mathematical steps incorporated to authenticate the transaction and only the
rightful owner is sending the message.
key and private key: For encryption and decryption for confedential data
For checking the confidential data’s integrity after trasmision. And how
legitimate it is.
Signatures: There are several software those can be used to Digitally sign the
ABC (Nakamoto, 2008)
Transactions are like
money transfer. A user who needs to start a new transaction to transfer a part
of bitcoins to another user first needs to:
Create an output to the new user using new
owner’s public key and digitally signing with their signature along with
This hash can be used to look up previous
ownerships of the bitcoins
Here each transaction can have multiple
inputs and at most 2 outputs
output from a user is either a Spent Transaction Output or an Unspent
transaction is spread all around the network where nodes verify it.
This makes every node in
the network aware of all the all the transactions. Every ledger in the network
is this updated. But the issue here is the receiver needs to know that the
bitcoin is received it is a legitimate one the sender has sent from his quota
of account and not spending when he doesn’t have. Thus he would need a
confirmation from majority nodes that it was one of the first kind to be
A solution to this is as proposed by Sathoshi as
follows. The transaction also includes a timestamp server to the block. Here, a
timestamp is added to the hash along with the previous timestamp. Thus, every
timestamp hash contains the information of previous timestamps.
PROOF OF WORK
A proof of work protocol
is a vehicle really by which someone can effectively prove to you that they
have engaged in a significant amount of computational effort. Proof of work
protocols often amount to puzzles and these puzzles that can, one the one hand,
be challenging to solve by hand by that it means that it requires some serious computational
effort and really can’t be short circuited. In bitcoin we incorporate a
blockchain concept for transaction. The main job here is for the miners to find
Bitcoin uses SHA-256 for
its processing. We initially replace the block’s hash with nonce value until a
suitable value is computed. Nonce is a unique set of random characters. Nonce
once used could never be used if once used in previous answers in it’s succession
as the nonce’s would be thrown back as invalid. Which means that to fake or
change previous blocs, you would have no choice but to re-do all of the work of
the subsequent blocks.
There are two types of
voting i.e 1 CPU one vote and another is one IP one vote. Since CPUs are
measured in Gz then the right block chain will grow fast compared to the wrong
one as all the honest nodes vote. The chain with maximum approval is the one
chosen for reward. The difficulty increases with more bitcoins being generated.
There’s a way to control
even the inflation of bitcoins as mentioned by Shatoshi where if the price of
bitcoins gets way high then reward of mining it then the problems/puzzles level
of difficulty increases and this the number of bitcoin decreases.
In a bitcoin network, all the peers are connected to
each other by unencrypted TCP channels. In the bitcoin protocol, peers
propagate addresses to help peers discover each other. Each peer stores
information about the known IP addresses of peers on network. The exact steps
that take place after the peers discover are:
sender and receiver of transactions validate each other. After validation, the
sender sends the transaction to receiver. After the receiver accepts the
transaction, propagates the information to all know peers.
the nodes receive the transaction, the add it to the existing blockchain and
each node works on finding a proof-of-work.
a node finds a proof-of -work, it propagates the block along the network to
For a node to accept this a block all the
transactions in it must be valid. If it finds hash with the same value existing
already, then the block is discarded. Also, if a node receives two blocks
involving the same block, the first is accepted but the next is saved for
If you say you have a
bitcoin it means you have private key. Having a digital signature proves your
ownership on bitcoins. Public key is referred in block chain. Block chain for
the proof of work is the set of transitions that happens every now and then
where each of them refers to earlier record in the chain. Miners run the most
recent block and the old blocks and using hash functions where they solve the
mathematical problem. Once solved it’s added to block chain and peers are
updated to use the new block chain. His concept of block chaining makes the
system more secure. All this requires huge computational power.
There would be cases
where two transactions are happening simultaneously and parallelly two nodes
might be working on them. In this situation the would-be conflict in block
chaining when the propagate together in the network. There would be a node
which will have to encounter both of these blocks together and would be
confused which one to digest first. Thus, the choose to go after the one that
is longest which means the most accepted one reported by the honest nodes. The
other blockchain is not considered.
This prevents the hacking
as if there would be a successful hacker he would have to own very high compuattuola
power i.e power greater than 50% of the network.
5 Fork in a BlockChain
5. DOUBLE SPENDING PROBLEM
As the name suggests, this
is where a user tries to make a dishonest transaction. A user sends the same
amount twice which is practically impossible and dishonest. Dishonest
transaction is when the wrong transaction gets into the blockchain. This situation
can be handles in the following manner.
In the the attacks, the
opponent tries to propagate typically the dishonest chain as in contrast to the
honest string. For an attacker to have success, not only must he propagate the
dishonest chain but additionally create a extended fork as described above for
all the nodes to accept the unethical link. So, the attacker must high a
extremely high computational capacity to produce a dishonest chain that may be
has enough blocks to be able to overtake the honest chain.
In the paper published by
Satoshi Nakamoto, typically the following are the final results posted the
probability of success or failure of honest chain to be discovered by next
block based their computation power.
Probability of success ans
failure is calculayed by Sathoshi in his paper and it’s describes as follows.
p = probability an
honest node finds the next block
q = probability the
attacker finds the next block
probability the attacker will ever catch up from z blocks behind
qz=1 if pq
Here are the results published, we can see the
probability drop off exponentially with z using Poisson Distribution.
Solving for P less than