O'Reilly logo

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Bitcoin & Blockchain - Grundlagen und Programmierung, 2nd Edition

Book Description

Bitcoin gilt als disruptive Technologie, die den Finanzsektor, aber auch andere Branchen revolutionieren wird, und stößt auf großes Interesse.Dieses Buch führt Entwickler, Ingenieure, Software- und Systemarchitekten in die digitale Kryptowährung Bitcoin und die Blockchain, Bitcoins technologische Grundlage, ein. Der praktische Leitfaden behandelt alle relevanten Aspekte des dezentralen Bitcoin-Netzwerks, der Peer-to-Peer-Architektur, des Transaktionslebenszyklus sowie Sicherheitsprinzipien. Die zweite Auflage deckt neue Entwicklungen wie Segregated Witness, Payment Channels und Lightning Networks ab. Nachdem Blockchain-Applikationen intensiv untersucht wurden, zeigt der Bitcoin-Experte Andreas M. Antonopoulos, wie die Grundbausteine der Plattform in Anwendungen genutzt werden.Andreas M. Antonopoulos, Technologie-Experte und Entrepreneur, ist einer der international bekanntesten und anerkanntesten Influencer der Bitcoin-Szene.

Table of Contents

  1. Cover
  2. Titel
  3. Impressum
  4. Widmung
  5. Inhalt
  6. Vorwort
  7. Glossar
  8. 1 Einführung
    1. Was ist Bitcoin?
    2. Geschichte des Bitcoins
    3. Bitcoin: Anwendungsfälle, Anwender und deren Geschichten
    4. Erste Schritte
    5. Wahl einer Bitcoin-Wallet
    6. Schnelleinstieg
    7. Ihr erster Bitcoin
    8. Den aktuellen Bitcoin-Preis ermitteln
    9. Bitcoin senden und empfangen
  9. 2 Wie Bitcoin funktioniert
    1. Transaktionen, Blöcke, Mining und die Blockchain
    2. Bitcoin-Übersicht
    3. Eine Tasse Kaffee kaufen
    4. Bitcoin-Transaktionen
    5. Inputs und Outputs von Transaktionen
    6. Transaktionsketten
    7. Wechselgeld
    8. Gängige Transaktionsformen
    9. Eine Transaktion konstruieren
    10. Die richtigen Inputs
    11. Die Outputs erzeugen
    12. Die Transaktion zum Kassenbuch hinzufügen
    13. Bitcoin-Mining
    14. Transaktionen in Blöcke einfügen
    15. Die Transaktion einlösen
  10. 3 Bitcoin Core: die Referenzimplementierung
    1. Bitcoin-Entwicklungsumgebung
    2. Bitcoin Core aus dem Quellcode kompilieren
    3. Wahl einer Bitcoin-Core-Release
    4. Den Bitcoin-Core-Build konfigurieren
    5. Die Bitcoin-Core-Executables erzeugen
    6. Einen Bitcoin-Core-Knoten ausführen
    7. Bitcoin Core zum ersten Mal ausführen
    8. Den Bitcoin-Core-Knoten konfigurieren
    9. Bitcoin Core Application Programming Interface (API)
    10. Informationen zum Status des Bitcoin-Core-Clients abrufen
    11. Transaktionen untersuchen und decodieren
    12. Blöcke untersuchen
    13. Die Bitcoin Core API nutzen
    14. Alternative Clients, Bibliotheken und Toolkits
    15. C/C++
    16. JavaScript
    17. Java
    18. Python
    19. Ruby
    20. Go
    21. Rust
    22. C#
    23. Objective-C
  11. 4 Schlüssel und Adressen
    1. Einführung
    2. Public-Key-Kryptografie und Kryptowährungen
    3. Private und öffentliche Schlüssel
    4. Private Schlüssel
    5. Öffentliche Schlüssel
    6. Kryptografie mit elliptischen Kurven
    7. Einen öffentlichen Schlüssel generieren
    8. Bitcoin-Adressen
    9. Base58- und Base58Check-Codierung
    10. Schlüsselformate
    11. Schlüssel und Adressen in Python implementieren
    12. Fortgeschrittene Schlüssel und Adressen
    13. Verschlüsselte private Adressen (Encrypted Private Keys, BIP-38)
    14. Pay-to-Script-Hash-(P2SH-)Adressen und Multisig-Adressen
    15. Vanity-Adressen
    16. Paper-Wallets
  12. 5 Wallets
    1. Wallet-Technologie in der Übersicht
    2. Nichtdeterministische (zufallsbasierte) Wallets
    3. Deterministische (Seed-basierte) Wallets
    4. HD-Wallets (BIP-32/BIP-44)
    5. Seeds und mnemonische Codes (BIP-39)
    6. Die Wallet-Best-Practices
    7. Eine Bitcoin-Wallet verwenden
    8. Details der Wallet-Technologie
    9. Mnemonische Codewörter (BIP-39)
    10. Eine HD-Wallet aus dem Seed-Wert erzeugen
    11. Einen erweiterten öffentlichen Schlüssel in einem Webshop nutzen
  13. 6 Transaktionen
    1. Einführung
    2. Transaktionen im Detail
    3. Transaktionen – hinter den Kulissen
    4. Transaktions-Outputs und -Inputs
    5. Transaktions-Outputs
    6. Transaktions-Inputs
    7. Transaktionsgebühren (Fees)
    8. Gebühren in Transaktionen einfügen
    9. Transaktionsskripte und Skriptsprache
    10. Turing-Unvollständigkeit
    11. Zustandslose Verifikation
    12. Konstruktion von Skripten (Lock + Unlock)
    13. Pay-to-Public-Key-Hash (P2PKH)
    14. Digitale Signaturen (ECDSA)
    15. Wie digitale Signaturen funktionieren
    16. Die Signatur verifizieren
    17. Arten von Signatur-Hashes (SIGHASH)
    18. Die Mathematik hinter ECDSA
    19. Die Bedeutung der Zufälligkeit für Signaturen
    20. Bitcoin-Adressen, Guthaben und andere Abstraktionen
  14. 7 Transaktionen und Skripting für Fortgeschrittene
    1. Einführung
    2. Multisignatur
    3. Pay-to-Script-Hash (P2SH)
    4. P2SH-Adressen
    5. Vorteile von P2SH
    6. Redeem-Skript und Validierung
    7. Data Recording Output (RETURN)
    8. Timelocks
    9. Transaktions-Locktime (nLocktime)
    10. Check Lock Time Verify (CLTV)
    11. Relative Timelocks
    12. Relative Timelocks mit nSequence
    13. Relative Timelocks mit CSV
    14. Median-Time-Past
    15. Timelock-Schutz gegen Fee-Sniping
    16. Skripte mit Ablaufsteuerung (Bedingungsklauseln)
    17. Bedingungsklauseln mit VERIFY-Opcodes
    18. Die Ablaufsteuerung in Skripten nutzen
    19. Komplexes Skriptbeispiel
  15. 8 Das Bitcoin-Netzwerk
    1. Peer-to-Peer-Netzwerkarchitektur
    2. Arten und Rollen von Nodes
    3. Das erweiterte Bitcoin-Netzwerk
    4. Bitcoin-Relay-Netzwerke
    5. Netzwerkerkundung
    6. Full Nodes
    7. »Inventar« austauschen
    8. SPV-Nodes (Simplified Payment Verification)
    9. Bloomfilter
    10. Wie Bloomfilter funktionieren
    11. Wie SPV-Nodes Bloomfilter nutzen
    12. SPV-Nodes und Privatsphäre
    13. Verschlüsselte und authentifizierte Verbindungen
    14. Tor-Transport
    15. Peer-to-Peer-Authentifizierung und -Verschlüsselung
    16. Transaktionspools
  16. 9 Die Blockchain
    1. Einführung
    2. Struktur eines Blocks
    3. Block-Header
    4. Blockkennungen: Block-Header und Blockhöhe
    5. Der Genesis-Block
    6. Blöcke in der Blockchain verlinken
    7. Merkle Trees (Hashbäume)
    8. Merkle Trees und Simplified Payment Verification (SPV)
    9. Bitcoins Test-Blockchains
    10. Testnet – Bitcoins Testspielwiese
    11. Segnet – das Segregated-Witness-Testnet
    12. Regtest – die lokale Blockchain
    13. Test-Blockchains für die Entwicklung nutzen
  17. 10 Mining und Konsens
    1. Einführung
    2. Bitcoin-Ökonomie und Währungsgenerierung
    3. Dezentralisierter Konsens
    4. Unabhängige Verifikation von Transaktionen
    5. Mining-Nodes
    6. Transaktionen in Blöcken zusammenfassen
    7. Die Coinbase-Transaktion
    8. Coinbase-Belohnungen und Gebühren
    9. Struktur der Coinbase-Transaktion
    10. Coinbase-Daten
    11. Die Block-Header aufbauen
    12. Mining des Blocks
    13. Proof-of-Work-Algorithmus
    14. Target-Darstellung
    15. Retargeting zur Anpassung der Difficulty
    16. Den Block erfolgreich schürfen
    17. Einen neuen Block validieren
    18. Ketten von Blöcken zusammensetzen und auswählen
    19. Blockchain-Forks
    20. Mining und der Hashing-Wettlauf
    21. Die Lösung mit der Extra-Nonce
    22. Mining-Pools
    23. Konsensangriffe
    24. Die Konsensregeln ändern
    25. Hard Forks
    26. Hard Forks: Software, Netzwerk, Mining und die Chain
    27. Divergierende Miner und Difficulty
    28. Umstrittene Hard Forks
    29. Soft Forks
    30. Kritik an Soft Forks
    31. Soft-Fork-Signalisierung mittels Blockversion
    32. BIP-34-Signalisierung und -Aktivierung
    33. BIP-9-Signalisierung und -Aktivierung
    34. Entwicklung von Konsenssoftware
  18. 11 Bitcoins und Sicherheit
    1. Sicherheitsgrundsätze
    2. Bitcoin-Systeme sicher entwickeln
    3. Die Wurzel des Vertrauens
    4. Best Practices für den Nutzer
    5. Physische Speicherung von Bitcoins
    6. Hardware-Wallets
    7. Risiken abwägen
    8. Risiken verteilen
    9. Multisignaturen und Kontrolle
    10. Überlebensfähigkeit
    11. Fazit
  19. 12 Blockchain-Anwendungen
    1. Einführung
    2. Grundbausteine (Primitive)
    3. Anwendungen aus Grundbausteinen
    4. Colored Coins
    5. Colored Coins nutzen
    6. Colored Coins ausstellen
    7. Colored-Coins-Transaktionen
    8. Counterparty
    9. Zahlungs- und Zustandskanäle
    10. Zustandskanäle – grundlegende Konzepte und Terminologie
    11. Einfaches Zahlungskanalbeispiel
    12. Vertrauensfreie Kanäle aufbauen
    13. Asymmetrisch widerrufliche Commitments
    14. Hash Time Lock Contracts (HTLC)
    15. Geroutete Zahlungskanäle (Lightning Network)
    16. Einfaches Lightning-Network-Beispiel
    17. Lightning Network – Transport und Routing
    18. Vorteile des Lightning Network
    19. Fazit
  20. A Das Bitcoin-Whitepaper von Satoshi Nakamoto
    1. B Operatoren, Konstanten und Symbole der Transaktions-Skriptsprache
    2. C Bitcoin Improvement Proposals
    3. D Segregated Witness
    4. E Bitcore
    5. F pycoin, ku und tx
    6. G Bitcoin-Explorer-(bx-)Befehle
  21. Index