bitcoin tutorial (eff)

Upload: morrow-long

Post on 03-Jun-2018

219 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/11/2019 Bitcoin Tutorial (EFF)

    1/41

    Bitcoin Tutorial

    Joseph Bonneau

    Thanks to Andrew Miller, Arvind Narayanan, Jeremy Clark, Joshua K

  • 8/11/2019 Bitcoin Tutorial (EFF)

    2/41

    Bitcoin has many different part

  • 8/11/2019 Bitcoin Tutorial (EFF)

    3/41

    Part I: Bitcoin in 6 easy s

  • 8/11/2019 Bitcoin Tutorial (EFF)

    4/41

    Double spending: why ecash is

    Alice

    BobSignA(Transfer X to B)

    CharlieSignA(Transfer X to C)

    SignZ(Transfer X to A)

    Redeem X?

    Redeem X?

  • 8/11/2019 Bitcoin Tutorial (EFF)

    5/41

    Step 1: Make the bank a global

    SignA(Transfer X to C)

    ...SignA(Transfer X to B)

    ...

    (the block

    SignatureBANK

    SignatureBANK

    SignatureBANK

    SignatureBANK

  • 8/11/2019 Bitcoin Tutorial (EFF)

    6/41

    Step 2: Participants vote on blo

    SignatureA SignatureB SignatureC ...

    SignatureA SignatureB SignatureC ...

    SignatureA SignatureB SignatureD ...

  • 8/11/2019 Bitcoin Tutorial (EFF)

    7/41

    Step 3: A random user picks

    N-2

    N-1SignatureB

    SignatureA

    NSignatureC

    N

    C

  • 8/11/2019 Bitcoin Tutorial (EFF)

    8/41

    Step 4: Resolve conflicts by for

    SignA(Transfer X to B)SignatureB

    SignatureA

    SignA(Transfer X to C)SignatureC Sign

    Sign

  • 8/11/2019 Bitcoin Tutorial (EFF)

    9/41

    Step 5: Incentivise correct bloc

    SignatureB

    SignatureA

    SignatureC Sign

    Sign

    Mint(X, A)

    Mint(X, B)

    Mint(X, D)

    Mint(X, E)

    Mint(X, C)

  • 8/11/2019 Bitcoin Tutorial (EFF)

    10/41

  • 8/11/2019 Bitcoin Tutorial (EFF)

    11/41

    Step 6: Choose by hash power!

    Mint(X, A)

    Mint(X, B)

    Mint(X, C)

    SHA-256(BlockN-1, n) = 0x00000000

    SHA-256(BlockN-1, n) = 0x0000000

    Mining

    Mining

  • 8/11/2019 Bitcoin Tutorial (EFF)

    12/41

    Preventing double spending

    SignA(Transfer X to B) SignA(Transfer X to C)SignA(Transfer X to B)

    Longest cha in

  • 8/11/2019 Bitcoin Tutorial (EFF)

    13/41

    Transaction confirmation (~6 bl

  • 8/11/2019 Bitcoin Tutorial (EFF)

    14/41

    Bitcoin is t ransact ion-based

    IN:scriptSig ...scriptSig ...

    OUT:scriptPub A,

    5.9

    ...

    ...

    IN:scriptSig A

    OUT:scriptPubB,

    5.0scriptPubA,

    0.9

    IN

    OU

    10

    IN:scriptSig ...

    OUT:scriptPubA,

    9.2

    ...

  • 8/11/2019 Bitcoin Tutorial (EFF)

    15/41

    Bitcoin transactions specify sc

    scriptPubKey:OP_DUP OP_HASH160 OP_EQUALVERIFY

    IN:scriptSig ...

    scriptSig ...OUT:scriptPub A,

    5.9

    IN:scriptSig A

    OUT:scriptPubB,

    5.0scriptPubA,

    0.9

    OP_DUP OP_HASH160 OP_EQUALVERIF

    scriptSig:

    Redemption script:

  • 8/11/2019 Bitcoin Tutorial (EFF)

    16/41

    Bitcoin transactions specify sc

    OP_DUP OP_HASH160 OP_EQUALVERIF

  • 8/11/2019 Bitcoin Tutorial (EFF)

    17/41

    Bitcoin script features

    multiple signatures escrow time locking commitment opening

    ...

    smart contracts?

  • 8/11/2019 Bitcoin Tutorial (EFF)

    18/41

    Part II: Mining & Consen

  • 8/11/2019 Bitcoin Tutorial (EFF)

    19/41

    51% attacks

    G

  • 8/11/2019 Bitcoin Tutorial (EFF)

    20/41

    Checkpointing

    How decentralized is Bitcoin?

  • 8/11/2019 Bitcoin Tutorial (EFF)

    21/41

    Selfish mining

    Observation: for 0.33 < x< 0.5, a fraction xof selfish m

    can earn greater than a fraction xof rewards

    Secret Block

    Secret Block

    Majority is not enough: Bitcoin mining is vulnerable

    Ittay Eyal and Emin Gn Sirer. Financial Crypto 2014

  • 8/11/2019 Bitcoin Tutorial (EFF)

    22/41

    Mining difficulty

  • 8/11/2019 Bitcoin Tutorial (EFF)

    23/41

    Difficulty adjustment

    10 minutes

    2 weeks

  • 8/11/2019 Bitcoin Tutorial (EFF)

    24/41

    Mining rewards

  • 8/11/2019 Bitcoin Tutorial (EFF)

    25/41

    Total network capacity

    264hashes per block (every 10 minute 275hashes in 2013

    o In exchange for ~US$250M Consuming > 100 MW

  • 8/11/2019 Bitcoin Tutorial (EFF)

    26/41

    Bitcoin mining hardware

  • 8/11/2019 Bitcoin Tutorial (EFF)

    27/41

    Should I mine bitcoins?

    Chilkoot paKlondike 18

  • 8/11/2019 Bitcoin Tutorial (EFF)

    28/41

    Mining pools Mint(25,0x000000000

    0x000000000000490c6b00...

    0x00000000x0000000000001e8709ce...

    0x00000000000007313f89... 0x0000000

    0x000000000000a877902e...

  • 8/11/2019 Bitcoin Tutorial (EFF)

    29/41

    Mining pools

  • 8/11/2019 Bitcoin Tutorial (EFF)

    30/41

    Part III: Bitcoin as a curr

  • 8/11/2019 Bitcoin Tutorial (EFF)

    31/41

    Why does Bitcoin have value?

    Consensus

    Consensus in state (blockchain) Consensus in payment

    Consensus in rules

    The Economics of Bitcoin Mining, or Bitcoin in the Presence of Advers

    Joshua Kroll, Ian Davey, Ed Felten. WEIS 2013

  • 8/11/2019 Bitcoin Tutorial (EFF)

    32/41

    Price during 2013

  • 8/11/2019 Bitcoin Tutorial (EFF)

    33/41

    Black Markets

    Silk Road: US$14M in Revenue in 2012 [Christin 2012

    Traveling the Silk Road: A measurement analysis of a large anonymous online

    Nicolas Christin, WWW 2013

  • 8/11/2019 Bitcoin Tutorial (EFF)

    34/41

    Capital controls

  • 8/11/2019 Bitcoin Tutorial (EFF)

    35/41

    E-commerce

  • 8/11/2019 Bitcoin Tutorial (EFF)

    36/41

    Bitcoin exchanges

    Beware the middleman: Empirical analysis of Bitcoin-exchange risk

    Tyler Moore and Nicolas Christin, Financial Crypto 2013

  • 8/11/2019 Bitcoin Tutorial (EFF)

    37/41

    Bitcoin ATMs

  • 8/11/2019 Bitcoin Tutorial (EFF)

    38/41

    Bitcoin meetups

  • 8/11/2019 Bitcoin Tutorial (EFF)

    39/41

    Bitcoin meetups

  • 8/11/2019 Bitcoin Tutorial (EFF)

    40/41

    Bitcoin limitations

    ~7transactions per secondo Visa: ~10k tps (peak)

    248currency unitso ~32k per person on earth

    0.0001 BTCtransaction fees typicalo ~$0.40 US

    ~60 minutesconfirmation delay

    A reserve

  • 8/11/2019 Bitcoin Tutorial (EFF)

    41/41

    Questions