SlideShare a Scribd company logo
1 
Bitcoin – Introduction for 
programmers 
Wojciech Langiewicz @ DRUG #58
2 
Scope of this talk 
● Introduction – What is Bitcoin, History 
● Core concepts 
– Keys, Addresses 
– Wallet 
– Clients 
– Transaction 
– Block 
– Mining 
– Blockchain
3 
What is Bitcoin 
● Collection of concepts (and full “ecosystem” of tools) 
● Decentralized peer-to-peer system 
● Solves 2 main problems: 
– Is that money authentic (not counterfeit) 
– Is there only singe occurrence of this specific coin (double spends) 
● Has much similarities to cash and gold
4 
Key elements of the ecosystem 
● Decentralized peer-to-peer network (Bitcoin protocol) 
● Public transaction ledger (Blockchain) 
● Decentralized currency issuing algorithms (mining) 
● Decentralized transaction verification (transaction scripts)
5 
Few words about history 
● Introduced in 2009 by Satoshi Nakamoto 
● https://bitcoin.org/bitcoin.pdf 
● Combined concepts that existed before 
● But have not been combined until then 
● POW algorithm + Blockchain
6 
Bitcoin Address 
● Something like this: 
1FzQW9CWpNBoqUmaLFKNMAYiBhj6ncJA7N 
● Usually shown as QR code: 
● Address is a Base58 encoded form 
of the public key 
● Based on the address prefix, you can figure out what type of 
address it is. 
● Types of addresses: Pubkey hash, script hash, private key 
● Address reuse 
● A word about HD Wallets
7 
Bitcoin Keys - ECDSA 
● Private keys – numbers between 0 and 2^256 
● Public key can be calculated from the private key 
● Public key can be represented as Base58 encoding, HEX 
number, etc 
● Private keys can also be encoded as Base58 – this is called 
WIF format – most common way to export/import keys 
between wallets
8 
Wallet 
● Client software running on: server, desktop, phone, “in the 
cloud”, it manages keys, signs transactions, generates new 
keys, etc 
● Bitcoin-qt 
● Electrum, Armory, Multibit 
● Blockchain.info 
● Mobile wallets with intermediate server 
● Other web wallets
9 
Full nodes 
● Full nodes store full copy of the blockchain 
● Currently over 40GB of data 
● Usually need for server-side type of applications 
● Provide JSON-RPC API 
● Example: Satoshi client, btcd
10 
SPV nodes 
● Lighweight nodes 
● Use Simplified Payment Verification instead of ITV 
● Suitable for desktops, phones 
● Instead of downloading full blockchain 
● Download transactions only for their addresses 
● Security and privacy implications 
● Example: bitcoinj
11 
Transaction 
● Coinbase transaction 
● Each transaction has 1 or more inputs and 1 or more outputs 
● Transaction “moves money” - changes owner 
● Transactions take inputs and translate it into outputs 
● Those outputs can serve as inputs to the new transaction
12 
Spending a transaction - P2PH 
● Example of transaction type “Pay to pubkey hash” 
● ScriptPubKey: 
OP_DUP OP_HASH160 <pubKeyHash> OP_EQUALVERIFY 
OP_CHECKSIG 
● scriptSig: <sig> <pubKey> 
● Script: 
<sig> <pubKey> OP_DUP OP_HASH160 <pubKeyHash> 
OP_EQUALVERIFY OP_CHECKSIG
13 
Executing a script
14 
Advanced transaction types 
● Multi signature (multisig) 
● OP_RETURN 
● Anyone can spend 
● Pay to script hash
15 
Blocks 
● Genesis block 
● Mining – process of confirming a block 
● Each block points to a previous one creating a blockchain 
● Quite few similarities to git (instead you can't merge)
16 
Mining 
● Merges transactions into blocks 
● Finds nonce that “solves” the block 
● Once the solution is found – block is published 
● Published – appended to the blockchain 
● Published blocks are verified by other nodes 
● This sends coinbase transaction to the miner + all fees 
● Proof of Work – 10 minutes per block 
● Difficulty
17 
Mining pools 
● Chance to find a solution to a block are small 
● Small miners join in pools where they share a profit 
● Instead of finding a block every year and getting 25BTC 
● You will get 0.5 BTC per week. 
● You have to trust the pool operator or use p2pool
18 
Blockchain 
● “A chain of blocks” 
● Clever approach to consensus problem 
● Miners after finding a new block publish it on the network 
● You base your security on a height of a transaction 
● Ensures that there are no duplication
19 
Blockchain fork 
● Situation when 2 blocks are found at the same time 
● Bitcoin network is in the state of a fork 
● 10 minutes later a new block is found that is based on one of 
the forks 
● All Bitcoin nodes quickly switch to the longer branch 
● Transactions from the shorter branch are orphaned and will 
be processed shortly after
20 
Few words about the 51% attack 
● Theoretically possible even with 40-50% of power 
● Can be used to destabilize network for some period of time 
● Can help to create a double-spend 
● In no case you'll be able to spend coins you don't have 
● This attack is not practical 
● Miners will make more BTC by being honest
21 
Next time 
● More about Bitcoin clients 
● Bitcoin-core / btcd API 
● Bitcoinj 
● Raw transactions 
● Blockchain details 
● Security 
● Bitcoin flaws
Ad

More Related Content

What's hot (20)

Introduction to bitcoin
Introduction to bitcoinIntroduction to bitcoin
Introduction to bitcoin
Wolf McNally
 
Blockchain seminar
Blockchain seminarBlockchain seminar
Blockchain seminar
Amiyabablu
 
Blockchain Primer Part 1
Blockchain Primer Part 1Blockchain Primer Part 1
Blockchain Primer Part 1
Sanjay Basu
 
Overview of bitcoin
Overview of bitcoinOverview of bitcoin
Overview of bitcoin
Abdul Nasir
 
The Bitcoin blockchain (en)
The Bitcoin blockchain (en)The Bitcoin blockchain (en)
The Bitcoin blockchain (en)
Davide Carboni
 
Dash(digital cash)
Dash(digital cash)Dash(digital cash)
Dash(digital cash)
Valentin Kalinov
 
Wallets and Transactions #2
Wallets and Transactions #2Wallets and Transactions #2
Wallets and Transactions #2
BCWorkspace
 
YOCoin PowerPoint Presentation
YOCoin PowerPoint PresentationYOCoin PowerPoint Presentation
YOCoin PowerPoint Presentation
Crypto Currency
 
Blockchain Technology - The Next Superpower By Priyank Vaghela
Blockchain Technology - The Next Superpower By Priyank VaghelaBlockchain Technology - The Next Superpower By Priyank Vaghela
Blockchain Technology - The Next Superpower By Priyank Vaghela
PriyankVaghela
 
Hands on with multichain
Hands on with multichainHands on with multichain
Hands on with multichain
Roderik van der Veer
 
Lightning Network
Lightning  NetworkLightning  Network
Lightning Network
Felix Crisan
 
MultiChain – Private multicurrency blockchain platform
MultiChain – Private multicurrency blockchain platformMultiChain – Private multicurrency blockchain platform
MultiChain – Private multicurrency blockchain platform
Coin Sciences Ltd
 
Intro to blockchain
Intro to blockchainIntro to blockchain
Intro to blockchain
Ringaile Valiaugaite
 
Bitcoin
BitcoinBitcoin
Bitcoin
Siddhartha Ghosh
 
Bitcoin Transactions Examples
Bitcoin Transactions ExamplesBitcoin Transactions Examples
Bitcoin Transactions Examples
Jeff Flowers
 
Information security in private blockchains
Information security in private blockchainsInformation security in private blockchains
Information security in private blockchains
Coin Sciences Ltd
 
Bitcoin Technology Fundamentals - Tutorial 3 – Bitcoin Mining
Bitcoin Technology Fundamentals - Tutorial 3 – Bitcoin MiningBitcoin Technology Fundamentals - Tutorial 3 – Bitcoin Mining
Bitcoin Technology Fundamentals - Tutorial 3 – Bitcoin Mining
Amitesh Raikwar
 
Bitcoin powerpoint
Bitcoin powerpointBitcoin powerpoint
Bitcoin powerpoint
dcarro11
 
Bitcoin - the basics
Bitcoin - the basicsBitcoin - the basics
Bitcoin - the basics
Uri Nativ
 
Quick Understanding of Bitcoin/Cryptocurrency.
Quick Understanding of Bitcoin/Cryptocurrency.Quick Understanding of Bitcoin/Cryptocurrency.
Quick Understanding of Bitcoin/Cryptocurrency.
Satish Mudaliar
 
Introduction to bitcoin
Introduction to bitcoinIntroduction to bitcoin
Introduction to bitcoin
Wolf McNally
 
Blockchain seminar
Blockchain seminarBlockchain seminar
Blockchain seminar
Amiyabablu
 
Blockchain Primer Part 1
Blockchain Primer Part 1Blockchain Primer Part 1
Blockchain Primer Part 1
Sanjay Basu
 
Overview of bitcoin
Overview of bitcoinOverview of bitcoin
Overview of bitcoin
Abdul Nasir
 
The Bitcoin blockchain (en)
The Bitcoin blockchain (en)The Bitcoin blockchain (en)
The Bitcoin blockchain (en)
Davide Carboni
 
Wallets and Transactions #2
Wallets and Transactions #2Wallets and Transactions #2
Wallets and Transactions #2
BCWorkspace
 
YOCoin PowerPoint Presentation
YOCoin PowerPoint PresentationYOCoin PowerPoint Presentation
YOCoin PowerPoint Presentation
Crypto Currency
 
Blockchain Technology - The Next Superpower By Priyank Vaghela
Blockchain Technology - The Next Superpower By Priyank VaghelaBlockchain Technology - The Next Superpower By Priyank Vaghela
Blockchain Technology - The Next Superpower By Priyank Vaghela
PriyankVaghela
 
MultiChain – Private multicurrency blockchain platform
MultiChain – Private multicurrency blockchain platformMultiChain – Private multicurrency blockchain platform
MultiChain – Private multicurrency blockchain platform
Coin Sciences Ltd
 
Bitcoin Transactions Examples
Bitcoin Transactions ExamplesBitcoin Transactions Examples
Bitcoin Transactions Examples
Jeff Flowers
 
Information security in private blockchains
Information security in private blockchainsInformation security in private blockchains
Information security in private blockchains
Coin Sciences Ltd
 
Bitcoin Technology Fundamentals - Tutorial 3 – Bitcoin Mining
Bitcoin Technology Fundamentals - Tutorial 3 – Bitcoin MiningBitcoin Technology Fundamentals - Tutorial 3 – Bitcoin Mining
Bitcoin Technology Fundamentals - Tutorial 3 – Bitcoin Mining
Amitesh Raikwar
 
Bitcoin powerpoint
Bitcoin powerpointBitcoin powerpoint
Bitcoin powerpoint
dcarro11
 
Bitcoin - the basics
Bitcoin - the basicsBitcoin - the basics
Bitcoin - the basics
Uri Nativ
 
Quick Understanding of Bitcoin/Cryptocurrency.
Quick Understanding of Bitcoin/Cryptocurrency.Quick Understanding of Bitcoin/Cryptocurrency.
Quick Understanding of Bitcoin/Cryptocurrency.
Satish Mudaliar
 

Similar to Introduction to Bitcoin for programmers (20)

Bitcoin for programmers - part 1 version 2
Bitcoin for programmers - part 1 version 2Bitcoin for programmers - part 1 version 2
Bitcoin for programmers - part 1 version 2
Wojciech Langiewicz
 
Bitcoin Blockchain - Under the Hood
Bitcoin Blockchain - Under the HoodBitcoin Blockchain - Under the Hood
Bitcoin Blockchain - Under the Hood
Galin Dinkov
 
Fredericksburg LUG Bitcoin slides
Fredericksburg LUG Bitcoin slidesFredericksburg LUG Bitcoin slides
Fredericksburg LUG Bitcoin slides
Alex Akselrod
 
Blockchan For Developers
Blockchan For DevelopersBlockchan For Developers
Blockchan For Developers
Alex Chepurnoy
 
Bitcoin Talk at Rainbow
Bitcoin Talk at RainbowBitcoin Talk at Rainbow
Bitcoin Talk at Rainbow
C. Bennett Hoffman
 
Blockchain For Developers
Blockchain For DevelopersBlockchain For Developers
Blockchain For Developers
Alex Chepurnoy
 
Blockchain with scala
Blockchain with scalaBlockchain with scala
Blockchain with scala
Hongchao Liu
 
Blockchain, bitcoin, ethereum and ICOs
Blockchain, bitcoin, ethereum and ICOsBlockchain, bitcoin, ethereum and ICOs
Blockchain, bitcoin, ethereum and ICOs
Bogdan Fiedur
 
Blockchain (and Bitcoin)
Blockchain (and Bitcoin) Blockchain (and Bitcoin)
Blockchain (and Bitcoin)
Nitin Jain
 
Blockchain For Developers (Talk at Innopolis Blockchain Hackathon 2016)
Blockchain For Developers (Talk at Innopolis Blockchain Hackathon 2016)Blockchain For Developers (Talk at Innopolis Blockchain Hackathon 2016)
Blockchain For Developers (Talk at Innopolis Blockchain Hackathon 2016)
Alex Chepurnoy
 
The Emergent Layer 2
The Emergent Layer 2The Emergent Layer 2
The Emergent Layer 2
Chris Priest
 
Bitcoin, Banking and the Blockchain
Bitcoin, Banking and the BlockchainBitcoin, Banking and the Blockchain
Bitcoin, Banking and the Blockchain
seancarmody
 
Crypto & Crpyocurrencies Intro
Crypto & Crpyocurrencies IntroCrypto & Crpyocurrencies Intro
Crypto & Crpyocurrencies Intro
Tal Shmueli
 
Intro to Blockchain Slides
Intro to Blockchain SlidesIntro to Blockchain Slides
Intro to Blockchain Slides
Shannon Wells
 
“A bitcoin mining rig”
“A bitcoin mining rig”“A bitcoin mining rig”
“A bitcoin mining rig”
glitterlabs
 
Bitcoin and the future of cryptocurrency
Bitcoin and the future of cryptocurrencyBitcoin and the future of cryptocurrency
Bitcoin and the future of cryptocurrency
Ben Hall
 
Ethereum overview
Ethereum overviewEthereum overview
Ethereum overview
Alexander (Alex) Komyagin
 
Blockchain Properties
Blockchain PropertiesBlockchain Properties
Blockchain Properties
Alex Chepurnoy
 
Simone Bronzini - Weaknesses of blockchain applications - Codemotion Milan 2018
Simone Bronzini - Weaknesses of blockchain applications - Codemotion Milan 2018Simone Bronzini - Weaknesses of blockchain applications - Codemotion Milan 2018
Simone Bronzini - Weaknesses of blockchain applications - Codemotion Milan 2018
Codemotion
 
Bitcoin
BitcoinBitcoin
Bitcoin
Joel John
 
Bitcoin for programmers - part 1 version 2
Bitcoin for programmers - part 1 version 2Bitcoin for programmers - part 1 version 2
Bitcoin for programmers - part 1 version 2
Wojciech Langiewicz
 
Bitcoin Blockchain - Under the Hood
Bitcoin Blockchain - Under the HoodBitcoin Blockchain - Under the Hood
Bitcoin Blockchain - Under the Hood
Galin Dinkov
 
Fredericksburg LUG Bitcoin slides
Fredericksburg LUG Bitcoin slidesFredericksburg LUG Bitcoin slides
Fredericksburg LUG Bitcoin slides
Alex Akselrod
 
Blockchan For Developers
Blockchan For DevelopersBlockchan For Developers
Blockchan For Developers
Alex Chepurnoy
 
Blockchain For Developers
Blockchain For DevelopersBlockchain For Developers
Blockchain For Developers
Alex Chepurnoy
 
Blockchain with scala
Blockchain with scalaBlockchain with scala
Blockchain with scala
Hongchao Liu
 
Blockchain, bitcoin, ethereum and ICOs
Blockchain, bitcoin, ethereum and ICOsBlockchain, bitcoin, ethereum and ICOs
Blockchain, bitcoin, ethereum and ICOs
Bogdan Fiedur
 
Blockchain (and Bitcoin)
Blockchain (and Bitcoin) Blockchain (and Bitcoin)
Blockchain (and Bitcoin)
Nitin Jain
 
Blockchain For Developers (Talk at Innopolis Blockchain Hackathon 2016)
Blockchain For Developers (Talk at Innopolis Blockchain Hackathon 2016)Blockchain For Developers (Talk at Innopolis Blockchain Hackathon 2016)
Blockchain For Developers (Talk at Innopolis Blockchain Hackathon 2016)
Alex Chepurnoy
 
The Emergent Layer 2
The Emergent Layer 2The Emergent Layer 2
The Emergent Layer 2
Chris Priest
 
Bitcoin, Banking and the Blockchain
Bitcoin, Banking and the BlockchainBitcoin, Banking and the Blockchain
Bitcoin, Banking and the Blockchain
seancarmody
 
Crypto & Crpyocurrencies Intro
Crypto & Crpyocurrencies IntroCrypto & Crpyocurrencies Intro
Crypto & Crpyocurrencies Intro
Tal Shmueli
 
Intro to Blockchain Slides
Intro to Blockchain SlidesIntro to Blockchain Slides
Intro to Blockchain Slides
Shannon Wells
 
“A bitcoin mining rig”
“A bitcoin mining rig”“A bitcoin mining rig”
“A bitcoin mining rig”
glitterlabs
 
Bitcoin and the future of cryptocurrency
Bitcoin and the future of cryptocurrencyBitcoin and the future of cryptocurrency
Bitcoin and the future of cryptocurrency
Ben Hall
 
Simone Bronzini - Weaknesses of blockchain applications - Codemotion Milan 2018
Simone Bronzini - Weaknesses of blockchain applications - Codemotion Milan 2018Simone Bronzini - Weaknesses of blockchain applications - Codemotion Milan 2018
Simone Bronzini - Weaknesses of blockchain applications - Codemotion Milan 2018
Codemotion
 
Ad

More from Wojciech Langiewicz (7)

JSON API Specificiation
JSON API SpecificiationJSON API Specificiation
JSON API Specificiation
Wojciech Langiewicz
 
Ionic 2 intro
Ionic 2   introIonic 2   intro
Ionic 2 intro
Wojciech Langiewicz
 
Mutation testing in Java
Mutation testing in JavaMutation testing in Java
Mutation testing in Java
Wojciech Langiewicz
 
2014 hadoop wrocław jug
2014 hadoop   wrocław jug2014 hadoop   wrocław jug
2014 hadoop wrocław jug
Wojciech Langiewicz
 
Introduction to Octopress at DRUG
Introduction to Octopress at DRUGIntroduction to Octopress at DRUG
Introduction to Octopress at DRUG
Wojciech Langiewicz
 
Ad

Recently uploaded (20)

AI x Accessibility UXPA by Stew Smith and Olivier Vroom
AI x Accessibility UXPA by Stew Smith and Olivier VroomAI x Accessibility UXPA by Stew Smith and Olivier Vroom
AI x Accessibility UXPA by Stew Smith and Olivier Vroom
UXPA Boston
 
Com fer un pla de gestió de dades amb l'eiNa DMP (en anglès)
Com fer un pla de gestió de dades amb l'eiNa DMP (en anglès)Com fer un pla de gestió de dades amb l'eiNa DMP (en anglès)
Com fer un pla de gestió de dades amb l'eiNa DMP (en anglès)
CSUC - Consorci de Serveis Universitaris de Catalunya
 
Webinar - Top 5 Backup Mistakes MSPs and Businesses Make .pptx
Webinar - Top 5 Backup Mistakes MSPs and Businesses Make   .pptxWebinar - Top 5 Backup Mistakes MSPs and Businesses Make   .pptx
Webinar - Top 5 Backup Mistakes MSPs and Businesses Make .pptx
MSP360
 
Viam product demo_ Deploying and scaling AI with hardware.pdf
Viam product demo_ Deploying and scaling AI with hardware.pdfViam product demo_ Deploying and scaling AI with hardware.pdf
Viam product demo_ Deploying and scaling AI with hardware.pdf
camilalamoratta
 
Financial Services Technology Summit 2025
Financial Services Technology Summit 2025Financial Services Technology Summit 2025
Financial Services Technology Summit 2025
Ray Bugg
 
Slack like a pro: strategies for 10x engineering teams
Slack like a pro: strategies for 10x engineering teamsSlack like a pro: strategies for 10x engineering teams
Slack like a pro: strategies for 10x engineering teams
Nacho Cougil
 
Config 2025 presentation recap covering both days
Config 2025 presentation recap covering both daysConfig 2025 presentation recap covering both days
Config 2025 presentation recap covering both days
TrishAntoni1
 
Jignesh Shah - The Innovator and Czar of Exchanges
Jignesh Shah - The Innovator and Czar of ExchangesJignesh Shah - The Innovator and Czar of Exchanges
Jignesh Shah - The Innovator and Czar of Exchanges
Jignesh Shah Innovator
 
machines-for-woodworking-shops-en-compressed.pdf
machines-for-woodworking-shops-en-compressed.pdfmachines-for-woodworking-shops-en-compressed.pdf
machines-for-woodworking-shops-en-compressed.pdf
AmirStern2
 
GDG Cloud Southlake #42: Suresh Mathew: Autonomous Resource Optimization: How...
GDG Cloud Southlake #42: Suresh Mathew: Autonomous Resource Optimization: How...GDG Cloud Southlake #42: Suresh Mathew: Autonomous Resource Optimization: How...
GDG Cloud Southlake #42: Suresh Mathew: Autonomous Resource Optimization: How...
James Anderson
 
The Future of Cisco Cloud Security: Innovations and AI Integration
The Future of Cisco Cloud Security: Innovations and AI IntegrationThe Future of Cisco Cloud Security: Innovations and AI Integration
The Future of Cisco Cloud Security: Innovations and AI Integration
Re-solution Data Ltd
 
Integrating FME with Python: Tips, Demos, and Best Practices for Powerful Aut...
Integrating FME with Python: Tips, Demos, and Best Practices for Powerful Aut...Integrating FME with Python: Tips, Demos, and Best Practices for Powerful Aut...
Integrating FME with Python: Tips, Demos, and Best Practices for Powerful Aut...
Safe Software
 
Kit-Works Team Study_팀스터디_김한솔_nuqs_20250509.pdf
Kit-Works Team Study_팀스터디_김한솔_nuqs_20250509.pdfKit-Works Team Study_팀스터디_김한솔_nuqs_20250509.pdf
Kit-Works Team Study_팀스터디_김한솔_nuqs_20250509.pdf
Wonjun Hwang
 
UiPath Agentic Automation: Community Developer Opportunities
UiPath Agentic Automation: Community Developer OpportunitiesUiPath Agentic Automation: Community Developer Opportunities
UiPath Agentic Automation: Community Developer Opportunities
DianaGray10
 
Enterprise Integration Is Dead! Long Live AI-Driven Integration with Apache C...
Enterprise Integration Is Dead! Long Live AI-Driven Integration with Apache C...Enterprise Integration Is Dead! Long Live AI-Driven Integration with Apache C...
Enterprise Integration Is Dead! Long Live AI-Driven Integration with Apache C...
Markus Eisele
 
Mastering Testing in the Modern F&B Landscape
Mastering Testing in the Modern F&B LandscapeMastering Testing in the Modern F&B Landscape
Mastering Testing in the Modern F&B Landscape
marketing943205
 
Agentic Automation - Delhi UiPath Community Meetup
Agentic Automation - Delhi UiPath Community MeetupAgentic Automation - Delhi UiPath Community Meetup
Agentic Automation - Delhi UiPath Community Meetup
Manoj Batra (1600 + Connections)
 
Hybridize Functions: A Tool for Automatically Refactoring Imperative Deep Lea...
Hybridize Functions: A Tool for Automatically Refactoring Imperative Deep Lea...Hybridize Functions: A Tool for Automatically Refactoring Imperative Deep Lea...
Hybridize Functions: A Tool for Automatically Refactoring Imperative Deep Lea...
Raffi Khatchadourian
 
Unlocking Generative AI in your Web Apps
Unlocking Generative AI in your Web AppsUnlocking Generative AI in your Web Apps
Unlocking Generative AI in your Web Apps
Maximiliano Firtman
 
GyrusAI - Broadcasting & Streaming Applications Driven by AI and ML
GyrusAI - Broadcasting & Streaming Applications Driven by AI and MLGyrusAI - Broadcasting & Streaming Applications Driven by AI and ML
GyrusAI - Broadcasting & Streaming Applications Driven by AI and ML
Gyrus AI
 
AI x Accessibility UXPA by Stew Smith and Olivier Vroom
AI x Accessibility UXPA by Stew Smith and Olivier VroomAI x Accessibility UXPA by Stew Smith and Olivier Vroom
AI x Accessibility UXPA by Stew Smith and Olivier Vroom
UXPA Boston
 
Webinar - Top 5 Backup Mistakes MSPs and Businesses Make .pptx
Webinar - Top 5 Backup Mistakes MSPs and Businesses Make   .pptxWebinar - Top 5 Backup Mistakes MSPs and Businesses Make   .pptx
Webinar - Top 5 Backup Mistakes MSPs and Businesses Make .pptx
MSP360
 
Viam product demo_ Deploying and scaling AI with hardware.pdf
Viam product demo_ Deploying and scaling AI with hardware.pdfViam product demo_ Deploying and scaling AI with hardware.pdf
Viam product demo_ Deploying and scaling AI with hardware.pdf
camilalamoratta
 
Financial Services Technology Summit 2025
Financial Services Technology Summit 2025Financial Services Technology Summit 2025
Financial Services Technology Summit 2025
Ray Bugg
 
Slack like a pro: strategies for 10x engineering teams
Slack like a pro: strategies for 10x engineering teamsSlack like a pro: strategies for 10x engineering teams
Slack like a pro: strategies for 10x engineering teams
Nacho Cougil
 
Config 2025 presentation recap covering both days
Config 2025 presentation recap covering both daysConfig 2025 presentation recap covering both days
Config 2025 presentation recap covering both days
TrishAntoni1
 
Jignesh Shah - The Innovator and Czar of Exchanges
Jignesh Shah - The Innovator and Czar of ExchangesJignesh Shah - The Innovator and Czar of Exchanges
Jignesh Shah - The Innovator and Czar of Exchanges
Jignesh Shah Innovator
 
machines-for-woodworking-shops-en-compressed.pdf
machines-for-woodworking-shops-en-compressed.pdfmachines-for-woodworking-shops-en-compressed.pdf
machines-for-woodworking-shops-en-compressed.pdf
AmirStern2
 
GDG Cloud Southlake #42: Suresh Mathew: Autonomous Resource Optimization: How...
GDG Cloud Southlake #42: Suresh Mathew: Autonomous Resource Optimization: How...GDG Cloud Southlake #42: Suresh Mathew: Autonomous Resource Optimization: How...
GDG Cloud Southlake #42: Suresh Mathew: Autonomous Resource Optimization: How...
James Anderson
 
The Future of Cisco Cloud Security: Innovations and AI Integration
The Future of Cisco Cloud Security: Innovations and AI IntegrationThe Future of Cisco Cloud Security: Innovations and AI Integration
The Future of Cisco Cloud Security: Innovations and AI Integration
Re-solution Data Ltd
 
Integrating FME with Python: Tips, Demos, and Best Practices for Powerful Aut...
Integrating FME with Python: Tips, Demos, and Best Practices for Powerful Aut...Integrating FME with Python: Tips, Demos, and Best Practices for Powerful Aut...
Integrating FME with Python: Tips, Demos, and Best Practices for Powerful Aut...
Safe Software
 
Kit-Works Team Study_팀스터디_김한솔_nuqs_20250509.pdf
Kit-Works Team Study_팀스터디_김한솔_nuqs_20250509.pdfKit-Works Team Study_팀스터디_김한솔_nuqs_20250509.pdf
Kit-Works Team Study_팀스터디_김한솔_nuqs_20250509.pdf
Wonjun Hwang
 
UiPath Agentic Automation: Community Developer Opportunities
UiPath Agentic Automation: Community Developer OpportunitiesUiPath Agentic Automation: Community Developer Opportunities
UiPath Agentic Automation: Community Developer Opportunities
DianaGray10
 
Enterprise Integration Is Dead! Long Live AI-Driven Integration with Apache C...
Enterprise Integration Is Dead! Long Live AI-Driven Integration with Apache C...Enterprise Integration Is Dead! Long Live AI-Driven Integration with Apache C...
Enterprise Integration Is Dead! Long Live AI-Driven Integration with Apache C...
Markus Eisele
 
Mastering Testing in the Modern F&B Landscape
Mastering Testing in the Modern F&B LandscapeMastering Testing in the Modern F&B Landscape
Mastering Testing in the Modern F&B Landscape
marketing943205
 
Hybridize Functions: A Tool for Automatically Refactoring Imperative Deep Lea...
Hybridize Functions: A Tool for Automatically Refactoring Imperative Deep Lea...Hybridize Functions: A Tool for Automatically Refactoring Imperative Deep Lea...
Hybridize Functions: A Tool for Automatically Refactoring Imperative Deep Lea...
Raffi Khatchadourian
 
Unlocking Generative AI in your Web Apps
Unlocking Generative AI in your Web AppsUnlocking Generative AI in your Web Apps
Unlocking Generative AI in your Web Apps
Maximiliano Firtman
 
GyrusAI - Broadcasting & Streaming Applications Driven by AI and ML
GyrusAI - Broadcasting & Streaming Applications Driven by AI and MLGyrusAI - Broadcasting & Streaming Applications Driven by AI and ML
GyrusAI - Broadcasting & Streaming Applications Driven by AI and ML
Gyrus AI
 

Introduction to Bitcoin for programmers

  • 1. 1 Bitcoin – Introduction for programmers Wojciech Langiewicz @ DRUG #58
  • 2. 2 Scope of this talk ● Introduction – What is Bitcoin, History ● Core concepts – Keys, Addresses – Wallet – Clients – Transaction – Block – Mining – Blockchain
  • 3. 3 What is Bitcoin ● Collection of concepts (and full “ecosystem” of tools) ● Decentralized peer-to-peer system ● Solves 2 main problems: – Is that money authentic (not counterfeit) – Is there only singe occurrence of this specific coin (double spends) ● Has much similarities to cash and gold
  • 4. 4 Key elements of the ecosystem ● Decentralized peer-to-peer network (Bitcoin protocol) ● Public transaction ledger (Blockchain) ● Decentralized currency issuing algorithms (mining) ● Decentralized transaction verification (transaction scripts)
  • 5. 5 Few words about history ● Introduced in 2009 by Satoshi Nakamoto ● https://bitcoin.org/bitcoin.pdf ● Combined concepts that existed before ● But have not been combined until then ● POW algorithm + Blockchain
  • 6. 6 Bitcoin Address ● Something like this: 1FzQW9CWpNBoqUmaLFKNMAYiBhj6ncJA7N ● Usually shown as QR code: ● Address is a Base58 encoded form of the public key ● Based on the address prefix, you can figure out what type of address it is. ● Types of addresses: Pubkey hash, script hash, private key ● Address reuse ● A word about HD Wallets
  • 7. 7 Bitcoin Keys - ECDSA ● Private keys – numbers between 0 and 2^256 ● Public key can be calculated from the private key ● Public key can be represented as Base58 encoding, HEX number, etc ● Private keys can also be encoded as Base58 – this is called WIF format – most common way to export/import keys between wallets
  • 8. 8 Wallet ● Client software running on: server, desktop, phone, “in the cloud”, it manages keys, signs transactions, generates new keys, etc ● Bitcoin-qt ● Electrum, Armory, Multibit ● Blockchain.info ● Mobile wallets with intermediate server ● Other web wallets
  • 9. 9 Full nodes ● Full nodes store full copy of the blockchain ● Currently over 40GB of data ● Usually need for server-side type of applications ● Provide JSON-RPC API ● Example: Satoshi client, btcd
  • 10. 10 SPV nodes ● Lighweight nodes ● Use Simplified Payment Verification instead of ITV ● Suitable for desktops, phones ● Instead of downloading full blockchain ● Download transactions only for their addresses ● Security and privacy implications ● Example: bitcoinj
  • 11. 11 Transaction ● Coinbase transaction ● Each transaction has 1 or more inputs and 1 or more outputs ● Transaction “moves money” - changes owner ● Transactions take inputs and translate it into outputs ● Those outputs can serve as inputs to the new transaction
  • 12. 12 Spending a transaction - P2PH ● Example of transaction type “Pay to pubkey hash” ● ScriptPubKey: OP_DUP OP_HASH160 <pubKeyHash> OP_EQUALVERIFY OP_CHECKSIG ● scriptSig: <sig> <pubKey> ● Script: <sig> <pubKey> OP_DUP OP_HASH160 <pubKeyHash> OP_EQUALVERIFY OP_CHECKSIG
  • 13. 13 Executing a script
  • 14. 14 Advanced transaction types ● Multi signature (multisig) ● OP_RETURN ● Anyone can spend ● Pay to script hash
  • 15. 15 Blocks ● Genesis block ● Mining – process of confirming a block ● Each block points to a previous one creating a blockchain ● Quite few similarities to git (instead you can't merge)
  • 16. 16 Mining ● Merges transactions into blocks ● Finds nonce that “solves” the block ● Once the solution is found – block is published ● Published – appended to the blockchain ● Published blocks are verified by other nodes ● This sends coinbase transaction to the miner + all fees ● Proof of Work – 10 minutes per block ● Difficulty
  • 17. 17 Mining pools ● Chance to find a solution to a block are small ● Small miners join in pools where they share a profit ● Instead of finding a block every year and getting 25BTC ● You will get 0.5 BTC per week. ● You have to trust the pool operator or use p2pool
  • 18. 18 Blockchain ● “A chain of blocks” ● Clever approach to consensus problem ● Miners after finding a new block publish it on the network ● You base your security on a height of a transaction ● Ensures that there are no duplication
  • 19. 19 Blockchain fork ● Situation when 2 blocks are found at the same time ● Bitcoin network is in the state of a fork ● 10 minutes later a new block is found that is based on one of the forks ● All Bitcoin nodes quickly switch to the longer branch ● Transactions from the shorter branch are orphaned and will be processed shortly after
  • 20. 20 Few words about the 51% attack ● Theoretically possible even with 40-50% of power ● Can be used to destabilize network for some period of time ● Can help to create a double-spend ● In no case you'll be able to spend coins you don't have ● This attack is not practical ● Miners will make more BTC by being honest
  • 21. 21 Next time ● More about Bitcoin clients ● Bitcoin-core / btcd API ● Bitcoinj ● Raw transactions ● Blockchain details ● Security ● Bitcoin flaws