Bitcoin Summary : An Essay, Schemes and Mind Maps of Computer Science

An Essay on the legendary research paper by Satoshi Nakamoto : Bitcoin

Typology: Schemes and Mind Maps

2017/2018

Uploaded on 12/07/2018

tjcs
tjcs 🇮🇳

1 document

1 / 2

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
Bitcoin by Satoshi Nakamoto - Summary
In the paper on Bitcoin, Satoshi Nakamoto proposes a solution to the double spending
problem in digital transactions. He is using a peer-to-peer distributed timestamp
server which generates computational proofs of the chronological orders of
transactions. Instead of trust governing the system, cryptographic proof is considered
as the base of trust among the peers. Also, there is an assumption that as long as
honest nodes control more computational power as compared to attacker(s), the
system will be secure from malicious activities or data tampering.
About Transactions, Nakamoto defines them as chain of Digital Signatures (similar to
Public Key Cryptography/Infrastructure). Now, in this chain of transactions (secured
by digital signatures), double spending problem can be solved using a central
authority, like a mint or a bank. This central authority checks all the transactions in its
database for any double spending. After every transaction, coin is issued by the mint.
This means that all the coins which the mint has issued can be trusted not to be double
spent (they might also be considered legal in the transaction network/coin network).
the problem here is that the central authority, or the bank is a vulnerability in this
system and what if the bank goes rogue? Now, we need to find a solution to the
double spending problem without using/ involving the central trusted authority, or the
bank. It is important to understand that the bank is aware of all the previous
transactions that have happened in the chronology. In the absence of trusted central
party, the transactions need to be publicly announced (broadcasted) to all the
participant nodes. Nakamoto also proposes a system or algorithm which governs that
all the participant nodes agree on one truth. The truth regarding the transactions and
their order.
Now, the solution, implementing a timestamp server on a peer-to-peer network. He
uses a Proof-of-Work similar what is there in Hashcash. In Hashcash, the nodes scan
or guess a value, that when hashed with SHA 256, the resultant hash begins with a
certain number of zero bits. For his timestamp server, Nakamoto implements the
proof-of-work by incrementing a nonce in the block until a value is found, which
when hashed gives the required starting zero bits. This scanning or guessing of value
(which include prev. Hash + nonce) requires a lot of Computational/CPU power. After
the CPU power has been expended, the block is added to previous blocks. To change
the block, the whole proof-of-work computation has to be performed by the CPU for
adding into the chain of previous blocks. Also, more blocks like this shall be added in
future, so if we want to change one block in the middle, the total work to change the
block will include changing the block (doing the proof-of-work for that block) and
changing the all the blocks after it (performing the proof-of-work for them also) .
This proof-of-work can also be used to compute majority in decision making
problems. In this case, Nakamoto says that Proof-of-Work is One-CPU-One-Vote. The
longest chain is the majority, because Proof-of-Work has been invested in it.
Any new transaction is broadcast to all the participant nodes. All Participant nodes
add the new transactions in a block, and work for a proof-of-work for that block.
Once, the proof-of work is found, the block is broadcasted. The other nodes perform
the proof-of-work and verify the validity of the transactions using old transactions.
There is also an idea of incentivizing the participant nodes so that they stay honest.
Since, all the transaction blocks are broadcasted to all the participant nodes, this
might pose a problem of storage of blocks as new blocks get added over time.
pf2

Partial preview of the text

Download Bitcoin Summary : An Essay and more Schemes and Mind Maps Computer Science in PDF only on Docsity!

Bitcoin by Satoshi Nakamoto - Summary

In the paper on Bitcoin, Satoshi Nakamoto proposes a solution to the double spending problem in digital transactions. He is using a peer-to-peer distributed timestamp server which generates computational proofs of the chronological orders of transactions. Instead of trust governing the system, cryptographic proof is considered as the base of trust among the peers. Also, there is an assumption that as long as honest nodes control more computational power as compared to attacker(s), the system will be secure from malicious activities or data tampering.

About Transactions, Nakamoto defines them as chain of Digital Signatures (similar to Public Key Cryptography/Infrastructure). Now, in this chain of transactions (secured by digital signatures), double spending problem can be solved using a central authority, like a mint or a bank. This central authority checks all the transactions in its database for any double spending. After every transaction, coin is issued by the mint. This means that all the coins which the mint has issued can be trusted not to be double spent (they might also be considered legal in the transaction network/coin network). the problem here is that the central authority, or the bank is a vulnerability in this system and what if the bank goes rogue? Now, we need to find a solution to the double spending problem without using/ involving the central trusted authority, or the bank. It is important to understand that the bank is aware of all the previous transactions that have happened in the chronology. In the absence of trusted central party, the transactions need to be publicly announced (broadcasted) to all the participant nodes. Nakamoto also proposes a system or algorithm which governs that all the participant nodes agree on one truth. The truth regarding the transactions and their order.

Now, the solution, implementing a timestamp server on a peer-to-peer network. He uses a Proof-of-Work similar what is there in Hashcash. In Hashcash, the nodes scan or guess a value, that when hashed with SHA 256, the resultant hash begins with a certain number of zero bits. For his timestamp server, Nakamoto implements the proof-of-work by incrementing a nonce in the block until a value is found, which when hashed gives the required starting zero bits. This scanning or guessing of value (which include prev. Hash + nonce) requires a lot of Computational/CPU power. After the CPU power has been expended, the block is added to previous blocks. To change the block, the whole proof-of-work computation has to be performed by the CPU for adding into the chain of previous blocks. Also, more blocks like this shall be added in future, so if we want to change one block in the middle, the total work to change the block will include changing the block (doing the proof-of-work for that block) and changing the all the blocks after it (performing the proof-of-work for them also). This proof-of-work can also be used to compute majority in decision making problems. In this case, Nakamoto says that Proof-of-Work is One-CPU-One-Vote. The longest chain is the majority, because Proof-of-Work has been invested in it.

Any new transaction is broadcast to all the participant nodes. All Participant nodes add the new transactions in a block, and work for a proof-of-work for that block. Once, the proof-of work is found, the block is broadcasted. The other nodes perform the proof-of-work and verify the validity of the transactions using old transactions. There is also an idea of incentivizing the participant nodes so that they stay honest.

Since, all the transaction blocks are broadcasted to all the participant nodes, this might pose a problem of storage of blocks as new blocks get added over time.

However, using the concept of Merkle Tree and some calculation, Nakamoto proved it to be otherwise. He showed a block header without any transactions to be about 80 bytes in size, which means that if every 10 minutes a new block is created, the whole memory storage of all the blocks will be around 4.2 MB per year.

For verification of payment, individual transaction can not be verified. It is verified by linking the transaction block into the longest running proof-of-work chain. Verification happens because two things occur, one, the block is accepted in the longest running chain. Second, new blocks are getting added after this block. Because new blocks are getting added in the chain, it means that the block in which the to-be- verified transaction is valid. Keeping the verification process solely to the network will not be sensible from business perspective, because dishonest users might pose some problem, which can be detected, however. It would be better if the businesses might keep transaction verification nodes in their business end as well, because their payment frequency is higher. In order to facilitate splitting and combining values, transactions contain multiple inputs and multiple outputs. There is never the need to extract the whole standalone copy of a transaction’s input. To maintain privacy in the network, a new key pair is to be used for every transaction, so that the transactions can not be linked together to reveal some hidden information about the parties involved in the transaction. Thus, public keys remain anonymous and privacy is intact. Also, Nakamoto shows that there is very low probability of an attacker being successful in creating a long chain, (longer than the honest chain and one block more than that). As the number of blocks increase, the probability also declines exponentially.

In Conclusion, Satoshi Nakamoto, while proposing solution for the Double Spending Problem, gave the basic foundation of digital currency called Bitcoin, which is implemented as a chain of blocks (containing the transactions), where trust is implemented using cryptography and public key infrastructure. This chain of blocks is broadcasted on a network of participating nodes, which come to consensus for the purpose of verification and validation of transactions. As long as majority of participating nodes are honest, the network is safe and secure. The consensus algorithm employed in Bitcoin keeps the probability of attacker nodes to overpower the network to the very minimum and that decrements exponentially as the chain of blocks becomes longer.