bitcoin explained

13
S Bitcoin explained Benjamin Fuentes – March 2016 The opinions and views expressed at or through this slide are the opinions of the designated authors and do not reflect the opinions or views of any of their clients or law firms or the opinions or views of any

Upload: benjamin-fuentes

Post on 14-Feb-2017

558 views

Category:

Internet


0 download

TRANSCRIPT

Page 1: Bitcoin explained

S

Bitcoin explainedBenjamin Fuentes – March 2016

The opinions and views expressed at or through this slide are the opinions of the designated authors and do not reflect the opinions or views of any of their clients or law firms or the opinions or views of any other individual.

Page 2: Bitcoin explained

Challenges

50% honesty threshold attack

Keep anonymity Negative balances End of block

ambiguity

Remove the trusted 3rd party

Avoid double spending problem

Owner authenticity proof attack

Cannot rewrite the past

Page 3: Bitcoin explained

Remove the trusted 3rd party

There are owners Owners do transactions Owners have private key

(like a password) to sign Owners have public key for

others to verify their signature

A block can contain multiple transactions

Page 4: Bitcoin explained

Network flow

Node1

Node2

Node4

Node3

1.Broadcast new new transactions

2.Build a block and try to find proof-of-work

3.First to find proof-of-work broadcast the block to the others

4.Test acceptance and double spending.If ok => keep the block using its hashIf ko => reject block

Page 5: Bitcoin explained

Avoid double spending problem

Transaction 1Bob -> Alice

Transaction 2Bob -> Oscar

Page 6: Bitcoin explained

Solution

Be aware of ALL transactions Consensus agreement of voters to validate

transaction order

UNIQUE HISTORY OF ORDERING CAN DETECT DOUBLE SPENDING NOW

Page 7: Bitcoin explained

Transaction 1

Owner authenticity proof attack

HashN-1

+

Private key

Signature

Public key = I AM BOB

Verify+

Yes ! It is a certificate from “I AM BOB”

Page 8: Bitcoin explained

Cannot rewrite the past

Block 1Hash1

Block 2Hash2 = f(Hash1)

Block 3Hash3 = f(Hash2)

Block 1Hash1

Block 2Hash2

Block 3 Hash3=f(Hash2)

Hack this block !!!

Honest blockchain

Hacker blockchain

Page 9: Bitcoin explained

50% honesty threshold attack

Do not trust IP as voters ! Anyone can duplicate IPs

Voters are CPU based If > 50% voters agree on a chain, is it the official

one To modify a past block, an attacker would have to

redo the proof-of-work of the block and all blocks after it and then catch up with and surpass the work of the honest nodes

Page 10: Bitcoin explained

Keep anonymity

Page 11: Bitcoin explained

Negative balances

History of ownership

Balance

0

-1

1

… ?

Page 12: Bitcoin explained

Negative balances

We have to check all the chain from the origin to calculate the last balances

We cannot have negative balances Balance = sum(inputs) – sum(outputs)

Page 13: Bitcoin explained

End of block ambiguity

Everyone has its own version of the blockchain A block could be resolved at the same time by 2 different peers A blockchain could have several branches at the same time

before it gets stabilized / ordered Mathematical race ensures that the oldest block are more

trustable than newest. So wait a little bit before considering last blocks trustable

Last best performance done by BTC guild is about resolving 6 blocks in a row. So wait at least 6 blocks ?