Cyfroteka.pl

klikaj i czytaj online

Cyfro
Czytomierz
00343 007077 10216713 na godz. na dobę w sumie
Sekrety Bitcoina i innych kryptowalut. Jak zmienić wirtualne pieniądze w realne zyski - książka
Sekrety Bitcoina i innych kryptowalut. Jak zmienić wirtualne pieniądze w realne zyski - książka
Autor: Liczba stron: 192
Wydawca: Onepress Język publikacji: polski
ISBN: 978-83-283-0364-5 Data wydania:
Lektor:
Kategoria: ebooki >> poradniki >> controlling
Porównaj ceny (książka, ebook (-36%), audiobook).
Przeczytaj krótki wywiad z Autorem książki »  
 

Bitcoin — waluta przyszłości!

Wirtualna waluta Bitcoin, choć nadal jest mało popularnym międzynarodowym środkiem płatniczym, budzi spore emocje. Jej możliwości są naprawdę oszałamiające! Nie podlega kontroli żadnego rządu ani instytucji finansowej, można ją zdobyć i pomnażać niezależnie od miejsca zamieszkania i wymieniać z innymi entuzjastami, a nawet zamienić na twardą walutę i wypłacić w bankomacie!

Ta książka ma za zadanie ułatwić Ci zorientowanie się w świecie Bitcoina i innych kryptowalut. Autor nie ukrywa, że jego osobiste doświadczenia z tą walutą nie zawsze były pozytywne. Jest jednak pewien, że Bitcoin to klucz do rewolucji na polu transakcji finansowych. Dowiedz się więc, czym dokładnie jest Bitcoin, na jakich podstawach się opiera i jak się nim posługiwać. Zrozum, dlaczego ma zagorzałych zwolenników i równie zaciętych przeciwników, co stanowi o jego sile i co go blokuje.

 Poznaj walutę przyszłości i przygotuj się na wielką zmianę!

Znajdź podobne książki Ostatnio czytane w tej kategorii

Darmowy fragment publikacji:

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: Magdalena Dragon-Philipczyk Projekt okładki: Damian Rebuś Materiały graficzne na okładce zostały wykorzystane za zgodą Shutterstock. 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/sekbit Możesz tam wpisać swoje uwagi, spostrzeżenia, recenzję. ISBN: 978-83-283-0364-5 Copyright © Helion 2015 Printed in Poland. • Kup książkę • Poleć książkę • Oceń książkę • Księgarnia internetowa • Lubię to! » Nasza społeczność Spis treści Od autora Wprowadzenie Jak dzia(cid:239)a protokó(cid:239) Bitcoin? Jak zacz(cid:200)(cid:202)? Akceptowanie bitcoinów Mining — wydobywanie kryptowalut Bezpiecze(cid:241)stwo Aspekt prawny bitcoina Gdzie mog(cid:218) u(cid:285)ywa(cid:202) bitcoinów? Polskie inicjatywy Nowe mo(cid:285)liwo(cid:258)ci — inne kryptowaluty Podsumowanie Spis najwa(cid:285)niejszych serwisów S(cid:239)ownik poj(cid:218)(cid:202) Manifest Satoshiego Nakamoto Bibliografia 7 11 25 41 107 115 127 133 139 143 147 157 161 165 171 191 Kup książkęPoleć książkę 6 Sekrety Bitcoina i innych kryptowalut Kup książkęPoleć książkę 2 Jak działa protokół Bitcoin? „Moim zdaniem to niesamowite, (cid:285)e w (cid:258)wiecie bitcoina algorytm przejmuje funkcje typowe dla [rz(cid:200)du]”. — Al Gore, by(cid:239)y wiceprezydent Stanów Zjednoczonych, laureat Pokojowej Nagrody Nobla Rozdzia(cid:239) ten jest po(cid:258)wi(cid:218)cony problematyce typowo technicznej i opi- suje zasady dzia(cid:239)ania protoko(cid:239)u Bitcoin. Zapoznanie si(cid:218) z tymi za- sadami nie jest konieczne do zrozumienia dalszej cz(cid:218)(cid:258)ci ksi(cid:200)(cid:285)ki, ale z pewno(cid:258)ci(cid:200) mo(cid:285)e by(cid:202) przydatne. Znajdziesz tu odpowiedzi na wiele pyta(cid:241) i dowiesz si(cid:218), czym jest mining, czyli wydobywanie bitcoinów. Bitcoin jest protoko(cid:239)em i jako elektroniczny system p(cid:239)atno(cid:258)ci sk(cid:239)ada si(cid:218) z trzech elementów: (cid:132) kryptografii klucza publicznego, (cid:132) sieci peer-to-peer, (cid:132) dowodu pracy (ang. proof of work). Kup książkęPoleć książkę 26 Sekrety Bitcoina i innych kryptowalut Protokó(cid:239) to zbiór zasad umo(cid:285)liwiaj(cid:200)cych urz(cid:200)dzeniom nawi(cid:200)- zanie (cid:239)(cid:200)czno(cid:258)ci w celu wymiany informacji. Przyk(cid:239)adem takiego protoko(cid:239)u mo(cid:285)e by(cid:202) np. TCP/IP, który zosta(cid:239) opracowany, aby mo(cid:285)- liwe by(cid:239)o tworzenie sieci komputerowych. Dlaczego protokó(cid:239) Bitcoin korzysta z kryptografii? Aby w (cid:258)wie- cie realnym zabezpieczy(cid:202) gotówk(cid:218), papiery warto(cid:258)ciowe itp., wyko- rzystujemy sejfy, zamki, alarmy czy sk(cid:239)adamy depozyty w banku. W (cid:258)wiecie bitów w celu zabezpieczenia wa(cid:285)nych danych stosuje- my kryptografi(cid:218). Kryptografia zapewnia bezpiecze(cid:241)stwo mi(cid:218)dzy innymi w han- dlu elektronicznym, np. podczas dokonywania p(cid:239)atno(cid:258)ci kartami bankowymi. Ma to na celu uniemo(cid:285)liwienie kradzie(cid:285)y lub podszy- wania si(cid:218) pod kogo(cid:258) innego. W jaki sposób informacje przesy(cid:239)ane za po(cid:258)rednictwem pro- toko(cid:239)u Bitcoin mog(cid:200) sta(cid:202) si(cid:218) pieni(cid:218)dzmi? Przyjmijmy, (cid:285)e pewna osoba, np. Pawe(cid:239), ma walut(cid:218) cyfrow(cid:200), któr(cid:200) chce wyda(cid:202). W (cid:258)wiecie cyfrowym, gdzie mo(cid:285)emy kopiowa(cid:202) pliki, posiadanie waluty cyfro- wej stwarza problem, który polega na tym, (cid:285)e wysy(cid:239)aj(cid:200)c do kogo(cid:258) nasze bitcoiny, mo(cid:285)emy zachowa(cid:202) ich kopi(cid:218). Jak zapobiec sytuacji, w której Pawe(cid:239) móg(cid:239)by wysy(cid:239)a(cid:202) wielo- krotnie te same bitcoiny innym u(cid:285)ytkownikom, zapewniaj(cid:200)c sobie niewyczerpane (cid:283)ród(cid:239)o pieni(cid:218)dzy? W jaki sposób mo(cid:285)emy sprawi(cid:202), aby nie mo(cid:285)na by(cid:239)o podrobi(cid:202) bitcoinów Paw(cid:239)a i u(cid:285)ywa(cid:202) ich jako nale(cid:285)(cid:200)cych do innej osoby? To tylko dwa z wielu problemów, z którymi musi poradzi(cid:202) sobie protokó(cid:239) Bitcoin, aby mo(cid:285)na by(cid:239)o u(cid:285)ywa(cid:202) informacji jako pieni(cid:218)dzy. Aby zapewni(cid:202) ochron(cid:218) takich pieni(cid:218)dzy przed podrabianiem i kradzie(cid:285)(cid:200), protokó(cid:239) Bitcoin korzysta z kryptografii klucza pu- blicznego. Kup książkęPoleć książkę Jak działa protokół Bitcoin? 27 2.1. Kryptografia klucza publicznego Kryptografia klucza publicznego oznacza dwa ró(cid:285)ne klucze: pry- watny oraz publiczny. Idea kryptografii z kluczem publicznym mo(cid:285)e by(cid:202) obrazowo przedstawiona w nast(cid:218)puj(cid:200)cy sposób. Wyobra(cid:283)my sobie, (cid:285)e jeste- (cid:258)my w(cid:239)a(cid:258)cicielem samozatrzaskuj(cid:200)cej si(cid:218) k(cid:239)ódki i tylko my posia- damy do niej klucz. Tak(cid:200) odblokowan(cid:200) k(cid:239)ódk(cid:218) mo(cid:285)emy wys(cid:239)a(cid:202) naszemu znajomemu (odblokowan(cid:200) k(cid:239)ódk(cid:200) jest klucz publiczny, który w protokole Bitcoin jest adresem naszego portfela). Nasz znajomy mo(cid:285)e przy jej u(cid:285)yciu zabezpieczy(cid:202) przesy(cid:239)k(cid:218) (wys(cid:239)a(cid:202) bitcoiny). Aby to zrobi(cid:202), nie potrzebuje klucza do k(cid:239)ódki, gdy(cid:285) wystarczy j(cid:200) zatrzasn(cid:200)(cid:202). Tak zabezpieczon(cid:200) przesy(cid:239)k(cid:218) mo(cid:285)e nada(cid:202) do nas. Poniewa(cid:285) posiadamy klucz do k(cid:239)ódki (czyli klucz prywatny), jeste(cid:258)my w sta- nie otworzy(cid:202) j(cid:200) i dosta(cid:202) si(cid:218) do zabezpieczonej zawarto(cid:258)ci. Oczywi- (cid:258)cie w praktyce nie wykorzystuje si(cid:218) k(cid:239)ódek, tylko odpowiednie for- mu(cid:239)y matematyczne. Ca(cid:239)a ta procedura pozwala w skuteczny sposób uwierzytelnia(cid:202) transakcje pomi(cid:218)dzy w(cid:218)z(cid:239)ami w sieci Bitcoin. Kluczem publicznym w systemie Bitcoin jest wspomniany nasz adres portfela bitcoinowego. Taki adres mo(cid:285)emy wygenerowa(cid:202) mi(cid:218)- dzy innymi w programie zainstalowanym na naszym komputerze, np. w Bitcoin Wallet (portfel Bitcoin). Adres Bitcoin sk(cid:239)ada si(cid:218) z ci(cid:200)- gu 34 znaków cyfr i liter i mo(cid:285)e wygl(cid:200)da(cid:202) tak: 1JgaU5bHHueeTa7jrXBj2aPLGKgbgx6WFy Dany adres naszego portfela jest odpowiednikiem numeru konta bankowego. Je(cid:258)li chcemy, aby przes(cid:239)ano do nas bitcoiny, po- dajemy swój adres. W praktyce wysy(cid:239)anie bitcoinów jest bardzo proste — wystarczy skopiowa(cid:202) adres osoby, której chcemy wys(cid:239)a(cid:202) bitcoiny, wpisa(cid:202) sum(cid:218), jak(cid:200) chcemy przes(cid:239)a(cid:202), i klikn(cid:200)(cid:202) „wy(cid:258)lij”. Kup książkęPoleć książkę 28 Sekrety Bitcoina i innych kryptowalut Aby zrozumie(cid:202), co dzieje si(cid:218) w protokole Bitcoin podczas wy- sy(cid:239)ania bitcoinów i jak dzia(cid:239)a kryptografia klucza publicznego, pos(cid:239)u(cid:285)(cid:218) si(cid:218) przyk(cid:239)adami. Pawe(cid:239) chce przes(cid:239)a(cid:202) bitcoiny Markowi, wi(cid:218)c pisze do niego wiadomo(cid:258)(cid:202) (podczas wysy(cid:239)ania bitcoinów nie jest konieczne pisanie wiadomo(cid:258)ci — przedstawiony przyk(cid:239)ad ma na celu zobrazowanie dzia(cid:239)ania protoko(cid:239)u): „Ja, Pawe(cid:239), wysy(cid:239)am Markowi jednego bitcoina”. Nast(cid:218)pnie podpisuje wiadomo(cid:258)(cid:202) pod- pisem cyfrowym, tj. szyfruje j(cid:200) prywatnym kluczem kryptograficz- nym, i obwieszcza ci(cid:200)g bitów ca(cid:239)emu (cid:258)wiatu. Marek lub dowolny inny u(cid:285)ytkownik mo(cid:285)e u(cid:285)y(cid:202) klucza pu- blicznego Paw(cid:239)a, aby sprawdzi(cid:202), czy osob(cid:200), która napisa(cid:239)a wiado- mo(cid:258)(cid:202) „Ja, Pawe(cid:239), wysy(cid:239)am Markowi jednego bitcoina”, rzeczywi(cid:258)cie by(cid:239) Pawe(cid:239). Nikt inny nie móg(cid:239) wygenerowa(cid:202) takiego ci(cid:200)gu bitów, wi(cid:218)c Pawe(cid:239) nie móg(cid:239) pó(cid:283)niej zaprzeczy(cid:202), mówi(cid:200)c: „Nie, ja nie wy- s(cid:239)a(cid:239)em Markowi jednego bitcoina”. Protokó(cid:239) z wykorzystaniem kryptografii pozwala zatem na ustalenie, i(cid:285) Pawe(cid:239) naprawd(cid:218) o(cid:258)wiadczy(cid:239), (cid:285)e wys(cid:239)a(cid:239) Markowi jed- nego bitcoina. Po wyeliminowaniu problemu z duplikacj(cid:200) i kradzie(cid:285)(cid:200) poja- wia si(cid:218) kolejny k(cid:239)opot. Pawe(cid:239) mo(cid:285)e wysy(cid:239)a(cid:202) Markowi wielokrotnie ten sam ci(cid:200)g bi- tów (monet). Przyjmijmy, (cid:285)e Marek odbiera 10 kopii podpisanych wiadomo(cid:258)ci „Ja, Pawe(cid:239), wysy(cid:239)am Markowi jednego bitcoina”. Aby unikn(cid:200)(cid:202) takiej sytuacji, protokó(cid:239) Bitcoin potrzebuje ety- kiety lub numeru seryjnego ka(cid:285)dej transakcji. Pawe(cid:239) pisa(cid:239)by wtedy: „Ja, Pawe(cid:239), wysy(cid:239)am Markowi jednego bitcoina z numerem seryj- nym 1234567”, „Ja, Pawe(cid:239), wysy(cid:239)am Markowi jednego bitcoina z nu- merem seryjnym 7868765” itd. Dzi(cid:218)ki temu Marek wiedzia(cid:239)by, (cid:285)e za ka(cid:285)dym razem zosta(cid:239) wys(cid:239)any inny bitcoin. Aby taki sposób dzia(cid:239)a(cid:239), potrzebujemy zaufanego (cid:283)ród(cid:239)a wy- dawania numerów seryjnych. Zobaczmy, jak mog(cid:239)oby to wygl(cid:200)da(cid:202), gdyby zaufanym (cid:283)ród(cid:239)em by(cid:239) bank. Kup książkęPoleć książkę Jak działa protokół Bitcoin? 29 Pawe(cid:239) idzie do banku i mówi: „Chc(cid:218) pobra(cid:202) jednego bitcoina ze swojego konta”. Bank pomniejsza konto Paw(cid:239)a o jednego bitcoina i przydziela numer seryjny 1234567 do wydanej monety. Wówczas Pawe(cid:239) wysy(cid:239)a wiadomo(cid:258)(cid:202) do Marka: „Ja, Pawe(cid:239), wysy(cid:239)am do Marka jednego bitcoina o numerze seryjnym 1234567”, ale Marek przed akceptacj(cid:200) przelewu kontaktuje si(cid:218) z bankiem i pyta, czy bitcoin z numerem 1234567 nale(cid:285)y do Paw(cid:239)a i czy Pawe(cid:239) nie wyda(cid:239) go ju(cid:285) wcze(cid:258)niej. Je(cid:258)li obydwa warunki s(cid:200) spe(cid:239)nione, Marek mówi bankowi, (cid:285)e chce zaakceptowa(cid:202) transfer bitcoina, a bank aktualizuje swoj(cid:200) baz(cid:218) informacji, w której zaznacza, (cid:285)e teraz bitcoin o numerze 1234567 nale(cid:285)y do Marka. Wersja takiego rozwi(cid:200)zania jest obiecuj(cid:200)ca, ale powodowa(cid:239)o- by to uzale(cid:285)nienie si(cid:218) od zewn(cid:218)trznej instytucji, która posiada(cid:239)aby ogromn(cid:200) w(cid:239)adz(cid:218). W jaki sposób wykluczy(cid:202) t(cid:218) sytuacj(cid:218)? Otó(cid:285) mo(cid:285)- na wykorzysta(cid:202) sie(cid:202) P2P. 2.2. Sie(cid:202) P2P (peer-to-peer) Sie(cid:202) P2P tworzona jest przez system klientów (programów zain- stalowanych na poszczególnych komputerach), które komunikuj(cid:200) si(cid:218) bezpo(cid:258)rednio ze sob(cid:200) jako równorz(cid:218)dne w(cid:218)z(cid:239)y sieci. Oznacza to, (cid:285)e nie ma centralnej jednostki zarz(cid:200)dzania i przetwarzania transakcji. Ka(cid:285)dy komputer pod(cid:239)(cid:200)czony do sieci P2P jest cz(cid:218)(cid:258)ci(cid:200) ca(cid:239)o(cid:258)ci tego systemu. Obecnie najpopularniejsz(cid:200) implementacj(cid:200) modelu P2P s(cid:200) programy do wymiany plików w internecie, np. BitTorrent, gdzie ka(cid:285)dy komputer odgrywa rol(cid:218) serwera, przyjmuj(cid:200)c po(cid:239)(cid:200)czenia od innych u(cid:285)ytkowników sieci, oraz klienta, wysy(cid:239)aj(cid:200)c pliki i (lub) pobieraj(cid:200)c je bezpo(cid:258)rednio z innych komputerów dzia(cid:239)aj(cid:200)cych w tej samej sieci P2P. Topologi(cid:218) takiej sieci ilustruje rysunek 2.1. Kup książkęPoleć książkę 30 Sekrety Bitcoina i innych kryptowalut Rysunek 2.1. Schemat przedstawiaj(cid:200)cy sie(cid:202) typu P2P Na takiej samej zasadzie dzia(cid:239)a sie(cid:202) Bitcoin, co sprawia, (cid:285)e jest ona zdecentralizowana i nie mo(cid:285)na jej wy(cid:239)(cid:200)czy(cid:202), poniewa(cid:285) konieczne by(cid:239)oby wy(cid:239)(cid:200)czenie wszystkich tworz(cid:200)cych j(cid:200) komputerów. Inaczej mówi(cid:200)c, pomys(cid:239) polega na tym, aby wszyscy stali si(cid:218) bankiem — kolektywnie w sieci P2P. Czyli ka(cid:285)dy u(cid:285)ytkownik prze- chowuje informacje o tym, do kogo nale(cid:285)(cid:200) dane bitcoiny. Ten re- jestr nazywa si(cid:218) „(cid:239)a(cid:241)cuchem bloków” lub „(cid:239)a(cid:241)cuchem transakcji” (ang. blockchain). Blockchain to kompletny rejestr wszystkich trans- akcji, jakie przeprowadzono od pocz(cid:200)tku powstania systemu Bitcoin. Za(cid:239)ó(cid:285)my teraz, (cid:285)e Pawe(cid:239) chce wys(cid:239)a(cid:202) do Marka bitcoina o nu- merze 1234567. Pojawia si(cid:218) kolejny problem, tzw. „podwójne wy- dawanie” (ang. double-spending), poniewa(cid:285) Pawe(cid:239) mo(cid:285)e w tym samym czasie (przed aktualizacj(cid:200) (cid:239)a(cid:241)cucha transakcji) wys(cid:239)a(cid:202) bit- coina o numerze 1234567 równie(cid:285) Wojtkowi. To mo(cid:285)e wydawa(cid:202) si(cid:218) trudne — Marek od razu po otrzyma- niu bitcoina mo(cid:285)e zaktualizowa(cid:202) swój (cid:239)a(cid:241)cuch bloków i og(cid:239)osi(cid:202) wszystkim w sieci, tak(cid:285)e Wojtkowi, (cid:285)e jest posiadaczem bitcoina. Istnieje zatem bardzo krótka chwila, w której Pawe(cid:239) mo(cid:285)e wielo- krotnie wydawa(cid:202) tego samego bitcoina. Tak czy inaczej, takie rozwi(cid:200)zanie dawa(cid:239)oby mo(cid:285)liwo(cid:258)(cid:202) oszu- kiwania innych. Istniej(cid:200) równie(cid:285) techniki, które mog(cid:239)yby wyd(cid:239)u(cid:285)y(cid:202) czas Paw(cid:239)a i umo(cid:285)liwi(cid:202) mu wielokrotne wydawanie tego samego Kup książkęPoleć książkę Jak działa protokół Bitcoin? 31 bitcoina, np. poprzez zerwanie lub wyd(cid:239)u(cid:285)enie komunikacji w sys- temie pomi(cid:218)dzy Markiem i Wojtkiem. Z jakiego rozwi(cid:200)zania w takim razie korzysta protokó(cid:239) Bitcoin, aby unikn(cid:200)(cid:202) problemu z podwójnym wydawaniem? Otó(cid:285) Marek i Wojtek nie próbuj(cid:200) aktualizowa(cid:202) transakcji samo- dzielnie, lecz wysy(cid:239)aj(cid:200) wiadomo(cid:258)(cid:202) o mo(cid:285)liwo(cid:258)ci transakcji z Paw(cid:239)em do ca(cid:239)ej sieci u(cid:285)ytkowników systemu i prosz(cid:200) o rozstrzygni(cid:218)cie, czy transakcja jest poprawna. Je(cid:258)li u(cid:285)ytkownicy wspólnie zdecyduj(cid:200), (cid:285)e transakcja jest poprawna, to Marek mo(cid:285)e zaakceptowa(cid:202) wys(cid:239)a- nego do niego bitcoina i wszyscy zaktualizuj(cid:200) swój (cid:239)a(cid:241)cuch blo- ków. To skutecznie rozwi(cid:200)zuje problem z podwójnym wydawa- niem bitcoinów. Je(cid:258)li Pawe(cid:239) b(cid:218)dzie chcia(cid:239) wyda(cid:202) te same bitcoiny kilkakrotnie, to inne osoby w sieci to zauwa(cid:285)(cid:200) i transakcja nie doj- dzie do skutku. W przyk(cid:239)adzie wygl(cid:200)da to tak, (cid:285)e Pawe(cid:239) wysy(cid:239)a bitcoina do Marka: „Ja, Pawe(cid:239), wysy(cid:239)am Markowi jednego bitcoina z nume- rem 1234567” i dostarcza podpisan(cid:200) wiadomo(cid:258)(cid:202) Markowi. Marek zamiast odwo(cid:239)ywa(cid:202) si(cid:218) do w(cid:239)asnej kopii (cid:239)a(cid:241)cucha bloków, wysy(cid:239)a informacj(cid:218) do ca(cid:239)ej sieci. Inni u(cid:285)ytkownicy sprawdzaj(cid:200), czy Pawe(cid:239) posiada bitcoina o numerze 1234567. Je(cid:258)li posiada, to sie(cid:202) wysy(cid:239)a wiadomo(cid:258)(cid:202): „Tak, Pawe(cid:239) posiada bitcoina o numerze 1234567; bitcoin ten mo(cid:285)e by(cid:202) zatem wys(cid:239)any Markowi”. Gdy wiadomo(cid:258)(cid:202) tak(cid:200) wy(cid:258)le wystarczaj(cid:200)ca liczba osób, ka(cid:285)dy zaktualizuje swój (cid:239)a(cid:241)- cuch bloków, by pokaza(cid:202), (cid:285)e bitcoin 1234567 nale(cid:285)y teraz do Mar- ka, a transakcja zosta(cid:239)a zako(cid:241)czona powodzeniem. Co to znaczy „wiadomo(cid:258)(cid:202) wy(cid:258)le wystarczaj(cid:200)ca liczba osób”? Nie mo(cid:285)emy zak(cid:239)ada(cid:202), (cid:285)e ka(cid:285)dy u(cid:285)ytkownik sieci wy(cid:258)le tak(cid:200) wia- domo(cid:258)(cid:202), poniewa(cid:285) nie wiemy, kto jest w sieci Bitcoin — nie mo- (cid:285)emy okre(cid:258)li(cid:202) sta(cid:239)ej cz(cid:218)(cid:258)ci u(cid:285)ytkowników sieci. Pojawia si(cid:218) kolejne zagro(cid:285)enie. Pawe(cid:239) móg(cid:239)by przej(cid:200)(cid:202) du(cid:285)(cid:200) cz(cid:218)(cid:258)(cid:202) sieci Bitcoin, np. poprzez zautomatyzowany system kreuj(cid:200)cy Kup książkęPoleć książkę 32 Sekrety Bitcoina i innych kryptowalut du(cid:285)(cid:200) liczb(cid:218) oddzielnych „u(cid:285)ytkowników”, o których reszta nie wie, (cid:285)e s(cid:200) powi(cid:200)zani. Podobnie jak poprzednio, Pawe(cid:239) próbuje wys(cid:239)a(cid:202) swojego bit- coina o numerze 1234567 równocze(cid:258)nie do Marka i Wojtka. Gdy Marek i Wojtek prosz(cid:200) sie(cid:202) o sprawdzenie poprawno(cid:258)ci transakcji, Pawe(cid:239) zasypuje sie(cid:202) informacjami ze swojego zautomatyzowane- go systemu, (cid:285)e transakcja jest pozytywna. Marek i Wojtek mogliby wi(cid:218)c zosta(cid:202) oszukani. Istnieje sprytny sposób zapobiegania tego typu sytuacjom. Na- zywa si(cid:218) on dowodem pracy (ang. proof-of-work). 2.3. Dowód pracy Dowód pracy zapobiega wielokrotnym przelewom tej samej kwoty do ró(cid:285)nych u(cid:285)ytkowników. Jest to rodzaj rozproszonego serwera czasowego, który u(cid:285)ywa (cid:239)a(cid:241)cuchowych dowodów matematycznych wykonywanych dzia(cid:239)a(cid:241). Takie sformu(cid:239)owanie mo(cid:285)emy przeczyta(cid:202) w definicji. Ale jak to wygl(cid:200)da w praktyce? Pomys(cid:239) ten wymaga skompilowania dwóch rozwi(cid:200)za(cid:241), które mog(cid:200) wydawa(cid:202) si(cid:218) ma(cid:239)o intuicyjne. Po pierwsze, w protokole Bitcoin umy(cid:258)lnie zosta(cid:239)o wprowa- dzone podwy(cid:285)szenie z(cid:239)o(cid:285)ono(cid:258)ci obliczeniowej, aby zweryfikowa- nie transakcji w sieci sta(cid:239)o si(cid:218) obliczeniowo kosztowne. Po drugie, sie(cid:202) Bitcoin wynagradza u(cid:285)ytkowników, którzy sprawdzaj(cid:200) poprawno(cid:258)(cid:202) transakcji. To rozwi(cid:200)zanie eliminuje problem z wykreowaniem przez Paw(cid:239)a du(cid:285)ej liczby kontrolowanych przez niego u(cid:285)ytkowników sie- ci, poniewa(cid:285) ka(cid:285)dy z nich musia(cid:239)by dysponowa(cid:202) du(cid:285)(cid:200) moc(cid:200) obli- czeniow(cid:200). Aby oszustwo mog(cid:239)o si(cid:218) powie(cid:258)(cid:202), wymaga(cid:239)oby niewyobra- (cid:285)alnie du(cid:285)ej mocy obliczeniowej, co czyni je nieekonomicznym lub nierealnym. Kup książkęPoleć książkę Jak działa protokół Bitcoin? 33 Aby lepiej przybli(cid:285)y(cid:202) dowód pracy, pos(cid:239)u(cid:285)(cid:218) si(cid:218) przyk(cid:239)adem. Pawe(cid:239) wysy(cid:239)a do Marka bitcoina: „Ja, Pawe(cid:239), wysy(cid:239)am do Mar- ka jednego bitcoina o numerze 1234567”. Gdy ta informacja zo- staje przekazana do sieci, pojawia si(cid:218) automatycznie u ka(cid:285)dego u(cid:285)ytkownika i trafia do kolejki, w której trzymane s(cid:200) wykonywane transakcje, ale które nie zosta(cid:239)y jeszcze zaakceptowane przez sie(cid:202). Na przyk(cid:239)ad kolejka Kuby, jednego z u(cid:285)ytkowników sieci, mo- (cid:285)e wygl(cid:200)da(cid:202) tak: Ja, Kuba, wysy(cid:239)am Agnieszce jednego bitcoina o numerze 1357910. Ja, Mateusz, wysy(cid:239)am Weronice jednego bitcoina o numerze 3465021. Ja, Pawe(cid:239), wysy(cid:239)am Markowi jednego bitcoina o numerze 1234567. Kuba sprawdza poprawno(cid:258)(cid:202) transakcji z w(cid:239)asn(cid:200) kopi(cid:200) (cid:239)a(cid:241)cu- cha bloków i chce rozes(cid:239)a(cid:202) wiadomo(cid:258)(cid:202) o poprawno(cid:258)ci tych trans- akcji do ca(cid:239)ej sieci. Jednak zanim b(cid:218)dzie móg(cid:239) to zrobi(cid:202), b(cid:218)dzie musia(cid:239) rozwi(cid:200)za(cid:202) trudn(cid:200) zagadk(cid:218) matematyczn(cid:200), nazwan(cid:200) „do- wodem pracy”. Bez rozwi(cid:200)zania tej zagadki reszta sieci nie zaak- ceptuje jego pozytywnej weryfikacji transakcji. Przyjrzyjmy si(cid:218) bli(cid:285)ej temu, na czym polega rozwi(cid:200)zywanie tej matematycznej zagadki. 2.4. Funkcja skrótu Zacznijmy od wyja(cid:258)nienia, czym jest funkcja skrótu, inaczej: funk- cja mieszaj(cid:200)ca lub funkcja haszuj(cid:200)ca. Jest to funkcja, która przypo- rz(cid:200)dkowuje dowolnej wiadomo(cid:258)ci krótk(cid:200) warto(cid:258)(cid:202), zwykle posiada- j(cid:200)c(cid:200) sta(cid:239)y rozmiar (skrót wiadomo(cid:258)ci). W informatyce funkcje skrótu pozwalaj(cid:200) na ustalenie krótkich i (cid:239)atwych do weryfikacji sygnatur dla dowolnie du(cid:285)ych zbiorów Kup książkęPoleć książkę 34 Sekrety Bitcoina i innych kryptowalut danych. Takie sygnatury mog(cid:200) chroni(cid:202) przed przypadkowymi lub celowo wprowadzonymi modyfikacjami danych, czyli pozwalaj(cid:200) sprawdzi(cid:202), czy zbiory pobrane z internetu s(cid:200) w oryginalnej postaci. Bitcoin u(cid:285)ywa znanej funkcji skrótu SHA-256 (ang. Secure Hash Algorithm). W jaki sposób ta funkcja skrótu haszuje? Pos(cid:239)u(cid:285)my si(cid:218) przy- k(cid:239)adem. Powiedzmy, (cid:285)e funkcj(cid:218) skrótu oznaczymy jako h, a kolej- k(cid:218) Kuby z oczekuj(cid:200)cymi transakcjami nazwiemy K i przypiszemy jej warto(cid:258)(cid:202) K = Kolejka . Kuba dodaje do kolejki numer x=0 i ha- szuje kombinacj(cid:218). h( Kolejka0 ) = 30dd4761a8bc8c4c7d6dbbbdb3ba7627734 ee02d983096cc698b89aa578bcf94 (Liczba wyj(cid:258)ciowa jest zapisywana w systemie szesnastkowym). Zagadka (dowód pracy), któr(cid:200) Kuba musi rozwi(cid:200)za(cid:202), polega na znalezieniu takiego x, by po dodaniu go do K i haszowaniu kom- binacji wyj(cid:258)cie zaczyna(cid:239)o si(cid:218) w tym przyk(cid:239)adzie od odpowiedniej liczby zer. Relatywnie prosty dowód pracy mo(cid:285)e wymaga(cid:202) trzech lub czterech zer na pocz(cid:200)tku liczby, a bardziej z(cid:239)o(cid:285)ony — o wiele d(cid:239)u(cid:285)szej ich sekwencji. W naszym przyk(cid:239)adzie oznacza(cid:239)oby to pora(cid:285)k(cid:218), poniewa(cid:285) gdy x=0, wyj(cid:258)cie funkcji nie zaczyna si(cid:218) zerem. Próba z x=1 równie(cid:285) nie przynosi pozytywnych rezultatów. h( Kolejka1 )=6c8cc2be495540c0c41c409dad55c3706ed49 bd4fb162ea3e4c5749c635a29fa Po kolejnych próbach dla x= 2,3,... w ko(cid:241)cu dla x=10 otrzy- mujemy: h( Kolejka10 )=0e717707c2d4d6912737d4e83e3161805730 b82e4a3068381053d3eed1d8e90c Wyj(cid:258)cie funkcji zaczyna si(cid:218) od jednego 0, ale (cid:285)eby rozwi(cid:200)za(cid:202) prosty dowód pracy, wyj(cid:258)cie z funkcji haszuj(cid:200)cej powinno zaczyna(cid:202) Kup książkęPoleć książkę Jak działa protokół Bitcoin? 35 si(cid:218) ci(cid:200)giem np. czterech 0. Jednak taki wynik nie b(cid:218)dzie wystarcza- j(cid:200)cy, by rozwi(cid:200)za(cid:202) jeszcze trudniejszy dowód pracy. Rozwi(cid:200)zywanie zagadki utrudnia fakt, (cid:285)e wyj(cid:258)cie z kryptogra- ficznej funkcji haszuj(cid:200)cej zachowuje si(cid:218) jak liczba losowa — zmia- na na wej(cid:258)ciu chocia(cid:285)by jednego bita powoduje ca(cid:239)kowit(cid:200) zmian(cid:218) warto(cid:258)ci wyj(cid:258)ciowej w sposób, który trudno przewidzie(cid:202). Je(cid:258)li wi(cid:218)c chcemy mie(cid:202) na wyj(cid:258)ciu funkcji haszuj(cid:200)cej warto(cid:258)(cid:202) zaczynaj(cid:200)c(cid:200) si(cid:218) od 10 zer, Kuba b(cid:218)dzie musia(cid:239) (cid:258)rednio wypróbowa(cid:202) 1610 ~ 1012 ró(cid:285)nych kombinacji dla x, zanim znajdzie odpowiedni(cid:200) liczb(cid:218) zer. To bardzo wymagaj(cid:200)ce zadanie, do którego rozwi(cid:200)zania potrzeb- na jest ogromna moc obliczeniowa. Oczywi(cid:258)cie jest mo(cid:285)liwe ustalanie stopnia trudno(cid:258)ci zagadki — poprzez wymaganie wi(cid:218)kszej lub mniejszej liczby zer na wyj- (cid:258)ciu funkcji haszuj(cid:200)cej. W rzeczy samej, system Bitcoin gwarantuje dobr(cid:200) kontrol(cid:218) nad trudno(cid:258)ci(cid:200) zagadki przez zastosowanie ma(cid:239)ej modyfikacji w powy- (cid:285)ej opisanym przyk(cid:239)adzie metody dowodu pracy. Zamiast na wymaganiu odpowiedniej liczby zer zagadka opiera si(cid:218) na tym, by hash nag(cid:239)ówka bloku by(cid:239) równy numerowi znanemu jako cel albo mniejszy. Ten cel jest automatycznie dostosowywany przez system w odniesieniu do mocy obliczeniowej ca(cid:239)ej sieci, by (cid:258)rednio potwierdzenie bloków Bitcoina wymaga(cid:239)o 10 minut. Wracaj(cid:200)c do przyk(cid:239)adu, przypu(cid:258)(cid:202)my, (cid:285)e Kuba znalaz(cid:239) odpo- wiednie x, które daje mu po(cid:285)(cid:200)dan(cid:200) liczb(cid:218) zer na pocz(cid:200)tku. Wysy- (cid:239)a on wtedy swój blok do sieci razem z odpowiedni(cid:200) znalezion(cid:200) warto(cid:258)ci(cid:200) x. Inni uczestnicy sieci mog(cid:200) zweryfikowa(cid:202), (cid:285)e x jest po- prawnym rozwi(cid:200)zaniem zagadki b(cid:218)d(cid:200)cej dowodem pracy. Wów- czas wszyscy aktualizuj(cid:200) w(cid:239)asne (cid:239)a(cid:241)cuchy bloków, dodaj(cid:200)c nowy blok transakcji. Pojawia si(cid:218) kolejny problem. Bez odpowiedniej zach(cid:218)ty nikt nie b(cid:218)dzie chcia(cid:239) weryfikowa(cid:202) transakcji poprzez udost(cid:218)pnianie Kup książkęPoleć książkę 36 Sekrety Bitcoina i innych kryptowalut swojej mocy obliczeniowej, by pomaga(cid:202) potwierdza(cid:202) transakcje innych osób. W protokole Bitcoin ten proces potwierdzania nazywany jest kopaniem (ang. mining). Ka(cid:285)da osoba, która zweryfikowa(cid:239)a blok transakcji, otrzymuje od systemu ustalon(cid:200) liczb(cid:218) bitcoinów jako zap(cid:239)at(cid:218). Wszystkie bit- coiny, które s(cid:200) w obiegu, powsta(cid:239)y w(cid:239)a(cid:258)nie w taki sposób, czyli jako nagrody za potwierdzanie transakcji. System z puli 21 mln uwalnia kolejne bitcoiny; gdy powsta- wa(cid:239)a ta ksi(cid:200)(cid:285)ka, by(cid:239)o uwolnionych 13 mln bitcoinów. Na pocz(cid:200)tku z ka(cid:285)dego bloku transakcji uwalniano 50 bit- coinów. Po ka(cid:285)dych 210 000 zweryfikowanych bloków (w przybli- (cid:285)eniu jest to co 4 lata) uwalniana nagroda jest zmniejszana o po- (cid:239)ow(cid:218). W historii systemu Bitcoin taka redukcja nagrody odby(cid:239)a si(cid:218) ju(cid:285) jeden raz i z pocz(cid:200)tkowej nagrody 50 bitcoinów za blok spad(cid:239)a do 25 bitcoinów. Takie zmniejszanie nagrody mniej wi(cid:218)cej co 4 lata b(cid:218)dzie kon- tynuowane do oko(cid:239)o 2140 roku. Warto(cid:258)(cid:202) ostatniej nagrody spad- nie wtedy poni(cid:285)ej 10–8 bitcoina za blok, czyli poni(cid:285)ej najmniejszej cz(cid:218)(cid:258)ci bitcoina, nazwanej satoshi, odpowiednika jednego grosza (z tym (cid:285)e warto(cid:258)(cid:202) 1 grosza to 0,01 z(cid:239)otego, a warto(cid:258)(cid:202) 1 satoshi — 0,00000001 bitcoina). Oko(cid:239)o 2140 roku poda(cid:285) przestanie rosn(cid:200)(cid:202), jednak nie spowo- duje to eliminacji zach(cid:218)ty na potwierdzanie transakcji, poniewa(cid:285) w protokole Bitcoin zastosowano mo(cid:285)liwo(cid:258)(cid:202) ustalenia prowizji za transakcje trafiaj(cid:200)ce do „górników”, którzy pomagaj(cid:200) je weryfikowa(cid:202). Prowizje za transakcje pocz(cid:200)tkowo wynosi(cid:239)y 0, ale kiedy bit- coin zdoby(cid:239) popularno(cid:258)(cid:202), stopniowo ros(cid:239)y i gdy powstawa(cid:239)a ta ksi(cid:200)(cid:285)- ka, wynosi(cid:239)y oko(cid:239)o 0,0001 BTC za jedn(cid:200) transakcj(cid:218). Co to oznacza dla zwyk(cid:239)ego u(cid:285)ytkownika? W sieci Bitcoin op(cid:239)aty za transakcje s(cid:200) Kup książkęPoleć książkę Jak działa protokół Bitcoin? 37 dobrowolne. Je(cid:258)li zaakceptujemy nisk(cid:200) op(cid:239)at(cid:218) za nasz(cid:200) transakcj(cid:218), zostanie ona zrealizowana szybciej ni(cid:285) ta, która nie ma op(cid:239)aty. Ka(cid:285)da transakcja powoduje wpis, który potrzebuje odrobin(cid:218) mocy obliczeniowej. Górnicy poprzez swoje dowody pracy kon- kuruj(cid:200) ze sob(cid:200) w szybko(cid:258)ci potwierdzenia transakcji. Generalnie ka(cid:285)dy górnik ma mo(cid:285)liwo(cid:258)(cid:202) wygrania tej konkurencji na poziomie zale(cid:285)nym od tego, ile (procentowo) dostarcza mocy obliczeniowej. Powiedzmy, (cid:285)e dany górnik dostarcza 1 mocy obliczeniowej ca(cid:239)ej sieci, ma zatem 1 szansy na wygranie konkurencji i tym samym otrzymanie nagrody. Je(cid:258)li mu si(cid:218) to nie uda, przy wydobywaniu nast(cid:218)pnych bloków b(cid:218)dzie mia(cid:239) kolejn(cid:200) mo(cid:285)liwo(cid:258)(cid:202). Rozwi(cid:200)zanie to powoduje, (cid:285)e przy du(cid:285)ej mocy obliczeniowej oraz przy sporej konkurencji nieuczciwy górnik b(cid:218)dzie mia(cid:239) ma(cid:239)e szanse, aby zak(cid:239)óci(cid:202) potwierdzanie transakcji. Wa(cid:285)n(cid:200) spraw(cid:200) w dzia(cid:239)aniu protoko(cid:239)u Bitcoin jest kolejno(cid:258)(cid:202), w której przeprowadzane s(cid:200) transakcje. Je(cid:258)li sie(cid:202) Bitcoin nie mia- (cid:239)aby tego typu porz(cid:200)dkowania, to w danym momencie mog(cid:239)oby by(cid:202) niemo(cid:285)liwe okre(cid:258)lenie, do kogo nale(cid:285)y dany bitcoin. W protokole Bitcoin ka(cid:285)dy nowy blok zawiera wska(cid:283)nik (hash wcze(cid:258)niejszego bloku) do ostatnio zweryfikowanego bloku w (cid:239)a(cid:241)- cuchu. Wska(cid:283)nik ten jest dodawany do zatwierdzonych ju(cid:285) trans- akcji. Wi(cid:218)c (cid:239)a(cid:241)cuch bloków (blockchain) to liniowy (cid:239)a(cid:241)cuch trans- akcji; bloki s(cid:200) u(cid:239)o(cid:285)one jeden po drugim, przy czym ostatni z nich zawiera wska(cid:283)niki bloku wykonanego bezpo(cid:258)rednio przed nim. Sche- mat takiego liniowego (cid:239)a(cid:241)cucha transakcji prezentuje rysunek 2.2. Rysunek 2.2. Najnowszy blok wygenerowany z haszem bloku poprzedniego Kup książkęPoleć książkę 192 Sekrety Bitcoina i innych kryptowalut Kup książkęPoleć książkę
Pobierz darmowy fragment (pdf)

Gdzie kupić całą publikację:

Sekrety Bitcoina i innych kryptowalut. Jak zmienić wirtualne pieniądze w realne zyski
Autor:

Opinie na temat publikacji:


Inne popularne pozycje z tej kategorii:


Czytaj również:


Prowadzisz stronę lub blog? Wstaw link do fragmentu tej książki i współpracuj z Cyfroteką: