Bitcoin and Blockchain 101

Post on 10-Jan-2017

153 Views

Category:

Software

0 Downloads

Preview:

Click to see full reader

Transcript

Bitcoin & Blockchain 101

Who am I?

James Turner Polyglot programmer

Worked for ebay , BBC, BSkyB CTO @ magnr.com

2

Agenda

•How you might know Bitcoin

•What is Bitcoin?

•How Bitcoin solves certain problems

•What is this magical Blockchain everyone is talking about?

• It’s not all shiny

•Recap

•Questions

3

This is NOT Bitcoin

4http://www.wired.com/2015/04/silk-road-1/

This is

5

The Bitcoin protocol

• A method of exchanging data over a network

• A set of rules that everyone adheres to.

• These rules can be verified to check for errors

• Describes a transaction between 1 or more parties

6

Bank Alice and Bob

7

Send £100 to Bobpretty please? BOB YOU’RE RICH!

Alice Bob

When Who Amount20 Aug Alice -10021 Aug Graham +2522 Aug Steve -8023 Aug Chen -10

When Who Amount21 Aug Bob +10021 Aug Ian +2521 Aug Dave +1024 Aug Joe -99

COORDINATED EFFORTBANK A BANK B

Bank A Ledger Bank B Ledger

Banking problems?

• Centralised system failure (NatWest/RBS ATM glitch)

• Centralised trust failure (Northern Rock)

• Separated Ledgers (no single view of state - impractical auditing)

8

http://www.theguardian.com/business/2016/jan/01/natwest-rbs-customers-hit-another-banking-glitchhttp://news.bbc.co.uk/1/hi/business/6996136.stm

Bitcoin Alice and Bob

9

Alice Bob

When Who Amount20 Aug Alice -10021 Aug Bob +10021 Aug Ian +2521 Aug Dave +1021 Aug Graham

a+25

22 Aug Steve -80

Graham

Dave

Steve

When Who Amount20 Aug Alice -10021 Aug Bob +10021 Aug Ian +2521 Aug Dave +1021 Aug Graham

a+25

22 Aug Steve -80

W W A20 Ali-10021 B +21 Ia +21 D +21 Gr +22 St -80

W W A20 Ali-10021 B +21 Ia +21 D +21 Gr +22 St -80W W A20 Ali-10021 B +21 Ia +21 D +21 Gr +22 St -80

Bitcoin Alice and Bob Transaction

10

Alice Bob

Graham

Dave

Steve

Who AmtAlice -20Bob +20

Who AmtAlice -20Bob +20

Who AmtAlice -20Bob +20

Who AmtAlice -20Bob +20

When Who Amount20 Aug Alice -10021 Aug Bob +10021 Aug Ian +2521 Aug Dave +1021 Aug Graham

a+25

22 Aug Steve -8023 Aug Alice -2023 Aug Bob +20

When Who Amount20 Aug Alice -10021 Aug Bob +10021 Aug Ian +2521 Aug Dave +1021 Aug Graham

a+25

22 Aug Steve -80

When Who Amt23 Aug Alice -2023 Aug Bob +20

+

W W A20 Ali-10021 B +21 Ia +21 D +21 Gr +22 St -8023 Ali -2023 B +

W W A20 Ali-10021 B +21 Ia +21 D +21 Gr +22 St -8023 Ali -2023 B + W W A20 Ali-10021 B +21 Ia +21 D +21 Gr +22 St -8023 Ali -2023 B +

Bitcoin Properties

• Fault tolerance

• No centralised trust

• Auditable

11

Problems Solved…

12

Not quite…

13

EVIL ALICE - Double Spending

14

Alice Bob

When Who Amount20 Aug Alice -10020 Aug Bob +100

When Who Amount20 Aug Alice -10020 Aug Graham +100

Graham

When Who Amount19 Aug Steve +50 19 Aug Ian +1019 Aug Joe -9020 Aug Alice -10020 Aug Bob +100

When Who Amount19 Aug Steve +50 19 Aug Ian +1019 Aug Joe -9020 Aug Alice -10020 Aug Bob +100

When Who Amount19 Aug Steve +50 19 Aug Ian +1019 Aug Joe -9020 Aug Alice -10020 Aug Graham +100

???

Changing the ledger a little (part 1)

15

When From To Amount20 Aug Alice Bob 8020 Aug Alice Alice 2021 Aug Bob Graham 8022 Aug Graham Bob 1022 Aug Graham Graham 70

Let’s assume Alice has £100

We can split a transaction into giving some moneyand receiving some change in return. Much like a cash transaction

Changing the ledger a little (part 2)

16

TX ID When From To Amount1,0 20 Aug Alice Bob 801,1 20 Aug Alice Alice 202,0 21 Aug Bob Graham 803,0 22 Aug Graham Bob 103,1 22 Aug Graham Graham 70

Let’s give each Transaction an Identity and Index

Changing the ledger a little (part 3)

17

TX ID SPENDS When From To Amount SPENT?1,0 0,0 20 Aug Alice Bob 80 YES1,1 0,0 20 Aug Alice Alice 20 NO2,0 1,0 21 Aug Bob Graham 80 YES3,0 2,0 22 Aug Graham Bob 10 NO3,1 2,0 22 Aug Graham Graham 70 NO

Who Balance

Alice 20

Bob 10

Graham 70

Each transaction references a previous transaction

Blockchain the Magical Unicorn

18

Block 2

Block 1

reference

TX ID SPENDS When From To Amount SPENT?

1,0 0,0 20 Aug Alice Bob 80 YES

1,1 0,0 20 Aug Alice Alice 20 NO

2,0 1,0 21 Aug Bob Graham 80 YES

3,0 2,0 22 Aug Graham Bob 10 NO

3,1 2,0 22 Aug Graham Graham 70 NO

TX1

TX2

TX3

Creating a block

• Take some recent transaction data and a reference to a previous block

• Produce a hash (algorithmic computational function) of this data

• Add the new block to the chain of blocks you know about

• Rinse, repeat…

19

What the hash?

“The quick brown fox jumps over the lazy dog”

d7a8fbb307d7809469ca9abcb0082e4f8d5651e46d3cdb762d02d0bf37c9e592

“The quick brown fox jumps over the lazy doh”

631386c0ac66eafac3a28dbe68a76c6cbc0ba6382011481d59e6795243499196

1 letter difference in characters results in extremely different hash results.

20https://en.wikipedia.org/wiki/SHA-2

Blockchain

21

Block 1

2cf24d…8b9824

Block 2

5a936e…c5850cPrevious:Previous:

Block 3

Previous:91e924…78f0ab

5a936e…c5850c

Hashed

91e924…78f0ab

Hashed Hashed

TX 1

TX 2

TX 3 TX 4

4101e9…09809f

HEIGHT: 0 HEIGHT: 1 HEIGHT: 2

Blockchain immutability

22

Block 1 Block 2 Block 3

5a936e…c5850c 91e924…78f0ab

TX 1

TX 2

TX 3 TX 4

4101e9…09809f

Block 1 Block 2 Block 3

5a936e…c5850c

TX 1

TX 2

TX 3.1 TX 4

4101e9…09809f60da4a…a2f738

XPrevious:91e924…78f0ab

Block difficulty

• What’s to stop Alice from re-writing all historical blocks?

• Hashing has to be sufficiently complex so as to take time to produce

• Thus Alice cannot guarantee she will be the next person to “mine” a block.

• Most cryptocurrencies rely on the difficulty being a hash with a certain

number of 0 prefixes, e.g.

• 000000000000000006c7cdecaf9dbe50a5fc693e7a555550d57aa1706f3f964b

• THIS IS PROOF OF WORK (AKA MINING)!

23

EVIL ALICE - Double Spending

24

Alice Bob

When Who Amount20 Aug Alice -10020 Aug Bob +100

When Who Amount20 Aug Alice -10020 Aug Graham +100

Graham

When Who Amount19 Aug Steve +50 19 Aug Ian +1019 Aug Joe -9020 Aug Alice -10020 Aug Bob +100

When Who Amount19 Aug Steve +50 19 Aug Ian +1019 Aug Joe -9020 Aug Alice -10020 Aug Bob +100

When Who Amount19 Aug Steve +50 19 Aug Ian +1019 Aug Joe -9020 Aug Alice -10020 Aug Graham +100

When Who Amount19 Aug Steve +50 19 Aug Ian +1019 Aug Joe -9020 Aug Alice -10020 Aug Bob +100

NEW BLOCK FOUND

Why bother?

• Each new block is rewarded with bitcoins

• Thus, there is a greater benefit from being a good citizen

25

26

27

EVIL ALICE - Spending Graham’s Money

28

Alice Bob

When Who Amount20 Aug Graham -10020 Aug Alice +100

Graham

When Who Amount19 Aug Steve +50 19 Aug Ian +1019 Aug Joe -9020 Aug Graham -10020 Aug Alice +100

When Who Amount19 Aug Steve +50 19 Aug Ian +1019 Aug Joe -9020 Aug Graham -10020 Aug Alice +100

When Who Amount19 Aug Steve +50 19 Aug Ian +1019 Aug Joe -90

When Who Amount20 Aug Graham -10020 Aug Alice +100

???UM NO!

So…

How do I know that the cash you’re giving me, belongs to you?

29

Introducing Cryptography

• Cryptography is mathematics (i.e. provable)

• Bitcoin uses asymmetric key cryptography based on ECDSA

• Bitcoin uses the public key component as the “address”.

• No reliance on an intermediary party to provide account numbers.

30

https://en.bitcoin.it/wiki/How_bitcoin_workshttps://en.wikipedia.org/wiki/Public-key_cryptography

Public/Private Keys

31

WHO PUBLIC KEY PRIVATE KEY

Alice aabc4d 982831

Bob 8392a1 471829

Graham 1b1b78 747173

The Ledger

32

TX ID SPENDS When From To Amount SPENT?

1,0 0,0 20 Aug Alice Bob 80 YES

1,1 0,0 20 Aug Alice Alice 20 NO

2,0 1,0 21 Aug Bob Graham 80 YES

3,0 2,0 22 Aug Graham Bob 10 NO

3,1 2,0 22 Aug Graham Graham 70 NO

The Anonymous Ledger

33

TX ID SPENDS When From To Amount SPENT?

1,0 0,0 20 Aug aabc4d Alice

8392a1 Bob 80 YES

1,1 0,0 20 Aug aabc4d Alice

aabc4d Alice 20 NO

2,0 1,0 21 Aug 8392a1 Bob

1b1b78 Graham 80 YES

3,0 2,0 22 Aug 1b1b78 Graham

8392a1 Bob

10 NO

3,1 2,0 22 Aug 1b1b78 Graham

1b1b78 Graham

70 NO

The Signed Anonymous Ledger

34

TX ID SPENDS When From To Amount SPENT? SIG

1,0 0,0 20 Aug aabc4d Alice

8392a1 Bob 80 YES 41c1a8

1,1 0,0 20 Aug aabc4d Alice

aabc4d Alice 20 NO 6219dd

2,0 1,0 21 Aug 8392a1 Bob

1b1b78 Graham 80 YES 98fbca

3,0 2,0 22 Aug 1b1b78 Graham

8392a1 Bob

10 NO d38628

3,1 2,0 22 Aug 1b1b78 Graham

1b1b78 Graham

70 NO a8239c8

EVIL ALICE - Spending Grahams

35

Alice Bob

When Who Amount SIG20 Aug Graham -100 ???20 Aug Alice +100 ???

Graham

When Who Amount19 Aug Steve +50 19 Aug Ian +1019 Aug Joe -9020 Aug Graham -10020 Aug Alice +100

When Who Amount19 Aug Steve +50 19 Aug Ian +1019 Aug Joe -90

When Who Amount19 Aug Steve +50 19 Aug Ian +1019 Aug Joe -90

Invalid Sig, Reject

When Who Amount SIG20 Aug Graham -100 ???20 Aug Alice +100 ???

Invalid Sig, Reject

X

X

36

But, it’s not all shiny

• Bitcoin is “eventually consistent” (~10 mins)

• Non-rescindable, once it’s gone, it’s gone!

• Loss of private keys = loss of all money, can’t print any more

• ~1% loss of bitcoin per year

• Change rollouts are hard

37

Recap

• Distributed ledger of transactions

• Fault tolerant

• Immutable

• Auditable

• Secure

• Anonymised

• Rewards participation

38

So what are people doing with bitcoin?

39

R3 BlockchainConsortium

Purse.io spending power XAPO Debit Card

Gift cards

Smart Contracts

Blockchain in the Linux Kernel

Immutable record keeping

Diamond tracking and verification of source

Bitcoin Savings

Questions?

40

top related