Bitcoin_dla_zaawansowanych_Programowanie_z_uzyciem_otwartego_lancucha_blokow_Wydanie_II_bitzaa.pdf

(697 KB) Pobierz
Tytuł oryginału: Mastering Bitcoin: Programming the Open Blockchain
Tłumaczenie: Tomasz Walczak
ISBN: 978-83-283-4035-0
© 2018 Helion SA
Authorized Polish translation of the English edition of Mastering Bitcoin, 2nd Edition
ISBN 9781491954386 © 2017 Andreas M. Antonopoulos LLC.
This translation is published and sold by permission of O' Reilly Media, Inc., which owns or controls all
rights to publish and sell the same.
All rights reserved. No part of this book may be reproduced or transmitted in any form or by any means,
electronic or mechanical, including photocopying, recording or by any information storage retrieval system,
without permission from the Publisher.
Wszelkie prawa zastrzeżone. Nieautoryzowane rozpowszechnianie całości lub fragmentu niniejszej
publikacji w jakiejkolwiek postaci jest zabronione. Wykonywanie kopii metodą kserograficzną,
fotograficzną, a także kopiowanie książki na nośniku filmowym, magnetycznym lub innym powoduje
naruszenie praw autorskich niniejszej publikacji.
Wszystkie znaki występujące w tekście są zastrzeżonymi znakami firmowymi bądź towarowymi ich
właścicieli.
Autor oraz Wydawnictwo HELION dołożyli wszelkich starań, by zawarte w tej książce informacje były
kompletne i rzetelne. Nie biorą jednak żadnej odpowiedzialności ani za ich wykorzystanie, ani za związane
z tym ewentualne naruszenie praw patentowych lub autorskich. Autor oraz Wydawnictwo HELION nie
ponoszą również żadnej odpowiedzialności za ewentualne szkody wynikłe z wykorzystania informacji
zawartych w książce.
Wydawnictwo HELION
ul. Kościuszki 1c, 44-100 GLIWICE
tel. 32 231 22 19, 32 230 98 63
e-mail:
helion@helion.pl
WWW:
http://helion.pl
(księgarnia internetowa, katalog książek)
Drogi Czytelniku!
Jeżeli chcesz ocenić tę książkę, zajrzyj pod adres
http://helion.pl/user/opinie/bitzaa
Możesz tam wpisać swoje uwagi, spostrzeżenia, recenzję.
Pliki z przykładami omawianymi w książce można znaleźć pod adresem:
ftp://ftp.helion.pl/przyklady/bitzaa.zip
Printed in Poland.
Kup książkę
Poleć książkę
Oceń książkę
Księgarnia internetowa
Lubię to! » Nasza społeczność
Spis treści
Przedmowa .............................................................................................................. 13
Krótki słowniczek ...................................................................................................... 21
1. Wprowadzenie .......................................................................................................... 31
Czym jest bitcoin?
Historia bitcoina
Zastosowania bitcoina, jego użytkownicy i ich historie
Pierwsze kroki
Wybór portfela bitcoina
Szybkie wprowadzenie
Pozyskiwanie pierwszego bitcoina
Określanie aktualnej ceny bitcoinów
Przesyłanie i otrzymywanie bitcoinów
31
33
34
35
36
38
39
40
41
2. Jak działają bitcoiny? ................................................................................................ 43
Transakcje, bloki, kopanie i łańcuch bloków
Omówienie bitcoinów
Zakup kubka kawy
Transakcje w bitcoinach
Wejścia i wyjścia w transakcjach
Łańcuchy transakcji
Wydawanie reszty
Typowe formy transakcji
Tworzenie transakcji
Wybór odpowiednich wejść
Generowanie wyjść
Dodawanie transakcji do księgi
Kopanie bitcoinów
Kopanie bloków transakcji
Wydawanie środków z transakcji
43
43
44
46
46
46
48
48
49
50
51
52
53
54
56
5
Kup książkę
Poleć książkę
3. Bitcoin Core — implementacja wzorcowa ................................................................. 59
Środowisko programistyczne związane z bitcoinami
Budowanie implementacji Bitcoin Core z użyciem kodu źródłowego
Wybór wersji implementacji Bitcoin Core
Konfigurowanie budowania implementacji Bitcoin Core
Budowanie plików wykonywalnych implementacji Bitcoin Core
Uruchamianie węzła z implementacją Bitcoin Core
Pierwsze uruchamianie implementacji Bitcoin Core
Konfigurowanie węzła z implementacją Bitcoin Core
Interfejs API oprogramowania Bitcoin Core
Pobieranie informacji na temat stanu klienta Bitcoin Core
Sprawdzanie i dekodowanie transakcji
Badanie bloków
Używanie programowego interfejsu oprogramowania Bitcoin Core
Inne klienty, biblioteki i pakiety narzędzi
C i C++
JavaScript
Java
Python
Ruby
Go
Rust
C#
Objective-C
60
60
61
62
64
65
66
66
70
71
72
73
74
77
77
78
78
78
78
79
79
79
79
4. Klucze i adresy .......................................................................................................... 81
Wprowadzenie
Kryptografia z użyciem klucza publicznego a kryptowaluty
Klucze prywatny i publiczny
Klucze prywatne
Klucze publiczne
Objaśnienie kryptografii z użyciem krzywej eliptycznej
Generowanie klucza publicznego
Adresy bitcoin
Kodowanie Base58 i Base58Check
Formaty kluczy
Obsługa kluczy i adresów w Pythonie
Zaawansowane postacie kluczy i adresów
Szyfrowane klucze prywatne (BIP-38)
Adresy P2SH i adresy wielopodpisowe
Adresy vanity
Portfele papierowe
6
Spis treści
Poleć książkę
81
82
83
83
85
86
88
90
91
95
101
104
104
105
106
111
Kup książkę
5. Portfele ...................................................................................................................115
Przegląd technologii obsługi portfeli
Portfele niedeterministyczne (losowe)
Portfele deterministyczne (z ziarnem)
Portfele HD (oparte na dokumentach BIP-32 i BIP-44)
Ziarna i kody mnemoniczne (BIP-39)
Dobre praktyki związane z portfelami
Używanie portfela bitcoinów
Szczegółowe omówienie technologii używanych w portfelach
Mnemoniczne słowa kodowe (BIP-39)
Tworzenie portfela HD na podstawie ziarna
Używanie rozszerzonego klucza publicznego w sklepie internetowym
115
116
117
117
118
119
119
121
121
126
132
6. Transakcje ...............................................................................................................137
Wprowadzenie
Szczegółowe omówienie transakcji
Transakcje — operacje wykonywane na zapleczu
Wyjścia i wejścia transakcji
Wyjścia transakcji
Wejścia transakcji
Opłaty transakcyjne
Dodawanie opłat do transakcji
Skrypty transakcji i język Script
Niekompletność w sensie Turinga
Weryfikacja bezstanowa
Tworzenie skryptów (blokowanie i odblokowywanie)
Skrypt P2PKH
Podpisy cyfrowe (ECDSA)
Jak działają podpisy cyfrowe?
Sprawdzanie poprawności podpisu
Typy skrótów podpisów (SIGHASH)
Obliczenia w algorytmie ECDSA
Znaczenie losowości w podpisach
Adresy bitcoin, stan konta i inne abstrakcyjne pojęcia
137
137
137
139
140
142
145
148
149
150
150
150
154
155
157
158
158
160
162
162
7. Zaawansowane transakcje i skrypty ..........................................................................165
Wprowadzenie
Skrypty wielopodpisowe
Transakcje P2SH
Adresy P2SH
Zalety stosowania P2SH
Skrypt wypłaty i sprawdzanie poprawności
165
165
167
169
170
170
Spis treści
Kup książkę
7
Poleć książkę
Zgłoś jeśli naruszono regulamin