bitcoin miner optimization - knaw · crypto currencies mining bitcoin mining • minting: creation...

99
Bitcoin Miner Optimization Nicolas T. Courtois - University College London, UK

Upload: others

Post on 22-Jul-2020

9 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Bitcoin Miner Optimization - KNAW · Crypto Currencies Mining Bitcoin Mining • Minting: creation of new currency. Creation+re-confirmation of older transactions data from previous

Bitcoin Miner Optimization

Nicolas T. Courtois

- University College London, UK

Page 2: Bitcoin Miner Optimization - KNAW · Crypto Currencies Mining Bitcoin Mining • Minting: creation of new currency. Creation+re-confirmation of older transactions data from previous

Bitcoin Mining

Bottom Line

Bitcoin Mining =… a high tech race

to determine

2 Nicolas T. Courtois 2013

to determine who will own the currency of the 21 century…

Page 3: Bitcoin Miner Optimization - KNAW · Crypto Currencies Mining Bitcoin Mining • Minting: creation of new currency. Creation+re-confirmation of older transactions data from previous

Bitcoin Mining

Roadmap

• What is Bitcoin• Mining• Improvements

3 Nicolas T. Courtois 2013

Page 4: Bitcoin Miner Optimization - KNAW · Crypto Currencies Mining Bitcoin Mining • Minting: creation of new currency. Creation+re-confirmation of older transactions data from previous

Crypto Research at UCL

Dr. Nicolas T. Courtois1. cryptologist and

codebreaker

4

Page 5: Bitcoin Miner Optimization - KNAW · Crypto Currencies Mining Bitcoin Mining • Minting: creation of new currency. Creation+re-confirmation of older transactions data from previous

Crypto Currencies Mining

Bitcoin In A Nutshell

• bitocoins are cryptographic tokens , strings of bits– stored by people on their PCs or mobile phones

• ownership is achieved through digital signatures: – you have a certain cryptographic key, you have the money. – publicly verifiable, only one entity can sign

• consensus-driven , a distributed system which has no central authority– but I will not claim it is decentralized, this is simply not true!

5 Nicolas T. Courtois 2009-2014

– but I will not claim it is decentralized, this is simply not true! – a major innovation is that financial transactions CAN be executed and policed without

trusted authorities. Bitcoin is a sort of financial cooperative or a distributed business.

• based on self-interest: – a group of some 100 K people called bitcoin miners own the bitcoin “infrastructure” – they make money from newly created bitcoins and fees – at the same time they approve and check the transactions. – a distributed electronic notary system

Page 6: Bitcoin Miner Optimization - KNAW · Crypto Currencies Mining Bitcoin Mining • Minting: creation of new currency. Creation+re-confirmation of older transactions data from previous

Crypto Currencies Mining

In Practice

6 Nicolas T. Courtois 2009-2014

Page 7: Bitcoin Miner Optimization - KNAW · Crypto Currencies Mining Bitcoin Mining • Minting: creation of new currency. Creation+re-confirmation of older transactions data from previous

Crypto Currencies Mining

Money Transfer

7 Nicolas T. Courtois 2009-2014

Page 8: Bitcoin Miner Optimization - KNAW · Crypto Currencies Mining Bitcoin Mining • Minting: creation of new currency. Creation+re-confirmation of older transactions data from previous

Crypto Currencies Mining

Is Bitcoin Money?

• We will NOT claim it has all the characteristics of money. – it definitely has some!– they are traded against traditional currencies at a number of exchanges.– bitcoins are “legal” by default, – there were some attempts to regulate them and even ban them by governments.

8 Nicolas T. Courtois 2009-2014

Page 9: Bitcoin Miner Optimization - KNAW · Crypto Currencies Mining Bitcoin Mining • Minting: creation of new currency. Creation+re-confirmation of older transactions data from previous

Payment and Crypto Currencies Mining

Who AcceptsBitcoin?

9 Nicolas T. Courtois 2009-2014

Page 10: Bitcoin Miner Optimization - KNAW · Crypto Currencies Mining Bitcoin Mining • Minting: creation of new currency. Creation+re-confirmation of older transactions data from previous

Bitcoin Mining

Bitcoin

Bitcoin =… the most popular peer-to-peer

payment and virtual currency system as of today

10 Nicolas T. Courtois 2013

system as of today

belongs to no one, anarchy

=>

Page 11: Bitcoin Miner Optimization - KNAW · Crypto Currencies Mining Bitcoin Mining • Minting: creation of new currency. Creation+re-confirmation of older transactions data from previous

Crypto Currencies Mining

Crypto Currencies Mining

11 Nicolas T. Courtois 2009-2014

Page 12: Bitcoin Miner Optimization - KNAW · Crypto Currencies Mining Bitcoin Mining • Minting: creation of new currency. Creation+re-confirmation of older transactions data from previous

Crypto Currencies Mining

BitcoinBased on cryptography and network effects.

12 Nicolas T. Courtois 2009-2014

Page 13: Bitcoin Miner Optimization - KNAW · Crypto Currencies Mining Bitcoin Mining • Minting: creation of new currency. Creation+re-confirmation of older transactions data from previous

Crypto Currencies Mining

Jan 2013-Jan 201414 => 1000 USD

13 April 2013 – “Digital Gold”The Economist

10-11 April 2013 – MtGox 24h shutdown

13 Nicolas T. Courtois 2009-2014

Page 14: Bitcoin Miner Optimization - KNAW · Crypto Currencies Mining Bitcoin Mining • Minting: creation of new currency. Creation+re-confirmation of older transactions data from previous

Crypto Currencies Mining

Flash Crash 10 Feb 2014 before 6AM

14 Nicolas T. Courtois 2009-2014

600 => 102 USD in a blink of an eye

Page 15: Bitcoin Miner Optimization - KNAW · Crypto Currencies Mining Bitcoin Mining • Minting: creation of new currency. Creation+re-confirmation of older transactions data from previous

Crypto Currencies Mining

P2P Payment

15 Nicolas T. Courtois 2009-2014

Page 16: Bitcoin Miner Optimization - KNAW · Crypto Currencies Mining Bitcoin Mining • Minting: creation of new currency. Creation+re-confirmation of older transactions data from previous

Crypto Currencies Mining

Bitcoin NetworkSatoshi original idea:• homogenous nodes: they do the same job

– everybody participates equally– everybody is mining– a random graph

16 Nicolas T. Courtois 2009-2014

– a random graph

Page 17: Bitcoin Miner Optimization - KNAW · Crypto Currencies Mining Bitcoin Mining • Minting: creation of new currency. Creation+re-confirmation of older transactions data from previous

Crypto Currencies Mining

The Reality is VERY Different!In violation of the original idea of Satoshi Bitcoin network has

now 4 sorts of VERY DIFFERENT ENTITIES– only “rich people” are mining

• upfront investment of >3000 USD.• 100K active miners as of today?

– some “full nodes”: they trust no one

17 Nicolas T. Courtois 2009-2014

• Satoshi client a.k.a. bitcoind, version 0.8.6. for PC, • 14 Gbytes of disk space, takes 1 day to synchronize

– many nodes do minimal work and minimal storage, they need to trust some other network nodes

– many network nodes are “community services” and/or “businesses” which we need to trust, e.g. analytic tools, exchanges, lotteries, mining pools, etc.

Page 18: Bitcoin Miner Optimization - KNAW · Crypto Currencies Mining Bitcoin Mining • Minting: creation of new currency. Creation+re-confirmation of older transactions data from previous

Crypto Currencies Mining

Digital Currency

18 Nicolas T. Courtois 2009-2014

Page 19: Bitcoin Miner Optimization - KNAW · Crypto Currencies Mining Bitcoin Mining • Minting: creation of new currency. Creation+re-confirmation of older transactions data from previous

Crypto Currencies Mining

Digital Currency

– in bitcoin bank account = a certain private ECDSA key…

=>PK-based Currency, an important modern application of Digital Signatures!

19 Nicolas T. Courtois 2009-2014

an important modern application of Digital Signatures!

Page 20: Bitcoin Miner Optimization - KNAW · Crypto Currencies Mining Bitcoin Mining • Minting: creation of new currency. Creation+re-confirmation of older transactions data from previous

Crypto Currencies Mining

Main Problem:

Avoiding this “Double Spending”

20 Nicolas T. Courtois 2009-2014

Page 21: Bitcoin Miner Optimization - KNAW · Crypto Currencies Mining Bitcoin Mining • Minting: creation of new currency. Creation+re-confirmation of older transactions data from previous

Crypto Currencies Mining

In the PressTHIS IS WRONG:• SHA-256 is a cipher and provides

confidentiality.– Not it is a hash function and provides

integrity of everything

21 Nicolas T. Courtois 2009-2014

integrity of everything [hard to modify./cheat]

• "Bitcoins are encrypted": WRONG– ONLY if you encrypt your wallet, not everybody does.– Also can use SSL in P2P connections…

• communications are encrypted if you use TOR

Page 22: Bitcoin Miner Optimization - KNAW · Crypto Currencies Mining Bitcoin Mining • Minting: creation of new currency. Creation+re-confirmation of older transactions data from previous

Crypto Currencies Mining

Block Chainand Mining

22 Nicolas T. Courtois 2009-2014

and Mining

Page 23: Bitcoin Miner Optimization - KNAW · Crypto Currencies Mining Bitcoin Mining • Minting: creation of new currency. Creation+re-confirmation of older transactions data from previous

Crypto Currencies Mining

Bitcoin Mining

• Minting: creation of new currency.Creation+re-confirmation

of older transactionsdata from previous

transactions RNG

miner’s public key

23 Nicolas T. Courtois 2009-2014

Ownership:– “policed by majority of miners”: – only the owner can transfer [a part of] 25 BTC produced.

HASH

must start with 64 zeros

Page 24: Bitcoin Miner Optimization - KNAW · Crypto Currencies Mining Bitcoin Mining • Minting: creation of new currency. Creation+re-confirmation of older transactions data from previous

Crypto Currencies Mining

Block Chain

Def: A transaction database

shared by everyone.

Also a ledger.

24 Nicolas T. Courtois 2009-2014

Every transaction since ever is public.

Each bitcoin “piece” is a union of things uniquely traced

to their origin in time

(cf. same as for several banknotes due to SN)

Page 25: Bitcoin Miner Optimization - KNAW · Crypto Currencies Mining Bitcoin Mining • Minting: creation of new currency. Creation+re-confirmation of older transactions data from previous

Crypto Currencies Mining

Can Sb. Cancel His Transaction?

Yes if he produces a longer chain with another version of the history.

Very expensive, race against the whole network (the whole planet).

25 Nicolas T. Courtois 2009-2014

In practice transactions cannot be reversed.

Page 26: Bitcoin Miner Optimization - KNAW · Crypto Currencies Mining Bitcoin Mining • Minting: creation of new currency. Creation+re-confirmation of older transactions data from previous

Crypto Currencies Mining

Bitcoin Address

26 Nicolas T. Courtois 2009-2014

Page 27: Bitcoin Miner Optimization - KNAW · Crypto Currencies Mining Bitcoin Mining • Minting: creation of new currency. Creation+re-confirmation of older transactions data from previous

Crypto Currencies Mining

A “Bitcoin Address” = a sort of equivalent of a bank account.

27 Nicolas T. Courtois 2009-2014

Page 28: Bitcoin Miner Optimization - KNAW · Crypto Currencies Mining Bitcoin Mining • Minting: creation of new currency. Creation+re-confirmation of older transactions data from previous

Crypto Currencies Mining

28 Nicolas T. Courtois 2009-2014

H(PublicKey)+checksum

Page 29: Bitcoin Miner Optimization - KNAW · Crypto Currencies Mining Bitcoin Mining • Minting: creation of new currency. Creation+re-confirmation of older transactions data from previous

Crypto Currencies Mining

Bitcoin Ownership

Amounts of money are attributed to public keys. Owner of a certain “Attribution to PK” can at any moment

transfer it to some other PK addresses.

not spentDestructive, cannot spend twice: spent

Page 30: Bitcoin Miner Optimization - KNAW · Crypto Currencies Mining Bitcoin Mining • Minting: creation of new currency. Creation+re-confirmation of older transactions data from previous

Crypto Currencies Mining

Fees => Miner

Page 31: Bitcoin Miner Optimization - KNAW · Crypto Currencies Mining Bitcoin Mining • Minting: creation of new currency. Creation+re-confirmation of older transactions data from previous

Payment and Crypto Currencies Mining

What If / Answer• My private key or password is lost.

• I have an older backup for my wallet

• Password is easy guess• RNG is faulty

.

31 Nicolas T. Courtois 2010-2013

Page 32: Bitcoin Miner Optimization - KNAW · Crypto Currencies Mining Bitcoin Mining • Minting: creation of new currency. Creation+re-confirmation of older transactions data from previous

Payment and Crypto Currencies Mining

What If / Answer• My private key or password is lost.

• I have an older backup for my wallet

• Password is easy guess• RNG is faulty

•All money is lost, NOBODY can recover it•Some money will be recovered, not all.

32 Nicolas T. Courtois 2010-2013

Page 33: Bitcoin Miner Optimization - KNAW · Crypto Currencies Mining Bitcoin Mining • Minting: creation of new currency. Creation+re-confirmation of older transactions data from previous

Payment and Crypto Currencies Mining

What If / Answer• My private key or password is lost.

• I have an older backup for my wallet

• Password is easy guess• RNG is faulty

•All money is lost, NOBODY can recover it•Some money will be recovered, not all.

•My money will be stolen by an anonymous thief…

33 Nicolas T. Courtois 2010-2013

Page 34: Bitcoin Miner Optimization - KNAW · Crypto Currencies Mining Bitcoin Mining • Minting: creation of new currency. Creation+re-confirmation of older transactions data from previous

Payment and Crypto Currencies Mining

Bitcoin Mining

34 Nicolas T. Courtois 2010-2013

Mining

Page 35: Bitcoin Miner Optimization - KNAW · Crypto Currencies Mining Bitcoin Mining • Minting: creation of new currency. Creation+re-confirmation of older transactions data from previous

Payment and Crypto Currencies Mining

Bitcoin Mining

• Minting: creation of new currency.Creation+re-confirmation

of older transactionsdata from previous

transactions RNG

miner’s public key

35 Nicolas T. Courtois 2010-2013

HASH

must start with 60 zeros

Page 36: Bitcoin Miner Optimization - KNAW · Crypto Currencies Mining Bitcoin Mining • Minting: creation of new currency. Creation+re-confirmation of older transactions data from previous

Payment and Crypto Currencies Mining

Bitcoin Randomization

Nonce = def?

Which arrow?

data from previoustransactions RNG

miner’s public key

36 Nicolas T. Courtois 2010-2013

HASH

must start with 60 zeros

Page 37: Bitcoin Miner Optimization - KNAW · Crypto Currencies Mining Bitcoin Mining • Minting: creation of new currency. Creation+re-confirmation of older transactions data from previous

Payment and Crypto Currencies Mining

Bitcoin Mining

• Minting: creation of new currency.Creation+re-confirmation

of older transactions

Random Oracle – like mechanism.

data from previoustransactions RNG

miner’s public key

37 Nicolas T. Courtois 2010-2013

What????????????????HASH

must start with 60 zeros

Page 38: Bitcoin Miner Optimization - KNAW · Crypto Currencies Mining Bitcoin Mining • Minting: creation of new currency. Creation+re-confirmation of older transactions data from previous

Payment and Crypto Currencies Mining

Bitcoin Mining

• Minting: creation of new currency.Creation+re-confirmation

of older transactions

Random Oracle – like mechanism

data from previoustransactions RNG

miner’s public key

38 Nicolas T. Courtois 2010-2013

Means: treat as a DETERMINISTIC black box which answers at random.

YES it is…

HASH

must start with 60 zeros

Page 39: Bitcoin Miner Optimization - KNAW · Crypto Currencies Mining Bitcoin Mining • Minting: creation of new currency. Creation+re-confirmation of older transactions data from previous

Payment and Crypto Currencies Mining

Bitcoin Mining

• Minting: creation of new currency.Creation+re-confirmation

of older transactions

Random Oracle – like mechanism

data from previoustransactions RNG

miner’s public key

39 Nicolas T. Courtois 2010-2013

Means: treat as a DETERMINISTIC black box which answers at random.

YES it is, However now I’m going to show it isn’t.Marginal improvement (a constant factor) .

HASH

must start with 60 zeros

Page 40: Bitcoin Miner Optimization - KNAW · Crypto Currencies Mining Bitcoin Mining • Minting: creation of new currency. Creation+re-confirmation of older transactions data from previous

Payment and Crypto Currencies Mining

Five Generations of Miners

1. CPU Mining

Example: Core i5 2600K, 17.3 Mh/s, 8threads, 75W

40 Nicolas T. Courtois 2010-2013

CPU = about 4000 W / Gh/s

Page 41: Bitcoin Miner Optimization - KNAW · Crypto Currencies Mining Bitcoin Mining • Minting: creation of new currency. Creation+re-confirmation of older transactions data from previous

Payment and Crypto Currencies Mining

Five Generations of Miners

2. GPU Mining

Example: NVIDIA Quadro NVS 3100M, 16 cores, 3.6 Mh/s, 14W

41 Nicolas T. Courtois 2010-2013

CPU = about 4000 W / Gh/s, in this caseGPU = about 4000 W / Gh/s, in this case

Who said GPU was better than CPU?Not always.

Page 42: Bitcoin Miner Optimization - KNAW · Crypto Currencies Mining Bitcoin Mining • Minting: creation of new currency. Creation+re-confirmation of older transactions data from previous

Payment and Crypto Currencies Mining

Five Generations of Miners

3. FPGA Mining

Example: ModMiner Quad, 4 FPGA chips, 800 Mh/s, 40W

42 Nicolas T. Courtois 2010-2013

CPU,GPU = about 4000 W / Gh/sFPGA = about 50 W / Gh/s, in this case

Page 43: Bitcoin Miner Optimization - KNAW · Crypto Currencies Mining Bitcoin Mining • Minting: creation of new currency. Creation+re-confirmation of older transactions data from previous

Payment and Crypto Currencies Mining

Five Generations of Miners

3. FPGA Mining

Example: ModMiner Quad, 4 FPGA chips, 800 Mh/s, 40W

43 Nicolas T. Courtois 2010-2013

CPU,GPU = about 4000 W / Gh/sFPGA = about 50 W / Gh/s

100x less energy.

Page 44: Bitcoin Miner Optimization - KNAW · Crypto Currencies Mining Bitcoin Mining • Minting: creation of new currency. Creation+re-confirmation of older transactions data from previous

Payment and Crypto Currencies Mining

Five Generations of Miners

FPGA: 100x less energy.

Still much less with ASIC: Good points: asynchronous logic, arbitrary gates, etc..Drawback: hard to update!

44 Nicolas T. Courtois 2010-2013

Another 10 – 100 times improvement.(100x is cheating:

I was comparing one 28 nm ASIC to one 45 nm FPGA)

Page 45: Bitcoin Miner Optimization - KNAW · Crypto Currencies Mining Bitcoin Mining • Minting: creation of new currency. Creation+re-confirmation of older transactions data from previous

Payment and Crypto Currencies Mining

Five Generations of Miners

4. ASIC Miners

CPU,GPU = about 4000 W / Gh/s

45 Nicolas T. Courtois 2010-2013

CPU,GPU = about 4000 W / Gh/sFPGA = about 50 W / Gh/sASIC = now down to 0.35 W / Gh/s

Overall we have improved the efficiency 10,000 times since Satoshi started mining in early 2009…

Page 46: Bitcoin Miner Optimization - KNAW · Crypto Currencies Mining Bitcoin Mining • Minting: creation of new currency. Creation+re-confirmation of older transactions data from previous

Payment and Crypto Currencies Mining

Five Generations of Miners?

5. Quantum Miners????

46 Nicolas T. Courtois 2010-2013

Page 47: Bitcoin Miner Optimization - KNAW · Crypto Currencies Mining Bitcoin Mining • Minting: creation of new currency. Creation+re-confirmation of older transactions data from previous

Payment and Crypto Currencies Mining

By power / Gh/s

ASICs Comparison

0.35 W low power mode

1 W

3.2 W

47 Nicolas T. Courtois 2010-2013

1 W

cf.https://en.bitcoin.it/wiki/Mining_hardware_comparis on

1 W

Page 48: Bitcoin Miner Optimization - KNAW · Crypto Currencies Mining Bitcoin Mining • Minting: creation of new currency. Creation+re-confirmation of older transactions data from previous

Payment and Crypto Currencies Mining

See bitcoinscammers.com

Criminal Scams

Page 49: Bitcoin Miner Optimization - KNAW · Crypto Currencies Mining Bitcoin Mining • Minting: creation of new currency. Creation+re-confirmation of older transactions data from previous

Payment and Crypto Currencies Mining

Bitcoin And Hash Functions

49 Nicolas T. Courtois 2010-2013

And Hash Functions

Page 50: Bitcoin Miner Optimization - KNAW · Crypto Currencies Mining Bitcoin Mining • Minting: creation of new currency. Creation+re-confirmation of older transactions data from previous

Crypto Currencies Mining

Our Paper:arxiv.org/abs/1310.7935

50

Page 51: Bitcoin Miner Optimization - KNAW · Crypto Currencies Mining Bitcoin Mining • Minting: creation of new currency. Creation+re-confirmation of older transactions data from previous

Payment and Crypto Currencies Mining

Mining Overviewhashed data from previous transactions

3x SHA-256 compression

51 Nicolas T. Courtois 2010-2013

Goal: find a valid pair (merkle_root, nonce)which gives 60 bits at 0 in H2

CISO Problem : Constrained Input Small Output

Page 52: Bitcoin Miner Optimization - KNAW · Crypto Currencies Mining Bitcoin Mining • Minting: creation of new currency. Creation+re-confirmation of older transactions data from previous

Payment and Crypto Currencies Mining

Mining Internalshashed data from previous transactions

Page 53: Bitcoin Miner Optimization - KNAW · Crypto Currencies Mining Bitcoin Mining • Minting: creation of new currency. Creation+re-confirmation of older transactions data from previous

Payment and Crypto Currencies Mining

Bitcoin Hash Functions

53 Nicolas T. Courtois 2010-2013

Hash FunctionsAnd Block Ciphers (!)

Page 54: Bitcoin Miner Optimization - KNAW · Crypto Currencies Mining Bitcoin Mining • Minting: creation of new currency. Creation+re-confirmation of older transactions data from previous

Payment and Crypto Currencies Mining

SHA-256 Compression Function

cf. Pieprzyk, Matusiewicz et al.

block cipher

Davies-Meyer

Page 55: Bitcoin Miner Optimization - KNAW · Crypto Currencies Mining Bitcoin Mining • Minting: creation of new currency. Creation+re-confirmation of older transactions data from previous

Payment and Crypto Currencies Mining

Fact:

The process of BitCoin Mining is no different than a brute force attack on a block cipher:

– Apply the same box many times, with different keys…– Here the block cipher is a part of a hash function but it does NOT

matter.• 98% of computational effort is

evaluating this block cipher box with various keys and various inputs

55 Nicolas T. Courtois 2010-2013

evaluating this block cipher box with various keys and various inputs• Like a random oracle.

BLOCK

CIPHER

PLAIN

KEY

Page 56: Bitcoin Miner Optimization - KNAW · Crypto Currencies Mining Bitcoin Mining • Minting: creation of new currency. Creation+re-confirmation of older transactions data from previous

Transforms a block cipher into a hash function.In SHA-256 we have: block size=256, 64 rounds, key size=256 expanded 4x.

Payment and Crypto Currencies Mining

Davies-Meyer

M_imessage block

56 Nicolas T. Courtois 2010-2013

KEYCIPHER

PLAIN

IV or last hash

HASH

M_i

Page 57: Bitcoin Miner Optimization - KNAW · Crypto Currencies Mining Bitcoin Mining • Minting: creation of new currency. Creation+re-confirmation of older transactions data from previous

Payment and Crypto Currencies Mining

***One Round of SHA-256cf. Pieprzyk, Matusiewicz et al.

Page 58: Bitcoin Miner Optimization - KNAW · Crypto Currencies Mining Bitcoin Mining • Minting: creation of new currency. Creation+re-confirmation of older transactions data from previous

Payment and Crypto Currencies Mining

Optimising Mining (38% gain)

58 Nicolas T. Courtois 2010-2013

(38% gain)

Page 59: Bitcoin Miner Optimization - KNAW · Crypto Currencies Mining Bitcoin Mining • Minting: creation of new currency. Creation+re-confirmation of older transactions data from previous

Payment and Crypto Currencies Mining

Hashing Block of 300+ Bits

cf. Pieprzyk, Matusiewicz et al.

padding added

Page 60: Bitcoin Miner Optimization - KNAW · Crypto Currencies Mining Bitcoin Mining • Minting: creation of new currency. Creation+re-confirmation of older transactions data from previous

Payment and Crypto Currencies Mining

Hashing Block of 300+ Bits

cf. Pieprzyk, Matusiewicz et al.

padding added

Page 61: Bitcoin Miner Optimization - KNAW · Crypto Currencies Mining Bitcoin Mining • Minting: creation of new currency. Creation+re-confirmation of older transactions data from previous

Payment and Crypto Currencies Mining

Padding

Page 62: Bitcoin Miner Optimization - KNAW · Crypto Currencies Mining Bitcoin Mining • Minting: creation of new currency. Creation+re-confirmation of older transactions data from previous

Payment and Crypto Currencies Mining

+ Second Hash

Page 63: Bitcoin Miner Optimization - KNAW · Crypto Currencies Mining Bitcoin Mining • Minting: creation of new currency. Creation+re-confirmation of older transactions data from previous

Payment and Crypto Currencies Mining

Inputs

Page 64: Bitcoin Miner Optimization - KNAW · Crypto Currencies Mining Bitcoin Mining • Minting: creation of new currency. Creation+re-confirmation of older transactions data from previous

Payment and Crypto Currencies Mining

Davies-Meyer

Page 65: Bitcoin Miner Optimization - KNAW · Crypto Currencies Mining Bitcoin Mining • Minting: creation of new currency. Creation+re-confirmation of older transactions data from previous

Payment and Crypto Currencies Mining

Mining Internalshashed data from previous transactions

Page 66: Bitcoin Miner Optimization - KNAW · Crypto Currencies Mining Bitcoin Mining • Minting: creation of new currency. Creation+re-confirmation of older transactions data from previous

Payment and Crypto Currencies Mining

Improvement 1 – Amortized Cost(H0)=0

Page 67: Bitcoin Miner Optimization - KNAW · Crypto Currencies Mining Bitcoin Mining • Minting: creation of new currency. Creation+re-confirmation of older transactions data from previous

Payment and Crypto Currencies Mining

Improvement 2 – Gains 3 Rounds At the End

Page 68: Bitcoin Miner Optimization - KNAW · Crypto Currencies Mining Bitcoin Mining • Minting: creation of new currency. Creation+re-confirmation of older transactions data from previous

Payment and Crypto Currencies Mining

Improvement 3 –

Gains 3 Rounds

At the Beginning Beginning

–they do NOT depend

on the nonce

Page 69: Bitcoin Miner Optimization - KNAW · Crypto Currencies Mining Bitcoin Mining • Minting: creation of new currency. Creation+re-confirmation of older transactions data from previous

Payment and Crypto Currencies Mining

Improvement 4 –

Incremental Incremental Computation

Page 70: Bitcoin Miner Optimization - KNAW · Crypto Currencies Mining Bitcoin Mining • Minting: creation of new currency. Creation+re-confirmation of older transactions data from previous

Payment and Crypto Currencies Mining

Improvement 4 - contd

–Incremental Computation

1 increment instead of 400 gates.

Page 71: Bitcoin Miner Optimization - KNAW · Crypto Currencies Mining Bitcoin Mining • Minting: creation of new currency. Creation+re-confirmation of older transactions data from previous

Payment and Crypto Currencies Mining

Improvement 5 –

Gains Gains 18 Additions ≈ 3600 gates

Page 72: Bitcoin Miner Optimization - KNAW · Crypto Currencies Mining Bitcoin Mining • Minting: creation of new currency. Creation+re-confirmation of older transactions data from previous

Payment and Crypto Currencies Mining

Improvement 6 –

Saving 2 More Additions ≈ 400 gates

with Hard Codingwith Hard Coding

AND SAVE LIKE HALF of the next addition!

(addition with a constant = cheaper, depends on the constant, needs a sort of

‘compiler’, slowly changing)

Page 73: Bitcoin Miner Optimization - KNAW · Crypto Currencies Mining Bitcoin Mining • Minting: creation of new currency. Creation+re-confirmation of older transactions data from previous

Crypto Currencies Mining

Message Schedule

=> just copy for 16 R

non-trivial part

Page 74: Bitcoin Miner Optimization - KNAW · Crypto Currencies Mining Bitcoin Mining • Minting: creation of new currency. Creation+re-confirmation of older transactions data from previous

Payment and Crypto Currencies Mining

Message Schedule

Page 75: Bitcoin Miner Optimization - KNAW · Crypto Currencies Mining Bitcoin Mining • Minting: creation of new currency. Creation+re-confirmation of older transactions data from previous

Payment and Crypto Currencies Mining

Improvement 7 - Fact:

Some early values do NOT yet depend on the nonce. In H1 computation only (left column).

Page 76: Bitcoin Miner Optimization - KNAW · Crypto Currencies Mining Bitcoin Mining • Minting: creation of new currency. Creation+re-confirmation of older transactions data from previous

Payment and Crypto Currencies Mining

Improvement 7 – 3 more

2 more 32-bit additions are saved by hard coding, and more for the next addition

(again, adding a constant, depends on the constant, average cost maybe saving another 1? addition).

Some 600 extra gates saved. Some 600 extra gates saved.

Page 77: Bitcoin Miner Optimization - KNAW · Crypto Currencies Mining Bitcoin Mining • Minting: creation of new currency. Creation+re-confirmation of older transactions data from previous

Payment and Crypto Currencies Mining

Improvement 8 – 1 More Incremental

We have: nonce

Page 78: Bitcoin Miner Optimization - KNAW · Crypto Currencies Mining Bitcoin Mining • Minting: creation of new currency. Creation+re-confirmation of older transactions data from previous

Payment and Crypto Currencies Mining

Optimising The Mining

Page 79: Bitcoin Miner Optimization - KNAW · Crypto Currencies Mining Bitcoin Mining • Minting: creation of new currency. Creation+re-confirmation of older transactions data from previous

Payment and Crypto Currencies Mining

Future – Dan Kaminsky

79 Nicolas T. Courtois 2010-2013

Page 80: Bitcoin Miner Optimization - KNAW · Crypto Currencies Mining Bitcoin Mining • Minting: creation of new currency. Creation+re-confirmation of older transactions data from previous

Payment and Crypto Currencies Mining

San Diego Bitcoin Conference May 2013

Earlier he said that he has no stakes in ‘this game’. Then at minute 40 he claims that the current Bitcoin Proof of Work function based on SHA-256 will not survive “the year” (to be replaced before end of 2013). He says that assigns zero percent probability that “we” will continue with the present POW function”. Back to CPU mining.

https://www.youtube.com/watch?v=si-2niFDgtI

Page 81: Bitcoin Miner Optimization - KNAW · Crypto Currencies Mining Bitcoin Mining • Minting: creation of new currency. Creation+re-confirmation of older transactions data from previous

Payment and Crypto Currencies Mining

SHA-256 to be phased out?

https://www.youtube.com/watch?v=si-2niFDgtI

HOWEVER:NOBODY OWNS BITCOINNOBODY OWNS BITCOINWe claim the contrary: any attempt to change the POW is close

to impossible to enforce AND if mandated by some group of people, it will lead to a SPLIT IN THE BITCOIN COMMUNITY.

An organised divorce of people and software developers who will be running two separate block chain versions.

Page 82: Bitcoin Miner Optimization - KNAW · Crypto Currencies Mining Bitcoin Mining • Minting: creation of new currency. Creation+re-confirmation of older transactions data from previous

Crypto Currencies Mining

Mining In Pools

82 Nicolas T. Courtois 2009-2014

Page 83: Bitcoin Miner Optimization - KNAW · Crypto Currencies Mining Bitcoin Mining • Minting: creation of new currency. Creation+re-confirmation of older transactions data from previous

Crypto Currencies Mining

Why Pools?

Reason 1. To smooth the gains: Instead of waiting 1 year to get 25 BTC, why not get a little money every day?

Reason 2. Huge Incertitudes: Law Of Bitcoin Minining: It follows the Poisson Distribution.

VERY STRESSFUL. Cannot sleep at night. VERY STRESSFUL. Cannot sleep at night.

Page 84: Bitcoin Miner Optimization - KNAW · Crypto Currencies Mining Bitcoin Mining • Minting: creation of new currency. Creation+re-confirmation of older transactions data from previous

Crypto Currencies Mining

Major Pools In Existence

Miners tend to flock to the largest pools.

Page 85: Bitcoin Miner Optimization - KNAW · Crypto Currencies Mining Bitcoin Mining • Minting: creation of new currency. Creation+re-confirmation of older transactions data from previous

Crypto Currencies Mining

Pools Operation

Question: but is there a “fair and secure” implementation?

Answer: Probably There Isn’t.

Typically miners with a private key not known to individual miners!.⇒ In theory the pool manager could steal the money. ⇒Must be trusted.

⇒ risk is mitigated by frequent pay-outs

Page 86: Bitcoin Miner Optimization - KNAW · Crypto Currencies Mining Bitcoin Mining • Minting: creation of new currency. Creation+re-confirmation of older transactions data from previous

Crypto Currencies Mining

Bitcoin Share

A proof of effort: allows one to be paid.=def= A hash starting with 32 zeros (one in 232 hashes).

B064 zeros

32 zerosreward paid

Page 87: Bitcoin Miner Optimization - KNAW · Crypto Currencies Mining Bitcoin Mining • Minting: creation of new currency. Creation+re-confirmation of older transactions data from previous

Crypto Currencies Mining

Bitcoin Share

A proof of effort: allows one to be paid.=def= A hash starting with 32 zeros (one in 232 hashes).

B064 zeros

32 zerosreward paid

B0 B164 zeros64 zeros

much later, after 2 41 shares have been found…

new block

Page 88: Bitcoin Miner Optimization - KNAW · Crypto Currencies Mining Bitcoin Mining • Minting: creation of new currency. Creation+re-confirmation of older transactions data from previous

Crypto Currencies Mining

Attacks: Pool Hopping Attack

88 Nicolas T. Courtois 2009-2014

Page 89: Bitcoin Miner Optimization - KNAW · Crypto Currencies Mining Bitcoin Mining • Minting: creation of new currency. Creation+re-confirmation of older transactions data from previous

Crypto Currencies Mining

Pool Hopping – Main Idea

If a miner mines in a pool in which a lot of shares have already been submitted and no block has yet been found, he will gain less in expectation because the reward will be shared with the miners who have contributed to this pool.

Therefore at a certain moment it may be profitable to stop Therefore at a certain moment it may be profitable to stop mining in this pool and contribute elsewhere (reward will be shared with less people).

Page 90: Bitcoin Miner Optimization - KNAW · Crypto Currencies Mining Bitcoin Mining • Minting: creation of new currency. Creation+re-confirmation of older transactions data from previous

Crypto Currencies Mining

Selfish Mining and Block Discarding Attacks [2013]

90 Nicolas T. Courtois 2009-2014

Page 91: Bitcoin Miner Optimization - KNAW · Crypto Currencies Mining Bitcoin Mining • Minting: creation of new currency. Creation+re-confirmation of older transactions data from previous

Crypto Currencies Mining

Selfish Mining Attacks

Proposed independently by Eyal-Sirer [Cornell] and also by Bahack [Open Univ. of Israel] in 2013.

Very famous, “bitcoin is broken” etc…

• In fact this is a very theoretical attack, most probably without a lot of practical importance…

• It relies entirely on “rare events”, most of the time there is no advantage to the attacker.

Page 92: Bitcoin Miner Optimization - KNAW · Crypto Currencies Mining Bitcoin Mining • Minting: creation of new currency. Creation+re-confirmation of older transactions data from previous

Crypto Currencies Mining

Selfish Mining Attacks

Assumption 1:If there is the longest chain in the bitcoin blockchain,

everybody mines on it. Called “consensus” Doing otherwise would be really stupid.

Page 93: Bitcoin Miner Optimization - KNAW · Crypto Currencies Mining Bitcoin Mining • Minting: creation of new currency. Creation+re-confirmation of older transactions data from previous

Crypto Currencies Mining

Selfish Mining Attacks

Assumption 2:At any moment during the attack there are up to two competitive

public branches one of which can have a secret extension.• we have either just one branch

(with possibly a secret extension by the attacker’s)by the attacker’s)

• or a public fork with two branches of equal depth k

in the case of a fork one branch is composed solely of honest miner's blocks and the other is composed solely of attacker's blocks (which at moments can have a secret extension).

Page 94: Bitcoin Miner Optimization - KNAW · Crypto Currencies Mining Bitcoin Mining • Minting: creation of new currency. Creation+re-confirmation of older transactions data from previous

Crypto Currencies Mining

Selective Disclosure

Attackers keep their blocks secret for some time, in order to make the honest majority lose energy mining on obsolete blocks.

However when other find a block, subversive miners disclose their ASAP. Known to them A BIT earlier. Small advantage.

Page 95: Bitcoin Miner Optimization - KNAW · Crypto Currencies Mining Bitcoin Mining • Minting: creation of new currency. Creation+re-confirmation of older transactions data from previous

Crypto Currencies Mining

Overall Result

Subversive miners can earn a bit more. Not a big deal.

Remark[Courtois]this attack is all about

e.g.

later wasted

events which almost never happen in the current bitcoin network.

Unlikely to get very significant…

Page 96: Bitcoin Miner Optimization - KNAW · Crypto Currencies Mining Bitcoin Mining • Minting: creation of new currency. Creation+re-confirmation of older transactions data from previous

Crypto Currencies Mining

Our New Paper[2014]

96 Nicolas T. Courtois 2009-2014

Page 97: Bitcoin Miner Optimization - KNAW · Crypto Currencies Mining Bitcoin Mining • Minting: creation of new currency. Creation+re-confirmation of older transactions data from previous

Crypto Currencies Mining

Block Withholding AttacksCf. Nicolas Courtois, Lear Bahack:On Subversive Miner Strategies and Block Withholding Attackin Bitcoin Digital Currency http://arxiv.org/abs/1402.1718

Page 98: Bitcoin Miner Optimization - KNAW · Crypto Currencies Mining Bitcoin Mining • Minting: creation of new currency. Creation+re-confirmation of older transactions data from previous

Crypto Currencies Mining

Main Result

We revisit a known idea: block withholding.The miners mine in pools, they report shares but in (very rare)

case when they find the ‘winning’ tickets.

We show that this attack cannot be detected, not even in theory.theory.

We show that for very large pools, it will be visible, but nobody can say who is responsible.

This attack was known [Rosenfeld] and in the initial version the subversive miners gained nothing: everybody lost.

Page 99: Bitcoin Miner Optimization - KNAW · Crypto Currencies Mining Bitcoin Mining • Minting: creation of new currency. Creation+re-confirmation of older transactions data from previous

Crypto Currencies Mining

Our Block Withholding Attack

We propose a better version, in which subversive miners DO get more than their fair share.

It is very simple:• 50 % of subversive miners withhold blocks they fin• 50 % mine solo normally (or in other pools).• 50 % mine solo normally (or in other pools).

We show that: 50-50 split maximizes the gain.

We claim that this simple attack is by far more practical and more realistic than the Cornell attack [1000s of press reports].