Bitcoin & Blockchain - Grundlagen und Programmierung (eBook)
412 Seiten
O'Reilly Verlag
978-3-96010-171-0 (ISBN)
Andreas M. Antonopoulos ist ein bekannter Technologie-Experte, vielfacher Entrepreneur und inzwischen einer der bekanntesten und anerkanntesten Influencer der Bitcoin-Szene. Andreas ist als Referent, Trainer und Autor tätig. Er berät zahlreiche Technologie-Start-ups und spricht weltweit auf Konferenzen und Community-Events.
Andreas M. Antonopoulos ist ein bekannter Technologie-Experte, vielfacher Entrepreneur und inzwischen einer der bekanntesten und anerkanntesten Influencer der Bitcoin-Szene. Andreas ist als Referent, Trainer und Autor tätig. Er berät zahlreiche Technologie-Start-ups und spricht weltweit auf Konferenzen und Community-Events.
Vorwort 15
Glossar 23
Kapitel 1: Einführung 33
Was ist Bitcoin? 33
Geschichte des Bitcoins 36
Bitcoin: Anwendungsfälle, Anwender und deren Geschichten 37
Erste Schritte 38
Wahl einer Bitcoin-Wallet 39
Schnelleinstieg 41
Ihr erster Bitcoin 43
Den aktuellen Bitcoin-Preis ermitteln 44
Bitcoin senden und empfangen 45
Kapitel 2: Wie Bitcoin funktioniert 47
Transaktionen, Blöcke, Mining und die Blockchain 47
Bitcoin-Übersicht 47
Eine Tasse Kaffee kaufen 48
Bitcoin-Transaktionen 50
Inputs und Outputs von Transaktionen 50
Transaktionsketten 51
Wechselgeld 52
Gängige Transaktionsformen 53
Eine Transaktion konstruieren 54
Die richtigen Inputs 55
Die Outputs erzeugen 56
Die Transaktion zum Kassenbuch hinzufügen 57
Bitcoin-Mining 58
Transaktionen in Blöcke einfügen 60
Die Transaktion einlösen 62
Kapitel 3: Bitcoin Core: die Referenzimplementierung 65
Bitcoin-Entwicklungsumgebung 66
Bitcoin Core aus dem Quellcode kompilieren 66
Wahl einer Bitcoin-Core-Release 67
Den Bitcoin-Core-Build konfigurieren 68
Die Bitcoin-Core-Executables erzeugen 70
Einen Bitcoin-Core-Knoten ausführen 71
Bitcoin Core zum ersten Mal ausführen 73
Den Bitcoin-Core-Knoten konfigurieren 73
Bitcoin Core Application Programming Interface (API) 77
Informationen zum Status des Bitcoin-Core-Clients abrufen 78
Transaktionen untersuchen und decodieren 79
Blöcke untersuchen 81
Die Bitcoin Core API nutzen 82
Alternative Clients, Bibliotheken und Toolkits 85
C/C++ 85
JavaScript 86
Java 86
Python 86
Ruby 86
Go 86
Rust 86
C# 87
Objective-C 87
Kapitel 4: Schlüssel und Adressen 89
Einführung 89
Public-Key-Kryptografie und Kryptowährungen 90
Private und öffentliche Schlüssel 91
Private Schlüssel 92
Öffentliche Schlüssel 94
Kryptografie mit elliptischen Kurven 95
Einen öffentlichen Schlüssel generieren 97
Bitcoin-Adressen 99
Base58- und Base58Check-Codierung 101
Schlüsselformate 105
Schlüssel und Adressen in Python implementieren 112
Fortgeschrittene Schlüssel und Adressen 115
Verschlüsselte private Adressen (Encrypted Private Keys, BIP-38) 115
Pay-to-Script-Hash-(P2SH-)Adressen und Multisig-Adressen 116
Vanity-Adressen 118
Paper-Wallets 123
Kapitel 5: Wallets 127
Wallet-Technologie in der Übersicht 127
Nichtdeterministische (zufallsbasierte) Wallets 128
Deterministische (Seed-basierte) Wallets 129
HD-Wallets (BIP-32/BIP-44) 130
Seeds und mnemonische Codes (BIP-39) 131
Die Wallet-Best-Practices 131
Eine Bitcoin-Wallet verwenden 132
Details der Wallet-Technologie 133
Mnemonische Codewörter (BIP-39) 134
Eine HD-Wallet aus dem Seed-Wert erzeugen 140
Einen erweiterten öffentlichen Schlüssel in einem Webshop nutzen 145
Kapitel 6: Transaktionen 151
Einführung 151
Transaktionen im Detail 151
Transaktionen – hinter den Kulissen 152
Transaktions-Outputs und -Inputs 153
Transaktions-Outputs 155
Transaktions-Inputs 157
Transaktionsgebühren (Fees) 160
Gebühren in Transaktionen einfügen 163
Transaktionsskripte und Skriptsprache 164
Turing-Unvollständigkeit 165
Zustandslose Verifikation 166
Konstruktion von Skripten (Lock + Unlock) 166
Pay-to-Public-Key-Hash (P2PKH) 170
Digitale Signaturen (ECDSA) 172
Wie digitale Signaturen funktionieren 173
Die Signatur verifizieren 175
Arten von Signatur-Hashes (SIGHASH) 175
Die Mathematik hinter ECDSA 177
Die Bedeutung der Zufälligkeit für Signaturen 179
Bitcoin-Adressen, Guthaben und andere Abstraktionen 179
Kapitel 7: Transaktionen und Skripting für Fortgeschrittene 183
Einführung 183
Multisignatur 183
Pay-to-Script-Hash (P2SH) 185
P2SH-Adressen 187
Vorteile von P2SH 188
Redeem-Skript und Validierung 188
Data Recording Output (RETURN) 189
Timelocks 191
Transaktions-Locktime (nLocktime) 191
Check Lock Time Verify (CLTV) 192
Relative Timelocks 194
Relative Timelocks mit nSequence 195
Relative Timelocks mit CSV 196
Median-Time-Past 197
Timelock-Schutz gegen Fee-Sniping 198
Skripte mit Ablaufsteuerung (Bedingungsklauseln) 198
Bedingungsklauseln mit VERIFY-Opcodes 199
Die Ablaufsteuerung in Skripten nutzen 200
Komplexes Skriptbeispiel 202
Kapitel 8: Das Bitcoin-Netzwerk 205
Peer-to-Peer-Netzwerkarchitektur 205
Arten und Rollen von Nodes 206
Das erweiterte Bitcoin-Netzwerk 207
Bitcoin-Relay-Netzwerke 210
Netzwerkerkundung 210
Full Nodes 214
»Inventar« austauschen 215
SPV-Nodes (Simplified Payment Verification) 216
Bloomfilter 219
Wie Bloomfilter funktionieren 220
Wie SPV-Nodes Bloomfilter nutzen 224
SPV-Nodes und Privatsphäre 225
Verschlüsselte und authentifizierte Verbindungen 225
Tor-Transport 225
Peer-to-Peer-Authentifizierung und -Verschlüsselung 226
Transaktionspools 227
Kapitel 9: Die Blockchain 229
Einführung 229
Struktur eines Blocks 230
Block-Header 231
Blockkennungen: Block-Header und Blockhöhe 231
Der Genesis-Block 232
Blöcke in der Blockchain verlinken 234
Merkle Trees (Hashbäume) 234
Merkle Trees und Simplified Payment Verification (SPV) 240
Bitcoins Test-Blockchains 241
Testnet – Bitcoins Testspielwiese 241
Segnet – das Segregated-Witness-Testnet 243
Regtest – die lokale Blockchain 243
Test-Blockchains für die Entwicklung nutzen 244
Kapitel 10: Mining und Konsens 247
Einführung 247
Bitcoin-Ökonomie und Währungsgenerierung 249
Dezentralisierter Konsens 251
Unabhängige Verifikation von Transaktionen 252
Mining-Nodes 254
Transaktionen in Blöcken zusammenfassen 254
Die Coinbase-Transaktion 256
Coinbase-Belohnungen und Gebühren 257
Struktur der Coinbase-Transaktion 258
Coinbase-Daten 259
Die Block-Header aufbauen 261
Mining des Blocks 262
Proof-of-Work-Algorithmus 263
Target-Darstellung 269
Retargeting zur Anpassung der Difficulty 270
Den Block erfolgreich schürfen 272
Einen neuen Block validieren 272
Ketten von Blöcken zusammensetzen und auswählen 273
Blockchain-Forks 275
Mining und der Hashing-Wettlauf 282
Die Lösung mit der Extra-Nonce 284
Mining-Pools 285
Konsensangriffe 288
Die Konsensregeln ändern 292
Hard Forks 292
Hard Forks: Software, Netzwerk, Mining und die Chain 293
Divergierende Miner und Difficulty 295
Umstrittene Hard Forks 296
Soft Forks 296
Kritik an Soft Forks 298
Soft-Fork-Signalisierung mittels Blockversion 298
BIP-34-Signalisierung und -Aktivierung 299
BIP-9-Signalisierung und -Aktivierung 300
Entwicklung von Konsenssoftware 302
Kapitel 11: Bitcoins und Sicherheit 305
Sicherheitsgrundsätze 305
Bitcoin-Systeme sicher entwickeln 306
Die Wurzel des Vertrauens 307
Best Practices für den Nutzer 308
Physische Speicherung von Bitcoins 309
Hardware-Wallets 309
Risiken abwägen 310
Risiken verteilen 310
Multisignaturen und Kontrolle 310
Überlebensfähigkeit 310
Fazit 311
Kapitel 12: Blockchain-Anwendungen 313
Einführung 313
Grundbausteine (Primitive) 314
Anwendungen aus Grundbausteinen 316
Colored Coins 316
Colored Coins nutzen 317
Colored Coins ausstellen 318
Colored-Coins-Transaktionen 318
Counterparty 321
Zahlungs- und Zustandskanäle 322
Zustandskanäle – grundlegende Konzepte und Terminologie 323
Einfaches Zahlungskanalbeispiel 325
Vertrauensfreie Kanäle aufbauen 328
Asymmetrisch widerrufliche Commitments 331
Hash Time Lock Contracts (HTLC) 335
Geroutete Zahlungskanäle (Lightning Network) 336
Einfaches Lightning-Network-Beispiel 337
Lightning Network – Transport und Routing 340
Vorteile des Lightning Network 342
Fazit 343
Anhang A: Das Bitcoin-Whitepaper von Satoshi Nakamoto 345
Anhang B: Operatoren, Konstanten und Symbole der Transaktions-Skriptsprache 357
Anhang C: Bitcoin Improvement Proposals 363
Anhang D: Segregated Witness 371
Anhang E: Bitcore 385
Anhang F: pycoin, ku und tx 389
Anhang G: Bitcoin-Explorer-(bx-)Befehle 397
Index 401
Über den Autor 411
Kolophon 412
Erscheint lt. Verlag | 27.4.2018 |
---|---|
Übersetzer | Peter Klicman |
Verlagsort | Heidelberg |
Sprache | deutsch |
Themenwelt | Mathematik / Informatik ► Informatik ► Software Entwicklung |
Schlagworte | Bitcoin • Bitcoin Core • Bitcoin-Mining • Bitcoin-Transaktionen • Bitcore • Blockchain Applikationen • Colored Coins • Kryptowährung • Lightning Network • Payment Channels • Peer-to-Peer-Architektur • Satoshi Nakamoto • Segregated Witness • wallets |
ISBN-10 | 3-96010-171-6 / 3960101716 |
ISBN-13 | 978-3-96010-171-0 / 9783960101710 |
Haben Sie eine Frage zum Produkt? |
Größe: 13,7 MB
DRM: Digitales Wasserzeichen
Dieses eBook enthält ein digitales Wasserzeichen und ist damit für Sie personalisiert. Bei einer missbräuchlichen Weitergabe des eBooks an Dritte ist eine Rückverfolgung an die Quelle möglich.
Dateiformat: PDF (Portable Document Format)
Mit einem festen Seitenlayout eignet sich die PDF besonders für Fachbücher mit Spalten, Tabellen und Abbildungen. Eine PDF kann auf fast allen Geräten angezeigt werden, ist aber für kleine Displays (Smartphone, eReader) nur eingeschränkt geeignet.
Systemvoraussetzungen:
PC/Mac: Mit einem PC oder Mac können Sie dieses eBook lesen. Sie benötigen dafür einen PDF-Viewer - z.B. den Adobe Reader oder Adobe Digital Editions.
eReader: Dieses eBook kann mit (fast) allen eBook-Readern gelesen werden. Mit dem amazon-Kindle ist es aber nicht kompatibel.
Smartphone/Tablet: Egal ob Apple oder Android, dieses eBook können Sie lesen. Sie benötigen dafür einen PDF-Viewer - z.B. die kostenlose Adobe Digital Editions-App.
Zusätzliches Feature: Online Lesen
Dieses eBook können Sie zusätzlich zum Download auch online im Webbrowser lesen.
Buying eBooks from abroad
For tax law reasons we can sell eBooks just within Germany and Switzerland. Regrettably we cannot fulfill eBook-orders from other countries.
aus dem Bereich