SlideShare a Scribd company logo
Beyond the Basics
What is a Bitcoin?
● Lots of misconceptions
● Terrible analogies
● Forget what you heard
● Mostly Elegant
● Often simple
Early History
● Whitepaper on
metzdowd.com Oct 31,
2008
● Release 0.1 on Jan 9, 2009
– Windows only,
– No CLI.
– Used wxWidgets,
BerkeleyDB & Boost
– Compiled using MVS
● Maintainership by Gavin
Andresen & Jeff Garzik in
mid-2010
Current Release
● Splitting the 'ball of spaghetti' into pieces
● Gavin turned over to Jeff earlier this year
● Intent of development is to restrict new
features keep the code stable
● Now uses Qt for the GUI, LevelDB for storage
● 'testnet' vs 'mainnet'
● Most Integers are little endian. Only IP or port
number are big endian
Modules
● P2P network
● Mining
● GUI / Interface
● Blockchain
● Transactions
● Contracts
● Wallet Management
● Payment Processing
Structures and Algorithms
● Hashes (SHA-256 & RIPEMD-160)
● Public Keys vs Public Key hashes
● ECDSA / secp256k1
● Merkle Trees
● Bloom Filters
Bitcoin's P2P network
● Connects to the seed servers via DNS
● Downloads a list of (up to) 1000 peers
● Prior versions used IRC (<0.6)
● Listens on TCP/8333
● Messages are received and relayed via peers
● Synchronizes to latest state via 'inv'
What is a Transaction?
● Contains most of the protocol's complexity
● Inputs and Outputs
● Code aka Contracts.
● Sometimes 'data'
● Currently Unspent output is 'UTXO'
● Miner Tips are unallocated inputs
● Sometimes, a 'coinbase'
Transactions Up-Close
TXID: 'B'
Input 1 of 1:
From: TX 'A' (Bob)
Input Amt.: 5 BTC
Output 1 of 1:
To: Charlie's Key
Output Amt: 4 BTC
Miner Tip: 1 BTC
CoinBase TXID 'A'
Base: 25 BTC
Mined by: Bob
To: Bob's Key
TXID: 'C'
Input 1 of 1:
From: TX 'A' (Bob)
Input Amt.: 7 BTC
Output 1 of 1:
To: Alice's Key
Output Amt: 6.5 BTC
Miner Tip: 0.5 BTC
UTXO's / Balances
Miner Bob: 13 BTC
Charlie: 4 BTC
Alice: 6.5 BTC
Miner Tips: 1.5 BTC
So Many Transactions!
TXID 'B'
TXID 'C'
(Multiple
Inputs)
CoinBase
TXID 'A'
Non-Contiguous!
Block #300
(Oldest)
Block #301 Block #302 Block #303
(Newest)
Transactions are contracts
● A 'spend' isn't specifically an action.
● All transactions are contracts
● Forth-like, stack-based (no registers), not turing complete
● Stack is little-endian, variable-length integers, MSB
controls 'sign'
● False is zero, True is non-zero
● Transaction valid if no errors and the topmost stack int is
true
● Miners 'validate' transaction/contract scripts for 'truth'
● All peers validate
About those contracts...
● Approximately 100
instructions available
● Only a dozen are
typically used
● 'Standard' vs non-
standard
● Only four contract
'templates'
● Mistakes are final
What is a Block?
● Mined Transactions
● 250-600 transactions typically
● 750 KiB max (currently)
● One Coinbase transaction
● Hashed header of prior block
● Merkle root of mined transactions
● Nonce
Blocks Up-close
Transaction A
Transaction B
Transaction C
Transaction D
Transaction E
Transaction F
Block #299
Header
Transaction G
Hashed Fields:
Version Future-planning
hashPrevBlock Identify Neighbor
hashMerkleRoot Validates transactions
Time Generation Timestamp
Target Bits Difficulty. Lower is
harder.
Nonce Proof of work / Entropy
Non-Hashed Fields:
Magic No Type-Identification
Blocksize malloc() and sanity
Transaction count Sanity/speed opt.
What is the Blockchain ?
● Ordered blocks
● Contains *every* transaction on the Bitcoin network
● Approximately 305k blocks at 18 GiB at the time of
writing
● Block Height is a measure of absolute time and distance.
● Block depth is a measure of relative time/distance since
'now'
● 0.9 supports header-only/SPV-mode at 80 bytes per
header (23 MiB total) '
● 'Pruning' non-UTXO's is an option down the line
What does a miner do?
● Prevents Double-spends, and creates money!
● Appends transactions from the transaction
'mempool' for tips.
● Establishes a valid hash for the block header
● Announces a successful block to the network
● Difficulty adjusted every 2016 blocks/two-weeks
● Block header hashes are contingent on prior block
state. Race restarts from scratch each block.
The Blockchain in action
300
301 302 303
304 305 306
Time and Block Height
Failed Block
No Reward
Wasted Time
Wasted Miner Money
Alternate Ordering / History
Approximately Seventy Minutes. Exactly Seven Blocks.
= Successful Block
25 BTC Award=
What is a Bitcoin?
100,000,000 Satoshis
What is a Bitcoin?
What is a Satoshi?
● An unspent output value (UTXO)
● Addressed to your public key hash
● In a transaction
● In a block
● In the blockchain
The near future
● x.509 and http
integration
● NFC via 'bonds'
● BIP 70 (instant conf)
● More contracts
● Sidechains
● Look at the BIPs!
Notes on Scalability
● Visa handles 4,000 tps on average 10tps peak, Paypal handles 46
tps
● Bitcoin averages 1 tps
● Current constraints are artificially imposed
● Biggest current constraint is in hash verification time on
blocks/transactions
● Current estimates suggest a 'desktop cpu' can validate ~4k tps
● That's 2 MiB of network traffic per second
● The blockchain will get large
● Satoshis biggest fears were that the network grows too quickly.
● Not because of the technology.
Find this Useful?
(Show us some love!)
bitcoinfl.org

More Related Content

PPTX
BitCoin explained
PPTX
Bitcoin Internal
PPTX
Introduction to Blockchain
PDF
Blockchain Deconstructed - by nexxworks
PDF
Introduction into blockchains and cryptocurrencies
KEY
Introduction to bitcoin
PPTX
Blockchain and bitcoin fundamentals (usages and applications)
PDF
Blockchain, bitcoin
BitCoin explained
Bitcoin Internal
Introduction to Blockchain
Blockchain Deconstructed - by nexxworks
Introduction into blockchains and cryptocurrencies
Introduction to bitcoin
Blockchain and bitcoin fundamentals (usages and applications)
Blockchain, bitcoin

What's hot (20)

PDF
WHAT IS MINING? WHAT IS BITCOIN?
PPTX
Bitcoin Explained
PPTX
Introduction to BitCoin
PPTX
Bitcoin (Cryptocurrency)
PDF
Bitcoin
PPT
PDF
The Bitcoin blockchain (en)
PDF
Cryptocurrency for Dummies
PDF
Basics of Bitcoin & Mining
PPTX
YOCoin PowerPoint Presentation
PPTX
Bitcoin and the future of cryptocurrency
PPT
All you ever needed to know on bitcoin and blockchain
PDF
Paper: Crypto Currency Mining
PDF
Boolberry reduces blockchain bloat
PPTX
BITCOIN TECHNOLOGY AND ITS USES
PPTX
Understanding Cryptocurrency
PPTX
Intro into blockchain
PPTX
BITCOIN EXPLAINED
PDF
Bitcoin : A fierce Decentralized internet currency
PPTX
BitCoin Protocol
WHAT IS MINING? WHAT IS BITCOIN?
Bitcoin Explained
Introduction to BitCoin
Bitcoin (Cryptocurrency)
Bitcoin
The Bitcoin blockchain (en)
Cryptocurrency for Dummies
Basics of Bitcoin & Mining
YOCoin PowerPoint Presentation
Bitcoin and the future of cryptocurrency
All you ever needed to know on bitcoin and blockchain
Paper: Crypto Currency Mining
Boolberry reduces blockchain bloat
BITCOIN TECHNOLOGY AND ITS USES
Understanding Cryptocurrency
Intro into blockchain
BITCOIN EXPLAINED
Bitcoin : A fierce Decentralized internet currency
BitCoin Protocol
Ad

Viewers also liked (6)

PDF
4 Inch Innovation Canvas
PDF
Sell Without Selling
PDF
Driver Programming Report
PDF
Bitcoin : A fierce decentralized crypto currency - Report
PDF
The First Xerox Machine
PDF
Economic Aspects of Bitcoins : Report
4 Inch Innovation Canvas
Sell Without Selling
Driver Programming Report
Bitcoin : A fierce decentralized crypto currency - Report
The First Xerox Machine
Economic Aspects of Bitcoins : Report
Ad

Similar to Bitcoin - Beyond the basics (20)

PDF
Bitcoin Blockchain - Under the Hood
ODP
Blockchan For Developers
PDF
Intro to Blockchain Slides
PDF
The Emergent Layer 2
PPTX
Crypto & Crpyocurrencies Intro
ODP
Bitclamp - A Permanent and Anonymous Publishing Platform Over Bitcoin
PDF
Introduction to Bitcoin for programmers
ODP
Proof-of-Stake & Its Improvements (San Francisco Bitcoin Devs Hackathon)
PPTX
Intro to blockchain
PDF
Lightning Network
ODP
Bitcoin Talk at Rainbow
PDF
Bitcoins: Application of blockchain technology
PDF
Blockchain: The Next Generation
PDF
PDF
Blockchain For Developers
PDF
Ethereum overview
PPTX
Blockchain
ODP
Pettycoin: Losing Tiny Amounts of Bitcoin At Scale!
PPTX
Best practices to build secure smart contracts
ODP
Fredericksburg LUG Bitcoin slides
Bitcoin Blockchain - Under the Hood
Blockchan For Developers
Intro to Blockchain Slides
The Emergent Layer 2
Crypto & Crpyocurrencies Intro
Bitclamp - A Permanent and Anonymous Publishing Platform Over Bitcoin
Introduction to Bitcoin for programmers
Proof-of-Stake & Its Improvements (San Francisco Bitcoin Devs Hackathon)
Intro to blockchain
Lightning Network
Bitcoin Talk at Rainbow
Bitcoins: Application of blockchain technology
Blockchain: The Next Generation
Blockchain For Developers
Ethereum overview
Blockchain
Pettycoin: Losing Tiny Amounts of Bitcoin At Scale!
Best practices to build secure smart contracts
Fredericksburg LUG Bitcoin slides

Recently uploaded (20)

PPTX
OMC Textile Division Presentation 2021.pptx
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PPTX
Programs and apps: productivity, graphics, security and other tools
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
Heart disease approach using modified random forest and particle swarm optimi...
PDF
Getting Started with Data Integration: FME Form 101
PDF
Univ-Connecticut-ChatGPT-Presentaion.pdf
PDF
Approach and Philosophy of On baking technology
PPTX
1. Introduction to Computer Programming.pptx
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
Assigned Numbers - 2025 - Bluetooth® Document
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
Accuracy of neural networks in brain wave diagnosis of schizophrenia
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PPTX
TechTalks-8-2019-Service-Management-ITIL-Refresh-ITIL-4-Framework-Supports-Ou...
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PPTX
TLE Review Electricity (Electricity).pptx
OMC Textile Division Presentation 2021.pptx
Unlocking AI with Model Context Protocol (MCP)
Advanced methodologies resolving dimensionality complications for autism neur...
Programs and apps: productivity, graphics, security and other tools
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Network Security Unit 5.pdf for BCA BBA.
Heart disease approach using modified random forest and particle swarm optimi...
Getting Started with Data Integration: FME Form 101
Univ-Connecticut-ChatGPT-Presentaion.pdf
Approach and Philosophy of On baking technology
1. Introduction to Computer Programming.pptx
Encapsulation_ Review paper, used for researhc scholars
Assigned Numbers - 2025 - Bluetooth® Document
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Accuracy of neural networks in brain wave diagnosis of schizophrenia
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
TechTalks-8-2019-Service-Management-ITIL-Refresh-ITIL-4-Framework-Supports-Ou...
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
TLE Review Electricity (Electricity).pptx

Bitcoin - Beyond the basics

  • 2. What is a Bitcoin? ● Lots of misconceptions ● Terrible analogies ● Forget what you heard ● Mostly Elegant ● Often simple
  • 3. Early History ● Whitepaper on metzdowd.com Oct 31, 2008 ● Release 0.1 on Jan 9, 2009 – Windows only, – No CLI. – Used wxWidgets, BerkeleyDB & Boost – Compiled using MVS ● Maintainership by Gavin Andresen & Jeff Garzik in mid-2010
  • 4. Current Release ● Splitting the 'ball of spaghetti' into pieces ● Gavin turned over to Jeff earlier this year ● Intent of development is to restrict new features keep the code stable ● Now uses Qt for the GUI, LevelDB for storage ● 'testnet' vs 'mainnet' ● Most Integers are little endian. Only IP or port number are big endian
  • 5. Modules ● P2P network ● Mining ● GUI / Interface ● Blockchain ● Transactions ● Contracts ● Wallet Management ● Payment Processing
  • 6. Structures and Algorithms ● Hashes (SHA-256 & RIPEMD-160) ● Public Keys vs Public Key hashes ● ECDSA / secp256k1 ● Merkle Trees ● Bloom Filters
  • 7. Bitcoin's P2P network ● Connects to the seed servers via DNS ● Downloads a list of (up to) 1000 peers ● Prior versions used IRC (<0.6) ● Listens on TCP/8333 ● Messages are received and relayed via peers ● Synchronizes to latest state via 'inv'
  • 8. What is a Transaction? ● Contains most of the protocol's complexity ● Inputs and Outputs ● Code aka Contracts. ● Sometimes 'data' ● Currently Unspent output is 'UTXO' ● Miner Tips are unallocated inputs ● Sometimes, a 'coinbase'
  • 9. Transactions Up-Close TXID: 'B' Input 1 of 1: From: TX 'A' (Bob) Input Amt.: 5 BTC Output 1 of 1: To: Charlie's Key Output Amt: 4 BTC Miner Tip: 1 BTC CoinBase TXID 'A' Base: 25 BTC Mined by: Bob To: Bob's Key TXID: 'C' Input 1 of 1: From: TX 'A' (Bob) Input Amt.: 7 BTC Output 1 of 1: To: Alice's Key Output Amt: 6.5 BTC Miner Tip: 0.5 BTC UTXO's / Balances Miner Bob: 13 BTC Charlie: 4 BTC Alice: 6.5 BTC Miner Tips: 1.5 BTC
  • 10. So Many Transactions! TXID 'B' TXID 'C' (Multiple Inputs) CoinBase TXID 'A' Non-Contiguous! Block #300 (Oldest) Block #301 Block #302 Block #303 (Newest)
  • 11. Transactions are contracts ● A 'spend' isn't specifically an action. ● All transactions are contracts ● Forth-like, stack-based (no registers), not turing complete ● Stack is little-endian, variable-length integers, MSB controls 'sign' ● False is zero, True is non-zero ● Transaction valid if no errors and the topmost stack int is true ● Miners 'validate' transaction/contract scripts for 'truth' ● All peers validate
  • 12. About those contracts... ● Approximately 100 instructions available ● Only a dozen are typically used ● 'Standard' vs non- standard ● Only four contract 'templates' ● Mistakes are final
  • 13. What is a Block? ● Mined Transactions ● 250-600 transactions typically ● 750 KiB max (currently) ● One Coinbase transaction ● Hashed header of prior block ● Merkle root of mined transactions ● Nonce
  • 14. Blocks Up-close Transaction A Transaction B Transaction C Transaction D Transaction E Transaction F Block #299 Header Transaction G Hashed Fields: Version Future-planning hashPrevBlock Identify Neighbor hashMerkleRoot Validates transactions Time Generation Timestamp Target Bits Difficulty. Lower is harder. Nonce Proof of work / Entropy Non-Hashed Fields: Magic No Type-Identification Blocksize malloc() and sanity Transaction count Sanity/speed opt.
  • 15. What is the Blockchain ? ● Ordered blocks ● Contains *every* transaction on the Bitcoin network ● Approximately 305k blocks at 18 GiB at the time of writing ● Block Height is a measure of absolute time and distance. ● Block depth is a measure of relative time/distance since 'now' ● 0.9 supports header-only/SPV-mode at 80 bytes per header (23 MiB total) ' ● 'Pruning' non-UTXO's is an option down the line
  • 16. What does a miner do? ● Prevents Double-spends, and creates money! ● Appends transactions from the transaction 'mempool' for tips. ● Establishes a valid hash for the block header ● Announces a successful block to the network ● Difficulty adjusted every 2016 blocks/two-weeks ● Block header hashes are contingent on prior block state. Race restarts from scratch each block.
  • 17. The Blockchain in action 300 301 302 303 304 305 306 Time and Block Height Failed Block No Reward Wasted Time Wasted Miner Money Alternate Ordering / History Approximately Seventy Minutes. Exactly Seven Blocks. = Successful Block 25 BTC Award=
  • 18. What is a Bitcoin? 100,000,000 Satoshis What is a Bitcoin?
  • 19. What is a Satoshi? ● An unspent output value (UTXO) ● Addressed to your public key hash ● In a transaction ● In a block ● In the blockchain
  • 20. The near future ● x.509 and http integration ● NFC via 'bonds' ● BIP 70 (instant conf) ● More contracts ● Sidechains ● Look at the BIPs!
  • 21. Notes on Scalability ● Visa handles 4,000 tps on average 10tps peak, Paypal handles 46 tps ● Bitcoin averages 1 tps ● Current constraints are artificially imposed ● Biggest current constraint is in hash verification time on blocks/transactions ● Current estimates suggest a 'desktop cpu' can validate ~4k tps ● That's 2 MiB of network traffic per second ● The blockchain will get large ● Satoshis biggest fears were that the network grows too quickly. ● Not because of the technology.
  • 22. Find this Useful? (Show us some love!) bitcoinfl.org

Editor's Notes

  • #2: Thank-them Ask who owns
  • #10: Very simple 25 BTC Economy