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
- Cover
- Titel
- Impressum
- Widmung
- Inhalt
- Vorwort
- Glossar
- 1 Einführung
-
2 Wie Bitcoin funktioniert
- Transaktionen, Blöcke, Mining und die Blockchain
- Bitcoin-Übersicht
- Eine Tasse Kaffee kaufen
- Bitcoin-Transaktionen
- Inputs und Outputs von Transaktionen
- Transaktionsketten
- Wechselgeld
- Gängige Transaktionsformen
- Eine Transaktion konstruieren
- Die richtigen Inputs
- Die Outputs erzeugen
- Die Transaktion zum Kassenbuch hinzufügen
- Bitcoin-Mining
- Transaktionen in Blöcke einfügen
- Die Transaktion einlösen
-
3 Bitcoin Core: die Referenzimplementierung
- Bitcoin-Entwicklungsumgebung
- Bitcoin Core aus dem Quellcode kompilieren
- Wahl einer Bitcoin-Core-Release
- Den Bitcoin-Core-Build konfigurieren
- Die Bitcoin-Core-Executables erzeugen
- Einen Bitcoin-Core-Knoten ausführen
- Bitcoin Core zum ersten Mal ausführen
- Den Bitcoin-Core-Knoten konfigurieren
- Bitcoin Core Application Programming Interface (API)
- Informationen zum Status des Bitcoin-Core-Clients abrufen
- Transaktionen untersuchen und decodieren
- Blöcke untersuchen
- Die Bitcoin Core API nutzen
- Alternative Clients, Bibliotheken und Toolkits
- C/C++
- JavaScript
- Java
- Python
- Ruby
- Go
- Rust
- C#
- Objective-C
-
4 Schlüssel und Adressen
- Einführung
- Public-Key-Kryptografie und Kryptowährungen
- Private und öffentliche Schlüssel
- Private Schlüssel
- Öffentliche Schlüssel
- Kryptografie mit elliptischen Kurven
- Einen öffentlichen Schlüssel generieren
- Bitcoin-Adressen
- Base58- und Base58Check-Codierung
- Schlüsselformate
- Schlüssel und Adressen in Python implementieren
- Fortgeschrittene Schlüssel und Adressen
- Verschlüsselte private Adressen (Encrypted Private Keys, BIP-38)
- Pay-to-Script-Hash-(P2SH-)Adressen und Multisig-Adressen
- Vanity-Adressen
- Paper-Wallets
-
5 Wallets
- Wallet-Technologie in der Übersicht
- Nichtdeterministische (zufallsbasierte) Wallets
- Deterministische (Seed-basierte) Wallets
- HD-Wallets (BIP-32/BIP-44)
- Seeds und mnemonische Codes (BIP-39)
- Die Wallet-Best-Practices
- Eine Bitcoin-Wallet verwenden
- Details der Wallet-Technologie
- Mnemonische Codewörter (BIP-39)
- Eine HD-Wallet aus dem Seed-Wert erzeugen
- Einen erweiterten öffentlichen Schlüssel in einem Webshop nutzen
-
6 Transaktionen
- Einführung
- Transaktionen im Detail
- Transaktionen – hinter den Kulissen
- Transaktions-Outputs und -Inputs
- Transaktions-Outputs
- Transaktions-Inputs
- Transaktionsgebühren (Fees)
- Gebühren in Transaktionen einfügen
- Transaktionsskripte und Skriptsprache
- Turing-Unvollständigkeit
- Zustandslose Verifikation
- Konstruktion von Skripten (Lock + Unlock)
- Pay-to-Public-Key-Hash (P2PKH)
- Digitale Signaturen (ECDSA)
- Wie digitale Signaturen funktionieren
- Die Signatur verifizieren
- Arten von Signatur-Hashes (SIGHASH)
- Die Mathematik hinter ECDSA
- Die Bedeutung der Zufälligkeit für Signaturen
- Bitcoin-Adressen, Guthaben und andere Abstraktionen
-
7 Transaktionen und Skripting für Fortgeschrittene
- Einführung
- Multisignatur
- Pay-to-Script-Hash (P2SH)
- P2SH-Adressen
- Vorteile von P2SH
- Redeem-Skript und Validierung
- Data Recording Output (RETURN)
- Timelocks
- Transaktions-Locktime (nLocktime)
- Check Lock Time Verify (CLTV)
- Relative Timelocks
- Relative Timelocks mit nSequence
- Relative Timelocks mit CSV
- Median-Time-Past
- Timelock-Schutz gegen Fee-Sniping
- Skripte mit Ablaufsteuerung (Bedingungsklauseln)
- Bedingungsklauseln mit VERIFY-Opcodes
- Die Ablaufsteuerung in Skripten nutzen
- Komplexes Skriptbeispiel
-
8 Das Bitcoin-Netzwerk
- Peer-to-Peer-Netzwerkarchitektur
- Arten und Rollen von Nodes
- Das erweiterte Bitcoin-Netzwerk
- Bitcoin-Relay-Netzwerke
- Netzwerkerkundung
- Full Nodes
- »Inventar« austauschen
- SPV-Nodes (Simplified Payment Verification)
- Bloomfilter
- Wie Bloomfilter funktionieren
- Wie SPV-Nodes Bloomfilter nutzen
- SPV-Nodes und Privatsphäre
- Verschlüsselte und authentifizierte Verbindungen
- Tor-Transport
- Peer-to-Peer-Authentifizierung und -Verschlüsselung
- Transaktionspools
-
9 Die Blockchain
- Einführung
- Struktur eines Blocks
- Block-Header
- Blockkennungen: Block-Header und Blockhöhe
- Der Genesis-Block
- Blöcke in der Blockchain verlinken
- Merkle Trees (Hashbäume)
- Merkle Trees und Simplified Payment Verification (SPV)
- Bitcoins Test-Blockchains
- Testnet – Bitcoins Testspielwiese
- Segnet – das Segregated-Witness-Testnet
- Regtest – die lokale Blockchain
- Test-Blockchains für die Entwicklung nutzen
-
10 Mining und Konsens
- Einführung
- Bitcoin-Ökonomie und Währungsgenerierung
- Dezentralisierter Konsens
- Unabhängige Verifikation von Transaktionen
- Mining-Nodes
- Transaktionen in Blöcken zusammenfassen
- Die Coinbase-Transaktion
- Coinbase-Belohnungen und Gebühren
- Struktur der Coinbase-Transaktion
- Coinbase-Daten
- Die Block-Header aufbauen
- Mining des Blocks
- Proof-of-Work-Algorithmus
- Target-Darstellung
- Retargeting zur Anpassung der Difficulty
- Den Block erfolgreich schürfen
- Einen neuen Block validieren
- Ketten von Blöcken zusammensetzen und auswählen
- Blockchain-Forks
- Mining und der Hashing-Wettlauf
- Die Lösung mit der Extra-Nonce
- Mining-Pools
- Konsensangriffe
- Die Konsensregeln ändern
- Hard Forks
- Hard Forks: Software, Netzwerk, Mining und die Chain
- Divergierende Miner und Difficulty
- Umstrittene Hard Forks
- Soft Forks
- Kritik an Soft Forks
- Soft-Fork-Signalisierung mittels Blockversion
- BIP-34-Signalisierung und -Aktivierung
- BIP-9-Signalisierung und -Aktivierung
- Entwicklung von Konsenssoftware
- 11 Bitcoins und Sicherheit
-
12 Blockchain-Anwendungen
- Einführung
- Grundbausteine (Primitive)
- Anwendungen aus Grundbausteinen
- Colored Coins
- Colored Coins nutzen
- Colored Coins ausstellen
- Colored-Coins-Transaktionen
- Counterparty
- Zahlungs- und Zustandskanäle
- Zustandskanäle – grundlegende Konzepte und Terminologie
- Einfaches Zahlungskanalbeispiel
- Vertrauensfreie Kanäle aufbauen
- Asymmetrisch widerrufliche Commitments
- Hash Time Lock Contracts (HTLC)
- Geroutete Zahlungskanäle (Lightning Network)
- Einfaches Lightning-Network-Beispiel
- Lightning Network – Transport und Routing
- Vorteile des Lightning Network
- Fazit
- A Das Bitcoin-Whitepaper von Satoshi Nakamoto
- Index
Product information
- Title: Bitcoin & Blockchain - Grundlagen und Programmierung, 2nd Edition
- Author(s):
- Release date: April 2018
- Publisher(s): dpunkt
- ISBN: 9783960090717
You might also like
book
Ethereum – Grundlagen und Programmierung
Von herausragenden Experten lernen: Andreas M. Antonopoulos, weltweit führender Bitcoin- und Open-Blockchain-Experte, und Dr. Gavin Wood, …
book
Bitcoin – kurz & gut
Bitcoin ist eine virtuelle Währung. Sie besteht aus berechneten und verschlüsselten Datenblöcken, die in beliebig kleine …
book
Blockchain kurz & gut
Der Begriff Blockchain beschreibt einen technologischen Durchbruch auf dem Gebiet digitaler Währungen. Das Konzept hinter diesem …
book
Blockchain Grundlagen - Eine Einführung in die elementaren Konzepte in 25 Schritten
Was ist die Blockchain, wofür wird sie benötigt, warum und wie funktioniert sie und warum ist …