Advanced Network Security -. Bitcoin Jaap-Henk Hoepman Digital - - PowerPoint PPT Presentation

advanced network security bitcoin
SMART_READER_LITE
LIVE PREVIEW

Advanced Network Security -. Bitcoin Jaap-Henk Hoepman Digital - - PowerPoint PPT Presentation

Advanced Network Security -. Bitcoin Jaap-Henk Hoepman Digital Security (DS) Radboud University Nijmegen, the Netherlands @xotoxot // * jhh@cs.ru.nl // 8 www.cs.ru.nl/~jhh Bitcoin 01-02- // Course outline 2 Jaap-Henk Hoepman // Radboud


slide-1
SLIDE 1

Jaap-Henk Hoepman

Digital Security (DS) Radboud University Nijmegen, the Netherlands

@xotoxot // * jhh@cs.ru.nl // 8 www.cs.ru.nl/~jhh

Advanced Network Security

  • . Bitcoin
slide-2
SLIDE 2

Jaap-Henk Hoepman // Radboud University Nijmegen //

Bitcoin

01-02- // Course outline 2

slide-3
SLIDE 3

Jaap-Henk Hoepman // Radboud University Nijmegen //

Who am I?

l Tommy Koens l PhD student on Privacy & Security in Cryptocurrencies l Promotor: Bart Jacobs; Supervisor: Jaap-Henk Hoepman l Also working at ING's Cyber Security team l Contact: tkoens@cs.ru.nl

01-02- // Course outline 3

slide-4
SLIDE 4

Jaap-Henk Hoepman // Radboud University Nijmegen //

Today’s topics

l On Bitcoin l Bitcoin transactions l The Bitcoin network and actors l Mining and incentives l Attacks and possible solutions l Other uses of a blockchain

01-02- // Course outline 4

slide-5
SLIDE 5

Jaap-Henk Hoepman // Radboud University Nijmegen //

Payment systems – Some properties

l Cash – transactions anonymous, slow on a global scale l Online banking – central system, not anonymous l E-cash (Chaum's) – anonymous, centralized l Bitcoin – decentralized, not anynomous

– Over 600 other cryptocurrencies – See: https://coinmarketcap.com/

l ZCash – decentralized, anonymous

01-02- // Course outline 5

slide-6
SLIDE 6

Jaap-Henk Hoepman // Radboud University Nijmegen //

On Bitcoin

l Bitcoin: the paper

– Satoshi Nakamoto, 2008 – Bitcoin: A Peer-to-Peer Electronic Cash System

l Bitcoin: the system

– A trustless payment system, backed by cryptography

l bitcoin: the coin

– One bitcoin (BTC; 1200 €) consists of one hundred million Satoshis.

01-02- // Course outline 6

slide-7
SLIDE 7

Jaap-Henk Hoepman // Radboud University Nijmegen //

Why is Bitcoin so interesting?

l Before 2009, several proposals were made for electronic cash,

like E-cash (Chaum, 1983); BitGold (Szabo, 1998); b-money (Dai, 1998)

l However, Bitcoin combines the best aspects of these

technologies to achieve distributed consensus

l To achieve distributed consensus Bitcoin uses a technology

called blockchain

01-02- // Course outline 7

slide-8
SLIDE 8

Jaap-Henk Hoepman // Radboud University Nijmegen //

How does Bitcoin work? High level overview

01-02- // Course outline 8

slide-9
SLIDE 9

Jaap-Henk Hoepman // Radboud University Nijmegen //

Agenda

l On Bitcoin l Transactions l Mining / incentives l Blockchain(s) and consensus l Attacks l Other uses of a blockchain

01-02- // Course outline 9

slide-10
SLIDE 10

Jaap-Henk Hoepman // Radboud University Nijmegen //

Regular transactions and fees

Source: https://bitcoin.org/en/developer-guide#block-chain-overview

01-02- // Course outline 10

slide-11
SLIDE 11

Jaap-Henk Hoepman // Radboud University Nijmegen //

Transactions

l A transaction frame l Version – Which protocol version is used l Inputs – Proof ownership of coins l Outputs – Set requirements to proof ownership l An Input always references to an (previous) Output

01-02- // Course outline 11

slide-12
SLIDE 12

Jaap-Henk Hoepman // Radboud University Nijmegen //

Transaction: Outputs frame

l

Index number – Location in the transaction (sequential. 0, 1, etc)

l

Amount – Number of coins sent

l

Pubkey script – Conditions set to spend the Amount

01-02- // Course outline 12

slide-13
SLIDE 13

Jaap-Henk Hoepman // Radboud University Nijmegen //

Transactions: Inputs frame

l

Transaction identifier – Uniqueliy identifies a transaction (SHA256d)

l

Outut index number – References to a particular output from which coins are spent

l

Sequence number – mine tx when timelock is satified

l

Signature script – Provides parameters to satisfy the Pubkey script

  • Combining Signature script with a Pubkey script

01-02- // Course outline 13

slide-14
SLIDE 14

Jaap-Henk Hoepman // Radboud University Nijmegen //

Transactions: Script validation

01-02- // Course outline 14

Scripts: Stack based language

slide-15
SLIDE 15

Jaap-Henk Hoepman // Radboud University Nijmegen //

Transactions: Validity rules

When is a transaction valid? E.g.:

l It should confirm to the rules according to the current protocol

version format

l The amount of the transaction cannot be larger then the sum of

the total inputs

l Proof of ownership must be present – script validation l See: https://en.bitcoin.it/wiki/Protocol_rules#Transactions

01-02- // Course outline 15

slide-16
SLIDE 16

Jaap-Henk Hoepman // Radboud University Nijmegen //

Agenda

l On Bitcoin l Transactions l The Bitcoin network / actors l Mining / incentives l Attacks l Other uses of a blockchain

01-02- // Course outline 16

slide-17
SLIDE 17

Jaap-Henk Hoepman // Radboud University Nijmegen //

The Bitcoin network / actors

l P2P network l Propagation method: <inv> & <getdata> l No broadcasts. Why not?

01-02- // Course outline 17

slide-18
SLIDE 18

Jaap-Henk Hoepman // Radboud University Nijmegen //

The Bitcoin network / actors

l Buyers – create transactions l Sellers – offer goods l Miners / Mining pools – provide network security l Core developers – Maintain Bitcoin code l Community – Discussion and direction / run DNS servers l Government / Law enforcement / Financial institutions l Other parties (servcies): Exchanges / Wallet providers / Mixers

01-02- // Course outline 18

slide-19
SLIDE 19

Jaap-Henk Hoepman // Radboud University Nijmegen //

Bitcoin types

l Bitcoin Core Ø Vanilla Bitcoin l Bitcoin XT (fork) Ø Blocksize debate (8 MB blocks) l Bitcoin classic (fork) Ø Blocksize debate (2 MB blocks) l Bitcoin unlimited (fork) Ø Blocksize debate (block size by consensus)

01-02- // Course outline 19

slide-20
SLIDE 20

Jaap-Henk Hoepman // Radboud University Nijmegen //

Agenda

l On Bitcoin l Transactions l The Bitcoin network / actors l Mining / incentives l Attacks l Other uses of a blockchain

01-02- // Course outline 20

slide-21
SLIDE 21

Jaap-Henk Hoepman // Radboud University Nijmegen //

Mining blocks

l

How to prevent a double spend?

l

“The payee needs proof that at the time of each transaction, the majority of nodes agreed it was the first received.” (Nakamoto, 2008)

l

Miners secure the network, by timestamping sets of transactions

l

Set of transactions = block

01-02- // Course outline 21

slide-22
SLIDE 22

Jaap-Henk Hoepman // Radboud University Nijmegen //

Mining blocks – Preparation

l

Collect and validate transactions – If not valid, ignore transaction

l

Store transactions in mempool (volatile memory)

l

Select transactions and create a Merkle Root

l

Selected transactions are store in the 'block body'

l

The Merkle root goes into the 'block header'

l

A block has a fixed size (in Bitcoin, currently) of 1 MegaByte

01-02- // Course outline 22

slide-23
SLIDE 23

Jaap-Henk Hoepman // Radboud University Nijmegen //

Mining blocks – Block body

The block body contains:

  • Transactions
  • Coinbase transaction
  • If succesfully mined (block header), the miner sends 12.5 BTC

(block reward) to himself

  • Thus, Bitcoins are generated out of thin air, each time a block is

mined

  • Block reward halfs every 210.000 blocks
  • Maximum no. of BTC to be ever produced: 21.000.000

01-02- // Course outline 23

  • Coinbase tx
  • tx1
  • tx2
  • tx-n
slide-24
SLIDE 24

Jaap-Henk Hoepman // Radboud University Nijmegen //

Mining blocks

The block header contains:

l Version – current protocol version l Hash previous block – links blocks l Merkle root – from transactions in block body l Timestamp – current time (Unix time) l Bits – represents current difficulty l Nonce – 32-bit number, starts at 0

Source: https://21.co/learn/bitcoin-mining/#the-merkle-root

01-02- // Course outline 24

slide-25
SLIDE 25

Jaap-Henk Hoepman // Radboud University Nijmegen //

Mining blocks

l Mining is finding a hash that matches the target l Target – a hash with a specific number of leading zeros l Hash the block header, if no match, nonce++, repeat. l Difficulty – How difficult it is to find the next block hash (i.e. # of

zeros)

l Current difficulty: approx. 515.087,178,955 (500 billion tries)

Meaning:

01-02- // Course outline 25

slide-26
SLIDE 26

Jaap-Henk Hoepman // Radboud University Nijmegen //

Mining result

l

Block is 'broadcast'

l

If a node accept the block, the block is added to the blockchain

l

Thus, consensus is reached; transaction and mining process starts again

01-02- // Course outline 26

slide-27
SLIDE 27

Jaap-Henk Hoepman // Radboud University Nijmegen //

Blockchain forks

01-02- // Course outline 27

How does Bitcoin prevent (or mitigate) this issue?

slide-28
SLIDE 28

Jaap-Henk Hoepman // Radboud University Nijmegen //

Mining – proof-of-methods

l

Proof-of-Work – find a SHA256 hash, based on processor resource (external) Proof-of-'useful'-Work

l

PrimeCoin – find prime numbers

l

Proof-of-Research – protein folding

l

SolarCoin – Gain reward based on solar energy

01-02- // Course outline 28

slide-29
SLIDE 29

Jaap-Henk Hoepman // Radboud University Nijmegen //

Mining – other proof-of-methods

l

Proof-of-Work variations (e.g.): – Hash variants (e.g. BlakeCoin, Blake-256) – Cuckoo hashing, ASIC resistant (Tromp, 2015)

l

Proof-of-Stake – Coins as internal resource (e.g. Kind and Nadal, 2012)

l

Proof-of-Stake-time – Time as a resource (Milutinovic, 2016)

l

Proof-of-Space – Disk space as a resource (Dziembowski et al., 2013)

01-02- // Course outline 29

slide-30
SLIDE 30

Jaap-Henk Hoepman // Radboud University Nijmegen //

Agenda

l On Bitcoin l Transactions l The Bitcoin network / actors l Mining / incentives l Attacks l Other uses of a blockchain

01-02- // Course outline 30

slide-31
SLIDE 31

Jaap-Henk Hoepman // Radboud University Nijmegen //

Attacks and Concerns

Just to mention a few:

l Finney attack l 51% attack l Power concerns l Scalability (blockchain / transaction) l Privacy l Decentralization

01-02- // Course outline 31

slide-32
SLIDE 32

Jaap-Henk Hoepman // Radboud University Nijmegen //

Finney attack

How can we prevent (or mitigate) this attack?

l

Mine a block b which includes a transaction t1 with coins xyz sending to self

l

Buy goods with coins xyz in transaction t2 from vendor

l

Once goods obtained, send block b

l

t2 likely will be in included in block b'

l

b is likely the longest chain (sent first), so t1 prevails, t2 is discarded

l

Goods are obtained – for free.

01-02- // Course outline 32

slide-33
SLIDE 33

Jaap-Henk Hoepman // Radboud University Nijmegen //

51% attack

How can we prevent (or mitigate) this attack?

l

Suppose a miner obtains more than 50% of the total network's hashing power

l

The attacker can create blocks faster than the rest of the network

l

Which enables double spends (see Finney attack)

l

>50% hashing power = 100% probability of double spend

l

<50% hashing power = lower probability (but not 0!)

01-02- // Course outline 33

slide-34
SLIDE 34

Jaap-Henk Hoepman // Radboud University Nijmegen //

Power concerns

l

Bitcoin's PoW currently is 1.27 exahash Kilo, Mega, Giga, Tera, Peta, Exa (10^18), Zetta, Yotta.

l

That's almost the amount of Ireland's yearly energy consumption (O'Dwyert & Malone, 2013)

l

Is Bitcoin really cheaper than a central financial institution?

l

Possible solution: Other proof-of-methods aim to solve this issue, like proof-of-stake

01-02- // Course outline 34

slide-35
SLIDE 35

Jaap-Henk Hoepman // Radboud University Nijmegen //

Propagation / verification time

l

Transaction propagation – couple of seconds on average for 95%

  • f the network – approx. 3 seconds on average.

l

Block propagation (max 1 MB) – about 40 seconds (for 95% of the network) – 12,6 on average

l

What happens if we increase the block size, as with Bitcoin Classic (2 MB blocks), or Bitcoin XT (8 MB blocks)?

l

Block generation frequency: 10 minutes, on average.

l

Want to be pretty sure? 6 blocks = 60 minutes

01-02- // Course outline 35

slide-36
SLIDE 36

Jaap-Henk Hoepman // Radboud University Nijmegen //

Scalability

l

Blockchain is over 100 GB in size – and growing

l

Not an ideal scenario for the Internet-of-Things

l

Cryptonite: fixed blockchain size by separating blockchain functionalities (Bruce, 2014)

l

Bitcoin can handle at most 7 transactions per second

l

(1.000.000 bytes block size / 240 byte transaction (lower bound)) / 600 seconds = 7

l

Segregated Witness (Wuille, 2015) – approx 45% increase for blocks

01-02- // Course outline 36

slide-37
SLIDE 37

Jaap-Henk Hoepman // Radboud University Nijmegen //

Privacy (1/3)

Is Bitcoin privacy friendly? No.

l Public blockchain links transactions (unlinkability)

Examples:

l MtGox l Silk Road l DD4BC

See: A fistful of bitcoins: characterizing payments among men with no names (Meiklejohn et al., 2013)

01-02- // Course outline 37

slide-38
SLIDE 38

Jaap-Henk Hoepman // Radboud University Nijmegen //

Privacy (2/3)

What is the main issue here, from Bitcoin's perspective?

l

Mixers – break the link between payer and payee

01-02- // Course outline 38

slide-39
SLIDE 39

Jaap-Henk Hoepman // Radboud University Nijmegen //

Privacy (3/3)

l ZeroCash provides privacy – the protocol l Improved version of ZeroCoin l Zcash – the currency (referenced as ZEC), implementation of

ZeroCash

l Key cryptographic component: zk-SNARKS l Zero-knowledge succinct non-interactive arguments of knowledge l Main property over zk: require no interaction bewteen prover and

verifier

l

See: Zerocash, Decentralized Anonymous Payments from Bitcoin (Ben-Sasson et al., 2014)

01-02- // Course outline 39

slide-40
SLIDE 40

Jaap-Henk Hoepman // Radboud University Nijmegen //

  • Decentralization. Who is in charge?

l

Core Developers do the coding

l

Community has its say through forums

l

Users are free (not) to use the software

l

Payers/Payees perform transactions

l

Miners ensure security / generation of new coins

l

Merchants offer goods for BTC

01-02- // Course outline 40

slide-41
SLIDE 41

Jaap-Henk Hoepman // Radboud University Nijmegen //

Agenda

l On Bitcoin l Transactions (regular / pay-to-script-hash) l The Bitcoin network / actors l Mining / incentives l Attacks l Other uses of a blockchain

01-02- // Course outline 41

slide-42
SLIDE 42

Jaap-Henk Hoepman // Radboud University Nijmegen //

Blockchain, beyond transactions

l

Storage of data – pictures, texts, patents – Genesis block: 'The Times 03/Jan/2009 Chancellor on brink of second bailout for banks'

l

National money – Ecuador

l

Carbon dioxide recording

l

DNS registration – NameCoin

l

Identity management – onename.com

l

Transfer of assets – mortgages, car keys(!?) The question remains – is it useful to apply a blockchain?

01-02- // Course outline 42

slide-43
SLIDE 43

Jaap-Henk Hoepman // Radboud University Nijmegen //

Real world implementations of blockchain tech

Beyond the blockchain hype, some examples:

l

Microsoft – Blockchain as a Service – Run a blockchain node at the service provider

l

IBM – Oil trading platform (based on Hyperledger)

l

MAERSK – Freight tracking

l

Switserland's post-trade market – bonds (debt investment) life cycle

l

Sweden's land registry authority – land registration on blockchain

01-02- // Course outline 43

slide-44
SLIDE 44

Jaap-Henk Hoepman // Radboud University Nijmegen //

Summary

l

Many types of payment systems – most are centralized

l

Bitcoin achieves decentralized consensus

l

Bitcoin essentials: Transactions, P2P network, Mining, and Stakeholders

l

Many (open) issues – Privacy, Scalability, Power concerns, Decentralisation

l

Many applications - Payment system, Contracts, Data storage, Car keys

01-02- // Course outline 44

slide-45
SLIDE 45

Jaap-Henk Hoepman // Radboud University Nijmegen //

Questions

01-02- // Course outline 45