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. Redaktor prowadzący: Barbara Gancarz-Wójcicka Projekt okładki: Jan Paluch Wydawnictwo HELION ul. Kościuszki 1c, 44-100 GLIWICE tel. 32 231 22 19, 32 230 98 63 e-mail: onepress@onepress.pl WWW: http://onepress.pl (księgarnia internetowa, katalog książek) Drogi Czytelniku! Jeżeli chcesz ocenić tę książkę, zajrzyj pod adres http://onepress.pl/user/opinie?bitcoi Możesz tam wpisać swoje uwagi, spostrzeżenia, recenzję. ISBN: 978-83-246-8099-3 Copyright Helion 2014 Printed in Poland. Oceń książkę Księgarnia internetowa Lubię to!» Nasza społeczność
Spis tre ci Podzi kowania... 5 Wst p... 7 Rozdzia 1. Wprowadzenie... 11 Czym jest bitcoin?... 21 Prze omowy rok 2013?... 25 Jak dzi funkcjonuje bitcoin?... 29 Podsumowanie... 30 Rozdzia 2. Zasada funkcjonowania bitcoina... 33 Jak funkcjonuje bitcoin?... 33 Kryptografia... 33 Architektura peer-to-peer... 38 Wydobywanie, transakcje i bloki... 39 Prowizje transakcyjne... 45 Podsumowanie... 46 Rozdzia 3. Korzystanie z bitcoina... 49 Portfele Bitcoin... 49 Transakcja Bitcoin... 54 Pozyskiwanie bitcoinów... 62 Fizyczny bitcoin... 76 Polskie prawo a bitcoin... 77 Podsumowanie... 78 3
B ITCOIN Rozdzia 4. Bezpiecze stwo... 81 Anonimowo... 81 Double-spending... 84 Atak 50%+... 86 Ciemna strona bitcoina... 87 Podsumowanie... 94 Rozdzia 5. Pierwsze kroki... 97 Jak rozpocz?... 97 S owniczek... 101 4
Rozdzia 2. Zasada funkcjonowania bitcoina Jak funkcjonuje bitcoin? Aby zrozumie ide bitcoina, trzeba pozna chocia cz teoretycznych podstaw jego funkcjonowania. W tym rozdziale poruszymy sporo kwestii technicznych, aby przybli y w jak najprostszy sposób u ywane w dalszej cz ci ksi ki poj cia bloku, wydobywania czy transakcji. Poniewa sporo operacji w sieci Bitcoin opiera si na kryptografii, nie sposób równie omówi zasady dzia ania wirtualnej waluty bez przybli enia podstawowych poj z tej dziedziny. Kryptografia S owo kryptografia odmieniane jest przez wszystkie przypadki w rozmaitych definicjach bitcoina. Nic dziwnego, w ko cu to w a- nie algorytmy szyfruj ce i dzia ania matematyczne stanowi podstaw dzia ania wirtualnej waluty. Mimo e wi kszo informacji, jak chocia by historia transakcji, jest jawna, szyfrowanie odgrywa kluczow rol w zabezpieczeniach mechanizmów bitcoina. Kryptowaluta, jak nieraz zwany jest bitcoin, korzysta przede wszystkim z kryptograficznych funkcji skrótu oraz kryptografii klucza publicznego. 33
B ITCOIN Funkcje skrótu (ang. hash function) Funkcja skrótu, zwana tak e funkcj haszuj c, jest algorytmem komputerowym, uruchamianym na pewnych danych wej ciowych. Wynikiem dzia ania tej funkcji jest skrót (hash) o sta ej d ugo ci. Dla przyk adu znana i popularna w internecie funkcja MD5 generuje skrót o sta ej, 32-znakowej d ugo ci, sk adaj cy si ze znaków 0 9 oraz a f. Spróbujmy wywo a tak funkcj dla przyk adowych danych wej ciowych, czyli ci gu Bitcoin2013. Mo emy tego dokona mi dzy innymi w licznych generatorach online lub w systemie operacyjnym Linux, u ywaj c komendy md5sum. W obu przypadkach otrzymamy taki sam skrót, widoczny na rysunku 2.1. Rysunek 2.1. Jeden z popularnych w internecie generatorów hashy Obliczenie jednego hashu MD5 jest bardzo szybkie. W te cie przeprowadzonym na przyk adowej maszynie klasy domowego komputera PC 1000 hashy MD5 obliczanych by o w przeci gu 1,246 sekundy, co daje przybli on pr dko 803 hashy na sekund. Funkcja haszuj ca ma zawsze taki sam wynik dla tych samych danych wej ciowych i cz sto mo emy spotka si z ni przy pobieraniu plików z internetu. Obok nazwy pliku znajduje si zapisany hash. Na pobranym pliku mo emy wywo a funkcj haszuj c na lokalnym dysku i sprawdzi, czy zwróci a ona taki hash, jaki widnieje na stronie internetowej. Dzi ki temu zyskujemy pewno, e plik zosta pobrany w ca o ci i nie zosta po drodze zmodyfikowany (rysunek 2.2). 34
Zasada funkcjonowania bitcoina Rysunek 2.2. Strona pobra klienta Bitcoin-qt na sourceforge.net. Obok pliku wykonywalnego EXE widniej hashe SHA1 oraz MD5, które mo na wykorzysta do weryfikacji pliku po pobraniu Funkcja skrótu jest jednostronna, poniewa na podstawie hashu nie jeste my w stanie odtworzy danych wej ciowych, które pos u y y do jego wygenerowania. Poza nielicznymi przypadkami, które zostan omówione na ko cu tej sekcji, odtworzenie ród owych danych jest cz sto niemo liwe w zadowalaj cym czasie. Dobrze znane funkcje skrótu to wspomniana ju MD5 czy SHA-256, które generuj odpowiednio 32- i 64-znakowy skrót, u ywaj c znaków heksadecymalnych (cyfry 0 9 oraz litery a f). W projekcie Bitcoin wykorzystywana jest ta druga funkcja, ze wzgl du na to, e funkcja MD5 jest ju raczej przestarza a i nie mo e zapewni odpowiedniego poziomu bezpiecze stwa. Dla wymienionych wy ej funkcji skrótu bardzo ma a zmiana w ród owym zbiorze danych spowoduje, e wynikowy hash b dzie zupe nie inny ni oryginalny. Taki mechanizm pozwala upewni si, e obrabiany zbiór danych, którym mo e by tekst, plik lub 35
B ITCOIN te blok transakcji bitcoina, nie zosta zmieniony przez nieuprawnionego u ytkownika. Przyjrzyjmy si, jak wygl da to na bardzo prostym przyk adzie. Obliczymy skrót SHA-256 dla wyra e Ala ma kota oraz Ola ma kota. Te dwa zdania ró ni si tylko jednym znakiem w pierwszym z nich wyst puje du a litera A, w drugim du a litera O. Skrót mo na obliczy z wykorzystaniem polecenia linuksowego sha256sum, jak równie innych programów b d generatorów online. Oto obliczony skrót SHA-256 z dwóch ró nych wyra e : Ala ma kota 124bfb6284d82f3b1105f88e3e7a0ee02d0e525193413c05b75041917022cd6e Ola ma kota 36ad917e863b5321bff77734fd52888ccf03c503bd51f649cb1ed4c28a19e5ef Oba hashe maj kompletnie inn warto i w aden sposób nie zdradzaj, e pochodz z tak bardzo zbli onych do siebie wej ciowych a cuchów znaków. W sieci Bitcoin funkcje skrótu u ywane s mi dzy innymi przy obliczaniu adresu Bitcoin, który wynika bezpo rednio z powi zanego z nim klucza prywatnego. Dzi ki nieodwracalnemu dzia aniu funkcji haszuj cych udost pnienie swojego adresu Bitcoin publicznie nie poci ga za sob ryzyka poznania zwi zanego z nim klucza prywatnego. Z drugiej strony dzi ki atwemu obliczaniu hashu z zadanego a cucha wej ciowego u ytkownik posiadaj cy klucz prywatny jest w stanie bardzo szybko dowie, e dany adres Bitcoin nale y w a nie do niego. Funkcje haszuj ce u ywane s tak e do obliczania sum kontrolnych bloków transakcji oraz w celu zapewnienia integralno ci a cucha bloków, co b dzie opisane w dalszej cz ci ksi ki. 36