Introduction to bit coin

48
NYC Data Science Academy Introduction to BitCoin

description

RSVP for Data Science Classes at www.nycdatascience.com

Transcript of Introduction to bit coin

Page 1: Introduction to bit coin

NYC Data Science Academy

Introduction to BitCoin

Page 2: Introduction to bit coin

NYC Data Science Academy

P2P: Peer-to-Peer Network

A peer-to-peer (P2P) network is a type of

decentralized and distributed network

architecture in which individual nodes in the

network (called "peers") act as both suppliers

and consumers of resources, in contrast to the

centralized client–server model where client

nodes request access to resources provided by

central servers.

Peers are distributed in the whole Internet. It is

hard to control and monitor the network

activities. It is widely used in fields asking for

high privacy.

A P2P network

A network based on the client-server

model

Page 3: Introduction to bit coin

NYC Data Science Academy

BitCoin

The fundamental paper by Satoshi Nakamot

Feature: Based on algorithm and public recognition, Decentralized

Scarcity, Mining, SHA256, Easy to exam, limit of speed

Comparing to Gold. Does bitcoin worth it?

Is BitCoin a Ponzi Scheme?

BitCoin and Anarchism

Problems: Copycats, Deflation, Anti-Conservation

How to maintain and manage the P2P network?

Page 4: Introduction to bit coin

NYC Data Science Academy

Blueprint of Electronic Money

Page 5: Introduction to bit coin

NYC Data Science Academy

Duplicated transactions

Solution: An authorized organization to record and exam transactions

A Mint is an organization that produce valid electronic money(avoid

duplicated transactions). Receiver of a transaction need to send electronic

money back to the mint for validation.

Pitfall: Relying too much on the central organization (Breakdown, Attacked,

Manipulated, Monitored or Spied)

Page 6: Introduction to bit coin

NYC Data Science Academy

Basic Concepts: the system of Bitcoin

Block: account book

Transaction

Bitcoin

Item: record of transactions

Transactions are recorded by Items

A block consists of many items (and other data)

Many blocks form a chain

Iterate over the items in the block chain to check account balance and

transaction validity,

Page 7: Introduction to bit coin

NYC Data Science Academy

Experiment: Check a block

http://blockexplorer.com/

Enter your block number to see the data

Page 8: Introduction to bit coin

NYC Data Science Academy

What is inside a Block?

Page 9: Introduction to bit coin

NYC Data Science Academy

Transaction

Page 10: Introduction to bit coin

NYC Data Science Academy

Block

Bitcoin system only record blocks but not balance. Balance is calculated

from items (records of transactions) in blocks

Every block stores all the items from all over the world in ten minutes. And

there will be a new block every ten minutes. The speed is stable.

Number of items in a block is not stationary

Every node is producing block but the valid block is unique. We will talk

about it later.

An ideal block:Block IDItem 1,Item 2,...Item n

Previous Block ID,Next Block ID,Other Information

Page 11: Introduction to bit coin

NYC Data Science Academy

Block Chain

Blocks are connected by doubly linked list according to their generation

order. This structure is convenient for iteration.

Every node is storing a block chain. Finally these chains are all the same,

as the only valid one in the system.

The 1st Block

Block IDPrev IDNext ID

The 2nd Block

Block IDPrev IDNext ID

The 3rd Block

Block IDPrev IDNext ID

Page 12: Introduction to bit coin

NYC Data Science Academy

Bitcoin and block generation

How to create Bitcoin: generate blocks (Fierce competitions of the

generation, that is what we called 'Mining' .)

Rules: the first to the 210 thousand-th block worth 50 Bitcoins each, the

210 thousand-th to the 420 thousand-th block woth 25 Bitcoins, and so on.

Repeating this procedure, we will get in total 21Million Bitcoins.

Because the real-world is always expanding, Bitcoin is determined to meet

the problem of deflation.

Blocks will be generated cotinuously, because transactions will be charged

for the service.

Page 13: Introduction to bit coin

NYC Data Science Academy

Security

Private key and Public key, digital signature

SHA256: http://en.wikipedia.org/wiki/SHA-2

Page 14: Introduction to bit coin

NYC Data Science Academy

Security

Private key and Public key, digital signature

SHA256: http://en.wikipedia.org/wiki/SHA-2

Page 15: Introduction to bit coin

NYC Data Science Academy

Security

Enough money for the transaction (Solved)

Authenticity of transaction

Repeat Transactions

Page 16: Introduction to bit coin

NYC Data Science Academy

Authenticity of transaction: Digital Signature

Page 17: Introduction to bit coin

NYC Data Science Academy

Calculate a hash number a, from all the data of block A.

Store a in the next block B.

Verify that if A is the previous block of B: Calculate a from A again, then

compare to the hash number x stored in B.

Generate b from B and store it in C. Then we repeat this process and will

get a block chain.

Duplicated Transactions: Timestamp

Block

Previous hash number x

Item Item Item Item

Block

Previous hash number x

Item Item Item Item

Page 18: Introduction to bit coin

NYC Data Science Academy

Timestamp

Do not rely on the local time, only related to the order of blocks

If there's a center maintaining the chain of valid blocks, it would be easy to

check duplicated transactions.

How to achieve it in a decentralized network?

Page 19: Introduction to bit coin

NYC Data Science Academy

Problems of P2P

Various network condition

Nodes are not running 24/7

No center for management

May exist evil nodes

Page 20: Introduction to bit coin

NYC Data Science Academy

Bitcoin solution of P2P

Proof of Work

Controlling of block generation speed

Block broadcast and valid block chain

Page 21: Introduction to bit coin

NYC Data Science Academy

Proof of Work

1. Calculate a hash number from the latest block

2. Keep receive items that are broadcasted but not inside any blocks. Check

them and delete invalid ones(not enough money).

3. Randomly choose a number, Nounce.

4. Group data in step 1~3 and use SHA256 to calculate a 256bit hash number

x.

5. Verify if there are enough leading 0s in x. If yes, then verify if this x meets

the difficulty. If yes, then this process is finished.

6. Else, repeat from step 2. If there's a new block from other nodes, we need

to restart the whole process.

Page 22: Introduction to bit coin

NYC Data Science Academy

Difficulty of Proff-of-Work

https://en.bitcoin.it/wiki/Difficulty

Page 23: Introduction to bit coin

NYC Data Science Academy

Difficulty

Controlling the speed of block generation. Updated every 2016 blocks (2

weeks) .

Difficulty = maximum_target / current_target

The target is a 256-bit number (extremely large) that all Bitcoin clients

share. The SHA-256 hash of a block's header must be lower than or equal to

the current target for the block to be accepted by the network. The lower the

target, the more difficult it is to generate a block.

Max target:

00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF

Current target (this is changing):

0000000000000000B3AA0000000000000000000000000000000000000000

0000

Page 24: Introduction to bit coin

NYC Data Science Academy

Bits

Each block stores a packed representation (called "Bits") for its actual

hexadecimal target. The target can be derived from it via a predefined

formula. For example, if the packed target in the block is 0x1b0404cb, the

hexadecimal target is

0x0404cb * 2**(8*(0x1b - 3)) =

0x00000000000404CB00000000000000000000000000000000000000000

0000000

Page 25: Introduction to bit coin

NYC Data Science Academy

Difficulty is a Global parameter

If there's the only valid block chain, every node will get the same difficulty.

Difficulty is controlling the speed of block generation

Difficulty is also useful when checking a block's validity.

Page 26: Introduction to bit coin

NYC Data Science Academy

Meaning of Difficulty

Control the speed and avoid inflation. A rapid increase in computation

power is not affecting the generation speed.

Increase the cost of cheating.

The P2P netword need a lot of nodes to ensure the security (avoid

manipulation). Difficulty is what drives nodes running.

Page 27: Introduction to bit coin

NYC Data Science Academy

Temporal Block

Content of the block:

1. x genereted from SHA256, as the block ID

2. All the collected valid items

3. Random Number n

4. The latest hash number from the global block chain

5. Other informations

Broadcast this block to the P2P network

What will other nodes do:

Duplication transactions and Validation

Page 28: Introduction to bit coin

NYC Data Science Academy

Validation

Get items in the block

Check if there's duplicated items

Other validation steps

Link this block to the end of the locally stored 'Global Block Chain' . It is not

formally added to the global block chain yet.

Page 29: Introduction to bit coin

NYC Data Science Academy

Braches

A node will receive many new blocks generated from a common global

chain.

For each block, generate braches locally.

Nodes are receiving blocks in different time points, and this leads to

different local braches.

When there comes a longer chain, a node will turn to the longer one and

discard the shorter one.

This algorithms will ensure the convergence to the longest chain.

Page 30: Introduction to bit coin

NYC Data Science Academy

Example of Braches

The Green block is the 1st block of the world.

Black blocks represents the longest block

chain, and validated to be the global chain.

Grey blocks are blocks on local braches, and

discarded finally.

Page 31: Introduction to bit coin

NYC Data Science Academy

Example of Braches

1. The form of two braches.

2. The right brach receive a new block and we discard the left one.

3. Again, different blocks linked to the end of global chain.

Page 32: Introduction to bit coin

NYC Data Science Academy

Example of Braches

4. Firstly we receive two more blocks on the right brach

5. And another two blocks on the left brach, now these two

braches are still of the same length.

6. Receive another block and we finally discards the right

one.

Page 33: Introduction to bit coin

NYC Data Science Academy

Example of Braches

7. The left brach receives another block.

8. Another one added to the left branch.

Page 34: Introduction to bit coin

NYC Data Science Academy

Example of Braches

Finally, we have our longest block chain.

Page 35: Introduction to bit coin

NYC Data Science Academy

Confirm the Transaction

To confirm a transaction, we need to add it to a newly generated block, and

after 5 more blocks, this transaction could be finally confirmed and the

transaction is successfully recorded.

After 6 blocks added to the global chain, it is nearly impossible to cheat or

attack the original chain. The cheater cannot find a cluster that

overwhelms all the other honest nodes and add 6 more fake blocks to the

global chain.

Once the transaction is confirmed, it is almost impossible to modify or

cancel.

Page 36: Introduction to bit coin

NYC Data Science Academy

Summary of security of Bitcoin

All nodes in a P2P network monitor and save the global unique transaction

backup

Timestamp ensure the order of blocks is valid

SHA256 ensure the generation of a block is hard, but validation is easy.

Proof-of-Work ensure the majority (honest nodes) have the true transaction

record.

Page 37: Introduction to bit coin

NYC Data Science Academy

Problems of Bitcoin system

Privacy

Transaction needs a lot of time to be confirmed

Deflation

Anti Conservation

Increasing amount of data

Page 38: Introduction to bit coin

NYC Data Science Academy

Bitcoin in Action!

How to register?

How to mine?

How to trade Bitcoin?

How to pay with Bitcoin?

Page 39: Introduction to bit coin

NYC Data Science Academy

The official website

https://bitcoin.org/en/

Page 40: Introduction to bit coin

NYC Data Science Academy

What? There's official website?

https://bitcoin.org/en/about-us

Page 41: Introduction to bit coin

NYC Data Science Academy

Bitcoin Wallet

MultiBit

Page 42: Introduction to bit coin

NYC Data Science Academy

Need Screenshot from Mac or just demonstration in real time

Need Screenshot from Mac or just demonstration in real time

Page 43: Introduction to bit coin

NYC Data Science Academy

Bitcoin Miner

GUIMiner

Page 44: Introduction to bit coin

NYC Data Science Academy

Popular Mining Website

Deepbit

BTCGuild

BMP

Page 45: Introduction to bit coin

NYC Data Science Academy

Need Screenshot from Mac or just demonstration in real time

Need Screenshot from Mac or just demonstration in real time

Page 46: Introduction to bit coin

NYC Data Science Academy

Bitcoin exchange

Mt.Gox: It was the largest website, but closed in February 2014.

BTC-E: https://btc-e.com/

Bitstamp: https://www.bitstamp.net/

Page 47: Introduction to bit coin

NYC Data Science Academy

Pay with Bitcoin

Bitcoin is told to be the best currency for illegal missions.

But publicly it is not very popular.

Donate bitcoin to personal projects is more popular. As in the popular game

2048.

Page 48: Introduction to bit coin

NYC Data Science Academy

FAQ

FAQ