Bitcoin
Upcoming SlideShare
Loading in...5
×
 

Bitcoin

on

  • 1,821 views

Bitcoin - Descentralised Open-Source Peer-to-Peer Cryptocurrency

Bitcoin - Descentralised Open-Source Peer-to-Peer Cryptocurrency

Statistics

Views

Total Views
1,821
Views on SlideShare
1,813
Embed Views
8

Actions

Likes
3
Downloads
120
Comments
0

3 Embeds 8

http://192.168.6.52 6
http://bitcoin.oktopic.com 1
http://www.ztopics.com 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Bitcoin Bitcoin Presentation Transcript

  • Bitcoin - Decentralised Open-Source Peer-to-Peer Cryptocurrency Bogdan Suvar, David Gureya Instituto Superior T´cnico e {bogdan.suvar, david.gureya}@ist.utl.pt December 9, 2013 Bogdan Suvar, David Gureya (EMDC) Bitcoin December 9, 2013 1 / 19
  • Overview 1 Introduction Motivation Background 2 Protocol Wallet Transactions Blocks Network 3 Advantages and Disadvantages 4 Alternative Cryptocurrencies Bogdan Suvar, David Gureya (EMDC) Bitcoin December 9, 2013 2 / 19
  • Outline 1 Introduction Motivation Background Wallet Transactions Blocks Network Bogdan Suvar, David Gureya (EMDC) Bitcoin December 9, 2013 3 / 19
  • Motivation Popular P2P and first cryptocurrency Pseudonimity and Anonymity (with Tor) Decentralised Limitations and vulnerabilities Alternatives Bogdan Suvar, David Gureya (EMDC) Bitcoin December 9, 2013 3 / 19
  • Motivation Figure: Interest by Google searches over the past 3 years Bogdan Suvar, David Gureya (EMDC) Bitcoin December 9, 2013 4 / 19
  • Motivation Figure: Regional interest from Google queries for bitcoin Bogdan Suvar, David Gureya (EMDC) Bitcoin December 9, 2013 5 / 19
  • Background Proof Of Work systems Challenge-response CPU-bound computation. Initially used for DOS, spam Asymmetric cryptography Used for transactions. Transactions represent bitcoins. Private keys are used to sign transactions, public keys are used for destination Cryptographic hash functions Generate a hash that starts with a certain number of 0s (difficulty). Easy to validate, hard to find Bogdan Suvar, David Gureya (EMDC) Bitcoin December 9, 2013 6 / 19
  • Background Proof Of Work systems Challenge-response CPU-bound computation. Initially used for DOS, spam Asymmetric cryptography Used for transactions. Transactions represent bitcoins. Private keys are used to sign transactions, public keys are used for destination Cryptographic hash functions Generate a hash that starts with a certain number of 0s (difficulty). Easy to validate, hard to find Bogdan Suvar, David Gureya (EMDC) Bitcoin December 9, 2013 6 / 19
  • Background Proof Of Work systems Challenge-response CPU-bound computation. Initially used for DOS, spam Asymmetric cryptography Used for transactions. Transactions represent bitcoins. Private keys are used to sign transactions, public keys are used for destination Cryptographic hash functions Generate a hash that starts with a certain number of 0s (difficulty). Easy to validate, hard to find Bogdan Suvar, David Gureya (EMDC) Bitcoin December 9, 2013 6 / 19
  • Outline Motivation Background 2 Protocol Wallet Transactions Blocks Network Bogdan Suvar, David Gureya (EMDC) Bitcoin December 9, 2013 7 / 19
  • Wallet Contents keypairs for each of the addresses transactions done to/from key pool default keys user preferences accounts Security Physical: paper, hardware Back-up Password One wallet per installation Bogdan Suvar, David Gureya (EMDC) Bitcoin December 9, 2013 7 / 19
  • Transactions Definition A signed part of data that is broadcasted to the network and collected into blocks. It references a previous transaction and a certain number of bitcoins to (one or more) public key(s). How it works 1 Digitally sign: output of the previous transaction recipient’s public key hash value (satoshi’s) 2 Broadcast it on the network 3 Wait to be included in a block ( 10 minutes) 4 Add block of transactions to the ledger Bogdan Suvar, David Gureya (EMDC) Bitcoin December 9, 2013 8 / 19
  • Blocks Definition The blocks permanently record all the Bitcoin transactions on the network - similar to a ledger. New blocks are added at the end of the record, to a block chain Contents List of transactions Nonce (see POW) Header Mining Generate a new hash of the block header + nonce until the right one was found. Reward = 25 BTC and it halves every 4 years. A new block is created every 10 minutes. Bogdan Suvar, David Gureya (EMDC) Bitcoin December 9, 2013 9 / 19
  • Network Overview Communication via TCP Ports: default 8333, but CLI configurable IPv6 support Node bootstraping: 1 2 Send messages to a hardcoded list of nodes (seed nodes) (default) DNS request to a list of hostnames Heartbeat: keepalive message every 30 min; connection closes after 90 min Bogdan Suvar, David Gureya (EMDC) Bitcoin December 9, 2013 10 / 19
  • Node Discovery Node steps: 1 Discover their external IP address (via dyndns.org or showmyip.com) 2 Receive callback addresses of nodes that connect to them 3 DNS requests for IP addresses 4 Use the ”seed” (hardcoded) addresses 5 Exchange addresses with other nodes 6 Store (timestamped) addresses in a database for startup 7 Enter new, custom, addresses from the command line 8 Read addresses from user provided text file on startup Bogdan Suvar, David Gureya (EMDC) Bitcoin December 9, 2013 11 / 19
  • Node Discovery Node steps: 1 Discover their external IP address (via dyndns.org or showmyip.com) 2 Receive callback addresses of nodes that connect to them 3 DNS requests for IP addresses 4 Use the ”seed” (hardcoded) addresses 5 Exchange addresses with other nodes 6 Store (timestamped) addresses in a database for startup 7 Enter new, custom, addresses from the command line 8 Read addresses from user provided text file on startup Bogdan Suvar, David Gureya (EMDC) Bitcoin December 9, 2013 11 / 19
  • Node Discovery Node steps: 1 Discover their external IP address (via dyndns.org or showmyip.com) 2 Receive callback addresses of nodes that connect to them 3 DNS requests for IP addresses 4 Use the ”seed” (hardcoded) addresses 5 Exchange addresses with other nodes 6 Store (timestamped) addresses in a database for startup 7 Enter new, custom, addresses from the command line 8 Read addresses from user provided text file on startup Bogdan Suvar, David Gureya (EMDC) Bitcoin December 9, 2013 11 / 19
  • Node Discovery Node steps: 1 Discover their external IP address (via dyndns.org or showmyip.com) 2 Receive callback addresses of nodes that connect to them 3 DNS requests for IP addresses 4 Use the ”seed” (hardcoded) addresses 5 Exchange addresses with other nodes 6 Store (timestamped) addresses in a database for startup 7 Enter new, custom, addresses from the command line 8 Read addresses from user provided text file on startup Bogdan Suvar, David Gureya (EMDC) Bitcoin December 9, 2013 11 / 19
  • Node Discovery Node steps: 1 Discover their external IP address (via dyndns.org or showmyip.com) 2 Receive callback addresses of nodes that connect to them 3 DNS requests for IP addresses 4 Use the ”seed” (hardcoded) addresses 5 Exchange addresses with other nodes 6 Store (timestamped) addresses in a database for startup 7 Enter new, custom, addresses from the command line 8 Read addresses from user provided text file on startup Bogdan Suvar, David Gureya (EMDC) Bitcoin December 9, 2013 11 / 19
  • Node Discovery Node steps: 1 Discover their external IP address (via dyndns.org or showmyip.com) 2 Receive callback addresses of nodes that connect to them 3 DNS requests for IP addresses 4 Use the ”seed” (hardcoded) addresses 5 Exchange addresses with other nodes 6 Store (timestamped) addresses in a database for startup 7 Enter new, custom, addresses from the command line 8 Read addresses from user provided text file on startup Bogdan Suvar, David Gureya (EMDC) Bitcoin December 9, 2013 11 / 19
  • Node Discovery Node steps: 1 Discover their external IP address (via dyndns.org or showmyip.com) 2 Receive callback addresses of nodes that connect to them 3 DNS requests for IP addresses 4 Use the ”seed” (hardcoded) addresses 5 Exchange addresses with other nodes 6 Store (timestamped) addresses in a database for startup 7 Enter new, custom, addresses from the command line 8 Read addresses from user provided text file on startup Bogdan Suvar, David Gureya (EMDC) Bitcoin December 9, 2013 11 / 19
  • Node Discovery Node steps: 1 Discover their external IP address (via dyndns.org or showmyip.com) 2 Receive callback addresses of nodes that connect to them 3 DNS requests for IP addresses 4 Use the ”seed” (hardcoded) addresses 5 Exchange addresses with other nodes 6 Store (timestamped) addresses in a database for startup 7 Enter new, custom, addresses from the command line 8 Read addresses from user provided text file on startup Bogdan Suvar, David Gureya (EMDC) Bitcoin December 9, 2013 11 / 19
  • Address request handling Upong receiving a node’s request for addresses: 1 Count all the addresses in the past 3 hours 2 If there are more than 2500, select the first 2500 randomly 3 Return addresses to the requestor Bogdan Suvar, David Gureya (EMDC) Bitcoin December 9, 2013 12 / 19
  • Address request handling Upong receiving a node’s request for addresses: 1 Count all the addresses in the past 3 hours 2 If there are more than 2500, select the first 2500 randomly 3 Return addresses to the requestor Bogdan Suvar, David Gureya (EMDC) Bitcoin December 9, 2013 12 / 19
  • Address request handling Upong receiving a node’s request for addresses: 1 Count all the addresses in the past 3 hours 2 If there are more than 2500, select the first 2500 randomly 3 Return addresses to the requestor Bogdan Suvar, David Gureya (EMDC) Bitcoin December 9, 2013 12 / 19
  • Vulnerabilities Bogdan Suvar, David Gureya (EMDC) Bitcoin December 9, 2013 13 / 19
  • Vulnerabilities Sniffing No encryption, since all transaction data is visible to all nodes. Attacker could monitor all incoming and outgoing data and later target specific users. Bogdan Suvar, David Gureya (EMDC) Bitcoin December 9, 2013 13 / 19
  • Vulnerabilities Sniffing No encryption, since all transaction data is visible to all nodes. Attacker could monitor all incoming and outgoing data and later target specific users. DoS attack Moderate protection exists: Client accepts only Transaction messages. Malicious node may use Transaction messages for DoS - costs a lot of coins. Result: the node could be disconnected from the network or hamper other trans. to be sent. Bogdan Suvar, David Gureya (EMDC) Bitcoin December 9, 2013 13 / 19
  • Vulnerabilities Sniffing No encryption, since all transaction data is visible to all nodes. Attacker could monitor all incoming and outgoing data and later target specific users. DoS attack Moderate protection exists: Client accepts only Transaction messages. Malicious node may use Transaction messages for DoS - costs a lot of coins. Result: the node could be disconnected from the network or hamper other trans. to be sent. Segmentation Nodes handle disputes on data integerity. Transactions could appear confirmed in one segment then, upon joining the other segment, be invalidated. Bogdan Suvar, David Gureya (EMDC) Bitcoin December 9, 2013 13 / 19
  • Vulnerabilities Sniffing No encryption, since all transaction data is visible to all nodes. Attacker could monitor all incoming and outgoing data and later target specific users. DoS attack Moderate protection exists: Client accepts only Transaction messages. Malicious node may use Transaction messages for DoS - costs a lot of coins. Result: the node could be disconnected from the network or hamper other trans. to be sent. Segmentation Nodes handle disputes on data integerity. Transactions could appear confirmed in one segment then, upon joining the other segment, be invalidated. 51% Attacks Computationally unfeasible: attacker must have 51% more computing power than all the other miners combined. Reason: control block history. Bogdan Suvar, David Gureya (EMDC) Bitcoin December 9, 2013 13 / 19
  • Scalability Transactions Visa: avg. 2000 tps, peak: 4k tps; holiday: avg 8k tps; burst>10k Paypall: avg. 46 tps, peak: 100 tps; Bitcoin (today): (artificially) limited to 7 tps CPU Node verifies (SHA256) a trans. which it doesn’t have. Hashing 1MB takes 10 miliseconds = 4k tps achievable in mainstream CPUs (i7s) [3] Network For 2k tps, trans.= 0.5 kb;((2k * 512)/1024)/1024 = 0.97MBs (7.8Mbps) Storage Blocks can be over 0.5 GB for high tps. Pruning is possible. Bogdan Suvar, David Gureya (EMDC) Bitcoin December 9, 2013 14 / 19
  • Outline Motivation Background Wallet Transactions Blocks Network 3 Advantages and Disadvantages Bogdan Suvar, David Gureya (EMDC) Bitcoin December 9, 2013 15 / 19
  • Advantages Bogdan Suvar, David Gureya (EMDC) Bitcoin December 9, 2013 15 / 19
  • Advantages Computationally unfeasible to abuse/cheat Bogdan Suvar, David Gureya (EMDC) Bitcoin December 9, 2013 15 / 19
  • Advantages Computationally unfeasible to abuse/cheat Highly flexible protocol (script modification) Bogdan Suvar, David Gureya (EMDC) Bitcoin December 9, 2013 15 / 19
  • Advantages Computationally unfeasible to abuse/cheat Highly flexible protocol (script modification) Descentralised Bogdan Suvar, David Gureya (EMDC) Bitcoin December 9, 2013 15 / 19
  • Advantages Computationally unfeasible to abuse/cheat Highly flexible protocol (script modification) Descentralised Incetivised availability Bogdan Suvar, David Gureya (EMDC) Bitcoin December 9, 2013 15 / 19
  • Advantages Computationally unfeasible to abuse/cheat Highly flexible protocol (script modification) Descentralised Incetivised availability Open-source Bogdan Suvar, David Gureya (EMDC) Bitcoin December 9, 2013 15 / 19
  • Disadvantages Bogdan Suvar, David Gureya (EMDC) Bitcoin December 9, 2013 16 / 19
  • Disadvantages 1 Too transparent Bogdan Suvar, David Gureya (EMDC) Bitcoin December 9, 2013 16 / 19
  • Disadvantages 1 Too transparent 2 Limited supply of bitcoins Bogdan Suvar, David Gureya (EMDC) Bitcoin December 9, 2013 16 / 19
  • Disadvantages 1 Too transparent 2 Limited supply of bitcoins 3 Scalability (storage limitations) Bogdan Suvar, David Gureya (EMDC) Bitcoin December 9, 2013 16 / 19
  • Disadvantages 1 Too transparent 2 Limited supply of bitcoins 3 Scalability (storage limitations) 4 Useless mining Bogdan Suvar, David Gureya (EMDC) Bitcoin December 9, 2013 16 / 19
  • Disadvantages 1 Too transparent 2 Limited supply of bitcoins 3 Scalability (storage limitations) 4 Useless mining 5 Fluctuating evaluation Bogdan Suvar, David Gureya (EMDC) Bitcoin December 9, 2013 16 / 19
  • Disadvantages 1 Too transparent 2 Limited supply of bitcoins 3 Scalability (storage limitations) 4 Useless mining 5 Fluctuating evaluation 6 Benefiting early adopters/investors in specialised hardware Bogdan Suvar, David Gureya (EMDC) Bitcoin December 9, 2013 16 / 19
  • Disadvantages 1 Too transparent 2 Limited supply of bitcoins 3 Scalability (storage limitations) 4 Useless mining 5 Fluctuating evaluation 6 Benefiting early adopters/investors in specialised hardware 7 Redemption of lost bitcoins Bogdan Suvar, David Gureya (EMDC) Bitcoin December 9, 2013 16 / 19
  • Disadvantages 1 Too transparent 2 Limited supply of bitcoins 3 Scalability (storage limitations) 4 Useless mining 5 Fluctuating evaluation 6 Benefiting early adopters/investors in specialised hardware 7 Redemption of lost bitcoins 8 Susceptible to criminal usage (Silk Road) Bogdan Suvar, David Gureya (EMDC) Bitcoin December 9, 2013 16 / 19
  • Disadvantages 1 Too transparent 2 Limited supply of bitcoins 3 Scalability (storage limitations) 4 Useless mining 5 Fluctuating evaluation 6 Benefiting early adopters/investors in specialised hardware 7 Redemption of lost bitcoins 8 Susceptible to criminal usage (Silk Road) 9 Slow transaction times (mining) Bogdan Suvar, David Gureya (EMDC) Bitcoin December 9, 2013 16 / 19
  • Outline Motivation Background Wallet Transactions Blocks Network 4 Alternative Cryptocurrencies Bogdan Suvar, David Gureya (EMDC) Bitcoin December 9, 2013 17 / 19
  • Alternatives Currency POW Bitcoin Litecoin Peercoin Namecoin SHA-256d scrypt SHA-256+POS SHA-256d Primecoin Currency Units 21M 84M 2B 21M Cunningham Bogdan Suvar, David Gureya (EMDC) Block Every... 10 min 2.5 min 1 min 10 min Difficulty Adjustment 2016 2016 Initial Reward 50 50 2016 50 Mkt. Cap. 10B 238M 45M 19.5M 10 min 1 999 diff 2 7M Bitcoin Distinguishing features First cryptocurrency created 2009 Faster transactions, memory-hard mining Proof of stake, steady inflation, centralized checkpoint descentralized DNS (.bit TLDs) Useful mining, Smooth difficulty adjustment Fast confirmations, Self-adjusting block reward December 9, 2013 17 / 19
  • References Satoshi Nakamoto (2008) Bitcoin: A peer-to-peer electronic cash system Piotr Piasecki (2012) Design and security analysis of Bitcoin infrastructure using application deployed on Google App Engine Technical University of Gdansk Bitcoin Wiki(2013) Bitcoin - Scalability Karl Whelan (2013) So What’s So Special About Bitcoin? Forbes Vitalkin Buterin (2013) Primecoin: The cryptocurrency whose mining is actually useful Bitcoin Magazine Bogdan Suvar, David Gureya (EMDC) Bitcoin December 9, 2013 18 / 19
  • Questions ? Bogdan Suvar, David Gureya (EMDC) Bitcoin December 9, 2013 19 / 19