Bitcoin. Wszystko, co musisz wiedzie - Helion
Autor: Andreas Antonopoulos, David Harding
Tytuł oryginału: Mastering Bitcoin: Programming the Open Blockchain, 3rd Edition
Tłumaczenie: Tomasz Walczak, Grzegorz Werner
ISBN: 978-83-289-1564-0
stron: 352, Format: 165x235, okładka: mi
Data wydania: 2024-10-15
Księgarnia: Helion
Cena książki: 59,40 zł (poprzednio: 99,00 zł)
Oszczędzasz: 40% (-39,60 zł)
Tytuł oryginału: Mastering Bitcoin: Programming the Open Blockchain, 3rd Edition
Tłumaczenie: Tomasz Walczak, Grzegorz Werner
ISBN: 978-83-289-1564-0
stron: 352, Format: 165x235, okładka: mi
Data wydania: 2024-10-15
Księgarnia: Helion
Cena książki: 59,40 zł (poprzednio: 99,00 zł)
Oszczędzasz: 40% (-39,60 zł)
Tagi: Bitcoin
Osoby które kupowały "Bitcoin. Wszystko, co musisz wiedzie", wybierały także:
- Jak nad 67,00 zł, (20,10 zł -70%)
- 69,00 zł, (20,70 zł -70%)
- Dow 65,31 zł, (20,90 zł -68%)
- Blockchain i kryptowaluty. Kurs video. Zdecentralizowane finanse od podstaw 115,69 zł, (41,65 zł -64%)
- Blockchain. Kurs video. Cyfrowa ewolucja w świecie finansów 119,00 zł, (53,55 zł -55%)
Spis treści
Bitcoin. Wszystko, co musisz wiedzieć o programowaniu z użyciem otwartego łańcucha bloków. Wydanie III -- spis treści
Przedmowa
1. Wprowadzenie
- Historia bitcoina
- Pierwsze kroki
- Wybór portfela bitcoina
- Szybkie wprowadzenie
- Kody odzyskiwania
- Adresy bitcoin
- Otrzymywanie bitcoinów
- Pozyskiwanie pierwszego bitcoina
- Określanie aktualnej ceny bitcoinów
- Przesyłanie i otrzymywanie bitcoinów
- Potwierdzenia
2. Jak działają bitcoiny?
- Omówienie bitcoinów
- Zakup w sklepie internetowym
- Transakcje w bitcoinach
- Wejścia i wyjścia w transakcjach
- Łańcuchy transakcji
- Wydawanie reszty
- Wybór monet
- Typowe formy transakcji
- Tworzenie transakcji
- Wybór odpowiednich wejść
- Generowanie wyjść
- Dodawanie transakcji do łańcucha bloków
- Kopanie bitcoinów
- Wydawanie środków z transakcji
3. Bitcoin Core - implementacja wzorcowa
- Od bitcoina do Bitcoin Core
- Ś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
- Konfigurowanie węzła z implementacją Bitcoin Core
- Interfejs API oprogramowania Bitcoin Core
- Pobieranie informacji na temat stanu 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
- Go
- Rust
- Scala
- C#
4. Klucze i adresy
- Kryptografia z użyciem klucza publicznego
- Klucze prywatne
- Objaśnienie kryptografii z użyciem krzywej eliptycznej
- Klucze publiczne
- Skrypty wyjściowe i wejściowe
- Adresy IP: pierwotne adresy bitcoin (P2PK)
- Tradycyjne adresy na użytek P2PKH
- Kodowanie Base58Check
- Skompresowane klucze publiczne
- Tradycyjne adresy P2SH
- Adresy Bech32
- Problemy z adresami bech32
- Bech32m
- Formaty kluczy prywatnych
- Skompresowane klucze prywatne
- Zaawansowane postacie kluczy i adresów
- Adresy vanity
- Portfele papierowe
5. Odzyskiwanie portfela
- Niezależne generowanie kluczy
- Deterministyczne generowanie kluczy
- Generowanie publicznego klucza podrzędnego
- Hierarchiczne detereministyczne (HD) generowanie kluczy (BIP32)
- Ziarna i kody odzyskiwania
- Kopie zapasowe danych innych niż klucze
- Kopie zapasowe ścieżek generowania kluczy
- Technologie obsługi portfeli
- Kody odzyskiwania BIP39
- Tworzenie portfela HD na podstawie ziarna
- Używanie rozszerzonego klucza publicznego w sklepie internetowym
6. Transakcje
- Zserializowana transakcja bitcoina
- Wersja
- Rozszerzony znacznik i flaga
- Wejścia
- Długość listy wejść transakcji
- Punkt wyjścia
- Skrypt wejściowy
- Sekwencja
- Wyjścia
- Liczba wyjść
- Kwota
- Skrypty wyjściowe
- Struktura poświadczeń
- Okrężne zależności
- Plastyczność transakcji powodowana przez strony trzecie
- Plastyczność transakcji powodowana przez stronę drugą
- Segregated Witness
- Serializacja struktury poświadczenia
- Czas blokady
- Transakcje coinbase
- Waga i jednostka vbyte
- Serializacja tradycyjna
7. Autoryzacja i uwierzytelnianie
- Skrypty transakcji i język Script
- Niekompletność w sensie Turinga
- Weryfikacja bezstanowa
- Tworzenie skryptów
- Skrypt P2PKH
- Wielopodpisy skryptowe
- Transakcje P2SH
- Adresy P2SH
- Zalety stosowania P2SH
- Skrypt wypłaty i sprawdzanie poprawności
- Wyjścia rejestrujące dane (z operatorem OP_RETURN)
- Ograniczenia czasu blokady transakcji
- Weryfikacja blokady czasowej (OP_CLTV)
- Względne blokady czasowe
- Względne blokady czasowe z operatorem OP_CLV
- Skrypty z przepływem sterowania (klauzule warunkowe)
- Klauzule warunkowe z kodami operacji VERIFY
- Przepływ sterowania w skryptach
- Przykładowy złożony skrypt
- Przykładowe wyjścia i transakcje Segregated Witness
- Przejście na Segregated Witness
- MAST (Merklized Alternative Script Tree)
- Transakcje P2C (pay to contract)
- Wielopodpisy bezskryptowe i podpisy progowe
- Taproot
- Tapscript
8. Podpisy cyfrowe
- Jak działają podpisy cyfrowe?
- Tworzenie podpisu cyfrowego
- Sprawdzanie poprawności podpisu
- Typy skrótów podpisów (SIGHASH)
- Podpisy Schnorra
- Serializowanie podpisów Schnorra
- Wielopodpisy bezskryptowe oparte na algorytmie Schnorra
- Bezskryptowe podpisy progowe oparte na algorytmie Schnorra
- Podpisy ECDSA
- Algorytm ECDSA
- Serializowanie podpisów ECDSA (do formatu DER)
- Znaczenie losowości w podpisach
- Nowy algorytm podpisywania w Segregated Witness
9. Opłaty transakcyjne
- Kto uiszcza opłaty transakcyjne?
- Opłaty i stawki opłat
- Szacowanie odpowiednich stawek opłat
- Podwyższanie opłat metodą RBF (Replace By Fee)
- Podwyższanie opłat metodą CPFP (Child Pays for Parent)
- Sztafeta pakietów
- Przygniatanie transakcji
- Wykrawanie CPFP i wyjścia kotwiczne
- Dodawanie opłat do transakcji
- Blokada czasowa jako obrona przed celowaniem w opłaty
10. Sieć bitcoina
- Typy i role węzłów
- Sieć
- Przekazywanie bloków kompaktowych
- Prywatne sieci przekazywania bloków
- Wykrywanie sieci
- Kompletne węzły
- Przesyłanie "zawartości magazynu"
- Klienty lekkie
- Filtry Blooma
- Jak działają filtry Blooma?
- W jaki sposób klienty lekkie używają filtrów Blooma?
- Kompaktowe filtry bloków
- Kodowane zbiory Golomba-Rice'a (GCS)
- Jakie dane dołącza się do filtra bloków?
- Pobieranie filtrów bloków od wielu węzłów
- Ograniczanie zużycia pasma przez kodowanie stratne
- Używanie kompaktowych filtrów bloków
- Klienty lekkie a prywatność
- Połączenia szyfrowane i uwierzytelniane
- Pule pamięciowe i pule transakcji osieroconych
11. Łańcuch bloków
- Struktura bloku
- Nagłówek bloku
- Identyfikatory bloku - skrót nagłówka bloku i wysokość bloku
- Blok początkowy
- Łączenie bloków w łańcuchu
- Drzewa skrótów
- Drzewa skrótów i klienty lekkie
- Testowe łańcuchy bloków bitcoina
- Testnet - poligon doświadczalny bitcoina
- Signet - testnet z dowodem autorytetu
- Regtest - lokalny łańcuch bloków
- Używanie testowych łańcuchów bloków w trakcie prac programistycznych
12. Kopanie i konsensus
- Ekonomia i podaż pieniądza w systemie bitcoina
- Zdecentralizowane osiąganie konsensusu
- Niezależne sprawdzanie poprawności transakcji
- Węzły służące do kopania
- Transakcja coinbase
- Nagrody i opłaty w transakcji coinbase
- Struktura transakcji coinbase
- Dane coinbase
- Tworzenie nagłówka bloku
- Wykopywanie bloku
- Algorytm Proof-of-Work
- Reprezentacja celu
- Dostosowywanie trudności przez zmianę celu
- Mediana przeszłego czasu (MTP)
- Udane wykopanie bloku
- Sprawdzanie poprawności nowego bloku
- Łączenie bloków i wybieranie łańcuchów
- Kopanie i loteria haszowania
- Rozwiązanie z użyciem dodatkowej wartości nonce
- Kopalnie
- Ataki związane z tempem haszowania
- Zmienianie reguł osiągania konsensusu
- Twarde rozgałęzienia
- Miękkie rozgałęzienia
- Krytyka miękkich rozgałęzień
- Rozwój oprogramowania zgodnie z konsensusem
13. Bezpieczeństwo bitcoina
- Zasady bezpieczeństwa
- Bezpieczny rozwój systemów bitcoina
- Źródło zaufania
- Dobre praktyki z obszaru zabezpieczeń dla użytkowników
- Fizyczne przechowywanie bitcoinów
- Urządzenia podpisujące
- Gwarantowanie dostępu
- Dywersyfikacja ryzyka
- Wielopodpis i zarządzanie
- Zachowanie dostępu
14. Rozwiązania warstwy drugiej
- Cegiełki (podstawowe mechanizmy)
- Rozwiązania oparte na cegiełkach
- Colored coins
- Pieczęcie jednokrotnego użytku
- Płatności na kontrakt (P2C)
- Sprawdzanie poprawności po stronie klienta
- RGB
- Taproot Assets
- Kanały płatności i kanały stanowe
- Kanały stanowe - podstawowe zagadnienia i terminologia
- Prosty przykładowy kanał płatności
- Tworzenie kanałów niewymagających zaufania
- Asymetryczne odwoływalne zobowiązania
- Kontrakty HTLC
- Kanały płatności z trasowaniem (Lightning Network)
- Prosty przykład działania sieci Lightning Network
- Przesył i trasowanie w sieci Lightning Network
- Korzyści ze stosowania sieci Lightning Network
A. Artykuł Satoshiego Nakamoto na temat bitcoina
B. Errata do artykułu na temat bitcoina
C. Dokumenty BIP