Kurs18620

 

Jak działa bitcoin ?

 

bitcoin-p2p400

 

Jeśli wiemy już co to jest bitcoin czas poznać zasady jego działania. Na początku musimy sobie odpowiedzieć na kilka pytań co jest najważniejsze w przypadku systemu monetarnego i obiegu pieniądza i jak on ewoluuje.


 

 

I generacja - Muszelki, monety, banknoty

 

dolars400

 

W przypadku banknotów czy monet sprawa jest prosta. Dając  banknot drugiej osobie zrzekamy się do niego praw na zasadzie umowy ustnej. Wadą takiego systemu jest to, że ktoś nieuczciwy po dokonaniu transakcji może nam zabrać banknot, nie możemy wysyłać go też błyskawicznie do innego miejsca na świecie. Przechowywanie banknotów jest również ryzykowne i podatne na zniszczenie lub kradzież.  W przypadku banknotów/monet występuje też problem fałszerstwa. Tu pojawia się bardziej nowoczesne rozwiązanie tego problemu czyli bankowość elektroniczna.


 

 

II generacja - Bankowość elektroniczna

 

electronic

Możemy już w miarę szybko i łatwo wysyłać pieniądze do teoretycznie dowolnego miejsca na świecie. Po wysłaniu środków bank odejmuje nam daną kwotę z naszego konta i dopisuje do konta osoby docelowej.  Wadą takiego systemu są prowizje, a w przypadku przelewów międzynarodowych całkiem niemałe, czas takich przelewów też nie jest zadowalający.

Następną wadą takiego systemu jest fakt, że nad naszymi pieniędzmi kontrolę sprawuje bank czyli ludzie. To bank odejmuje środki z naszego konta i dodaje do innego, jesteśmy więc zależni od osób trzecich. W systemie tym możliwe jest też cofnięcie przelewu (chargeback) co często prowadzi do nadużyć. Sprzedając więc dany towar nie mamy zawsze 100% gwarancji, że przelew który otrzymaliśmy nagle nie zniknie czyli zostanie wycofany. Przelew a co za tym idzie prawo własności zależne jest więc też od "widzimisie" pana w krawacie  będącego częścią tego systemu.

 

 

bankier-vs-p2p

 

W systemie tym bezpieczeństwo naszych środków zależy od banków które oczywiście są objęte gwarancjami państwowymi  wydaje się więc, że są bezpieczne. Niestety tak nie jest o czym przekonali się np. mieszkańcy Cypru którym rząd dosłownie ukradł pieniądze z depozytów aby ratować banki.  W grudniu 2013 roku władze Unii Europejskiej porozumiały się co do regulacji dotyczących pomocy lub likwidacji banków znajdujących się w kłopotach finansowych. Nowe przepisy pozwalają na sięganie po środki zgromadzone na naszych depozytach! To nie jedyna sytuacja w której ktoś może odebrać nam prawo własności i rozporządzania naszymi pieniędzmi. Bank może je zablokować lub przekazać np. komornikowi.  W dodatku w obliczach kryzysu UE jak i USA  i inne kraje stosują jeszcze inna metodę ratowania systemu - dodruk pieniądza a co za tym idzie zmieszenie wartości pieniądza obecnego już w obiegu (inflacja).

 

Ponadto banki mają wgląd w to co robimy z pieniędzmi, na co je wydajemy, co kupujemy do kogo przelewamy. W czasach kiedy inwigilacja państwowa osiągnęła najwyższy poziom w historii taka cecha systemu bankowego nie jest dla ludzi korzystna i może być wykorzystana przeciwko nam.

 

 

Podsumowując wartość pieniędzy, ich ilość w obiegu, prawo do ich własności i rozporządzania oraz ich przepływ w obecnym systemie zależny jest od banków i rządów czyli czynnika ludzkiego, małej grupie osób mającej kontrolę nad jednym z najważniejszych aspektach naszego życia - finansach. Sprzyja to nadużyciom, korupcji, niesprawiedliwości, kontroli społeczeństwa itd.

 

Tu pojawia się kolejny nowszy i bardziej doskonały system który jest rewolucją na taką skalę jak przejście z banknotów i monet do bankowości cyfrowej, mowa oczywiście o bitcoinie.


 

III generacja -  Bitcoin (kryptowaluty)

 

bitcoin3a-400

 

Bitcoin rozwiązuje większość problemów poprzednich systemów. Bitcoiny można  wysłać błyskawicznie w dowolne miejsce na świecie gdzie jest Internet, bez prowizji i bez pośredników. Prawo własności naszych pieniędzy nie zależy już od banków i rządów. W przypadku przelewu nie powierzamy pieniędzy osobom trzecim nikt więc nie ma na nie wpływu i nie może nimi manipulować ani decydować o ich statusie. Bitcoina nie da się też podrobić ani dodrukować.

 

Bitcoin pozbawiony jest czynnika ludzkiego, wszystko odbywa się wedle z góry ustalonych zasad przyjętych demokratycznie przez większość użytkowników systemu.

 

W bitcoinie wszystkie operacje są jawne ale nie wiemy kto je wykonał i do kogo (personalnie) należą.

 

Przy zakładaniu konta czyli adresu nie podajemy żadnych danych osobowych. Nikt nam też tego adresu (konta) nie może zablokować ani zabrać. Bitcoin zapewnia więc dużo większą anionowość, prywatność i poczucie bezpieczeństwa.

 

Rodzi się więc pytanie jak to jest możliwe, jak działa sieć bitcoin ?


 

 

Blockchain - księga transakcyjna bitcoina

 

blockchain

 

Załóżmy, że każda transakcja w sieci bitcon jest zapisywana w księdze. Jeśli wysyłamy komuś bitcoiny powstaje w tej księdze zapis mówiący, że z naszego adresu-konta bitcoiny zostają odjęte i dodane to adresu docelowego.

 

Jeśli wszystkie transakcje w sieci bitcoin zapisywane są w  księdze (jawnej) łatwo można policzyć więc kto i ile bitcoinów powinien mieć. Poglądowy i uproszczony przykład księgi:

  1. Jacek dostaje 25 bitcoinów od sieci w zamian za wykonaną pracę na rzecz tej sieci.
  2. Jacek wysyła 3 bitcoiny do Marka
  3. Jacek wysyła 2 bitcoiny do Adama
  4. Marek wysyła 2 bitcoiny do Grześka
  5. Grzesiek wysyła 1 bitcoin do Jacka

 

Na postawie tej księgi dokładnie możemy policzyć ile kto ma bitcoinów. Jacek ma 21 bitcoinów, Adam ma 2 bitcony, Marek 1 bitcoin i Grzesiek ma 1 bitcoin. Tak też dzieje się w przypadku bitcoina, saldo naszego konta obliczane jest właśnie na podstawie księgi transakcyjnej. Co za tym idzie nie musimy nawet przechowywać bitcoinów, wystarczy więc, że znamy klucz prywatny do naszego adresu który identyfikuje nas w tej księdze.  

 

Powstaje pytanie czym to się różni od bankowości elektronicznej która przecież działa w dość podobny sposób ?

 

Różni się i to znacznie. W przypadku bankowości tradycyjnej  to banki przechowują księgi, mogą je więc zmieniać/modyfikować/manipulować w dowolny sposób. W przypadku bitcoinów księgi przechowywane są u wszystkich użytkowników sieci. Sieć tą tworzą setki tysięcy komputerów na których jest zainstalowany tradycyjny klient bitcoina. Każdy kto jest użytkownikiem systemu i posiada tradycyjnego klienta przechowuje taką kopię księgi u siebie. Nikt więc, nie może dokonać jakiejkolwiek modyfikacji w takiej księdze a raczej sieci zsynchronizowanych identycznych ksiąg. Dokonana transakcja zostanie zapisana w księdze raz na zawsze bez możliwości modyfikacji i zmian, księga otwarta jest jedynie na nowe transakcje.

 

W tym systemie nie musimy ufać bankom ani rządom, ufamy kryptografii, prawom matematycznym i sile sieci bitcoina która jest najszybszą siecią na świecie, szybszą tysiące razy od innych sieci typu SETI i tysiące razy szybszą od  najszybszych komputerów świata. Moc sieci bitcoin jest kilkaset razy większa niż sumaryczna moc 500 najszybszych komputerów świata należących do rządu USA, Chin, NASA czy innych instytucji naukowych i wojskowych. W dodatku moc sieci bitcoin rośnie kilkanaście-kilkadziesiąt procent na miesiąc.  

 

Księga a raczej wiele ich identycznych kopii w sieci bitcoin to inaczej blockchain - łańcuch bloków. Do księgi bitcoinowej każdy może zajrzeć np. tu. Wystarczy wprowadzić jakiś adres i mamy dostęp do wszystkich transakcji wykonanych na tym adresie. Księga (blochchain - łańcuch bloków) składa się z bloków a każdy blok przechowuje właśnie transakcje użytkowników wykonane w danym przedziale czasu.


 

 

Prawo własności naszych bitcoinów

 

 

certificate-400

 

Prawo do naszych bitcoinów daje nam nasz klucz prywatny który znany jest tylko nam, to taki rodzaj podpisu cyfrowego.

 

Każda cyfrowa moneta powiązana jest w systemie z kluczem publicznym ECDSA (kryptografia krzywych eliptycznych) jej właściciela . Kiedy przelewa on bitcoiny na adres innego użytkownika, tworzy się transakcja, w której łączy klucz publiczny nowego właściciela z określoną ilością bitcoinów, a następnie podpisuje to swoim prywatnym kluczem. Nie ma więc możliwości, że ktoś wyśle nasze bitcoiny bez naszego pozwolenia, bez klucza prywatnego jest to niemożliwe.

 

Pozostaje jeszcze pytanie, jak w sieci bitcoina znajdywani są odbiorcy  tej waluty?   Bitcoin wykorzystuje funkcję skrótu RIPEMD-160 na publicznej części klucza ECDSA, która służy jako unikatowy adres, do którego wysyłane są bitcoiny. Adres zapisany jest w systemie kodowania Base58 , jest adresem publicznym więc może być rozpowszechniany pomiędzy użytkownikami sieci. Co ważne, każdy może wygenerować dowolną liczbę takich adresów, na które będzie przyjmował bitcoiny.


 

 

Sieć bitcoin i bloki z transakcjami

 

bitcoin-network 

 

Sieć Bitcoina jest siecią P2P, składa się więc z węzłów – czyli komputerów, na których działa tradycyjny klient bitcoina , węzły te łączą się z innymi  węzłami w sieci  rozproszonymi w Internecie. Co się dzieje, gdy do sieci włącza się/dołącza się nowy węzeł czyli jeśli ktoś zainstaluje nowy portfel lub uruchomi już używany.

 

Po pierwsze, pobiera on od swoich peerów (węzłów do których się podłączył) łańcuch bloków, w przypadku nowego klienta są to wszystkie bloki, w przypadku klienta nie używanego jakiś czas tylko te bloki które powstały w trakcie tego czasu kiedy portfel był nie używany. Każdy z bloków składa się z nagłówka, pozwalającego na jego odróżnienie od innych bloków, oraz zawiera listę transakcji jaką w danym czasie wykonali użytkownicy. Po drugie, synchronizuje informacje o czasie, wykorzystywane później do wstawiania do bloków czasoznaczków – czyli rekordu zawierającego czas unixowy, ma to na celu  utrudnienie manipulacji łańcuchem bloków.

 

Sam łańcuch bloków powstaje w następujący sposób: blok n wskazuje na blok n-1 poprzez załączenie w sobie funkcji skrótu zawartości bloku n-1. Blok zawiera w sobie funkcję skrótu bloku n-2 więc skrót ostatniego bloku w łańcuchu jest zależny od skrótu każdego poprzedniego bloku łańcucha. Można opisać skrót dla bloku nr 5 jako funkcję:

 

hash(blok4 + hash(blok3 + hash(blok2 + hash … ) ) ).

 

Mechanizm ten sprawia więc, że jeśli dwa węzły uznają wskazany skrót bloku w łańcuchu, to jednocześnie zgadzają się na wszystkie inne bloki. Dzięki tej własności niemożliwe jest sfałszowanie pojedynczego bloku – unieważniłoby to wszystkie poprzednie bloki.

 

Wiemy już z czego składa się sieć bitcoina. W skrócie są to rozproszone komputery przechowujące łańcuch bloków z transakcjami dokonanymi przez użytkowników.


 

 

Mining - utrzymanie sieci

 

bitcoin-mining-800

  

Teraz rodzi się pytanie kto i jak zapisuje te transakcje w bloku i buduje z nich łańcuch bloków? Odpowiedź brzmi: górnicy za pomocą urządzeń o wysokiej mocy obliczeniowej.  Sieć aby mogła być bezpieczna i działać prawidłowo potrzebuje mocy obliczeniowej czyli musi wykonana być praca. Górnikiem może zostać każdy, wystarczy zapatrzeć się w odpowiedni sprzęt. To dzięki górnikom mogą być wykonywane transakcje w sieci. Za swoją pracę sieć nagradza górników nowymi bitcoinami (obecnie 25 BTC)  - tak właśnie powstają nowe bitcoiny. Jak już wiesz bitcoinów może powstać tylko 21 mln, w chwili kiedy powstaje ten tekst bitcoinów jest już 12.7mln. Co będzie jak wszystkie zostaną wydobyte ? Jak będą wynagradzani górnicy za utrzymanie sieci ?

 

To proste, sieć będzie utrzymywała górników już nie z podaży nowych bitcoinów a z drobnych prowizji za przelew. Ale bez obaw będą to tak małe kwoty, że nawet tego nie zauważysz.

 

Jak już wiemy wszystkie transakcje wykonywane w sieci zapisywane są w bloku z których składa się łańcuch bloków.  Zadaniem górnika jest rozbicie bloku czyli rozwiązanie zadanego przez sieć problemu kryptograficznego bazującego na funkcji skrótu SHA-256.

 

Ogólnie polega to na:

  1. Wyliczeniu funkcji skrótu z danego bloku danych
  2. Wyliczeniu obecnego celu (target) z dostarczonego przez sieć poziomu trudności, czyli miary określającej, jak trudno znaleźć nowy blok.
  3. Sprawdzeniu, czy wartość funkcji skrótu dla bloku jest mniejsza niż obecny cel.

 

Nie jest to proste zadanie. Dla przykładu przy trudności 8000872136 (trudność w chwili pisania tego tekstu) procesor  z naszych domowych komputerów z wyższej półki klasy i7 potrzebował by 119 149 733 dni (326437 lat) ciągłej pracy aby mieć 95% szansę na wydobycie bloku.

 

Górnik (a raczej kopalnia), który pierwszy wyliczy poprawny blok, rozgłasza to w sieci. Pozostałe węzły sieci sprawdzają poprawność tego wyliczenia, i gdy zostanie ono potwierdzone, górnik zostaje wynagrodzony określoną liczbą bitcoinów, oraz wszystkimi opłatami transakcyjnymi, a blok z transakcjami użytkowników trafia do łańcucha bloków.  Wszystko odbywa się na zasadzie współzawodnictwa w loterii która zapobiega przed prostym dodawaniem nowych bloków kolejno w łańcuchu bloków przez dowolną jednostkę. W ten sposób zapobiega się kontroli przez jakąkolwiek osobę nad tym co zostanie zapisane w łańcuchu bloków aby nie mogła ona zamienić jego części .

 

Sieć bitcoina jest siecią samoregulującą się i utrzymującą z góry założone parametry. Jeżeli liczba górników/moc urządzeń górniczych się zwiększy nie oznacza to, że bitcoiny będą wydobywane szybciej. Do tego służy właśnie parametr ustalający trudność wykonywanego przez górników problemu kryptograficznego. Sieć tak dostosowuje trudność by blok wydobywany był co 10 minut niezależnie od mocy sieci. Parametr trudności zmienia się co 2016 bloków. Obecnie nagroda za rozbicie bloku wynosi 25BTC i spada o połowę co 210 tysięcy bloków czyli średnio co 4 lata.

 

Jak widać cały system opiera się na mocy obliczeniowej, matematyce, kryptografii i sieci rozproszonej. Nie ma tu czynnika ludzkiego tak jak w przypadku tradycyjnego systemu bankowego. Bitcoinem nikt nie może sterować, nikt nie może dokonywać żadnych zmian na naszych kontach ani nimi manipulować, nikt też oprócz nas nie ma do nich dostępu a prawo własności naszych pieniędzy gwarantowane jest przez matematykę a nie ludzi. Bitcoinów nie da się też dodrukować ani podrobić.  

 

Bitcoin  jest projektem otwarto-źródłowym (Open Source). Kod źródłowy jest jawny i każdy ma do niego dostęp. Wszelkie zmiany w protokole i w zasadzie jego działania muszą zostać zaakceptowane przez większość użytkowników poprzez zmianę oprogramowania czyli klienta bitcoin. Nie jesteśmy więc zdani na łaskę garstki ludzi a na prawa matematyczne, siłę kryptografii i demokrację. 

 

Przeczytaj też Manifest Satoshi Nakamoto, twórcy bitcoina: