Jak działa BitCoin?

2014-01-15Blog22650

Pewnie coś tam słyszałeś: jest gdzieś jakiś BitCoin i robi się popularny. Co to jest BitCoin? Jakieś komputerowe, wirtualne pieniądze. Może nawet zacząłeś czytać gdzieś artykuł na ten temat, ale odpadłeś w akapicie gdzie gość zaczął gadać o szyfrowaniu AES prywatnego klucza 512-bitowym hashem.

Krótko mówiąc: prawdopodobnie nie wiesz jak działa BitCoin i podchodzisz do niego jak do Biblii: normalny człowiek nie zrozumie, więc lepiej nie tykać. Wielu ludzi uważa, że to taka nowa zabawka dla fanatyków komputerowych.

Kiedyś to samo mówili o internecie.

Faktem jest, że trudno zrozumieć jak działa BitCoin, bo raz, że mało który ekspert potrafi wyjaśnić coś nie-ekspertowi, a dwa że definicje związane z tradycyjnymi pieniędzmi są w przypadku BitCoina mylące.

Przykład? „Mam pieniądze” – takie zdanie jest zrozumiałe przy „normalnych” pieniądzach. Ale w świecie BitCoina nie ma sensu. Bitcoina nie da się mieć!

I zaraz zrozumiesz dlaczego.

Zgaduję, że wyobrażasz sobie że BitCoin to coś w rodzaju wirtualnego banku, w którym ludzie mają coś w rodzaju kont. Coś takiego jak PayPal. Zgadłem?

No to źle sobie wyobrażasz.

Ja też tak to sobie wyobrażałem na początku. Że istnieje gdzieś komputer, który przechowuje długą listę „kont” – jak w banku.

Twórcy systemu musieli dobrze przemyśleć istotę tego czym tak naprawdę są pieniądze.

Zadam teraz głupie pytanie: co to właściwie znaczy „mieć pieniędze”?

Że masz je fizycznie? No nie, bo fizycznie masz tylko papierki z wydrukowaną liczbą. Jeżeli trzymasz pieniądze w banku to w banku nie ma nawet papierków – są tylko zapisy księgowe. Więc fizycznie tego nie ma, ale mimo to przecież jednak to masz! Możesz sobie coś za to kupić.

I to ostatnie, to właśnie jest istota „mienia”. „Mam możliwość płacić” = „mam pieniądze„.

Ta definicja jest ważna. I lepiej zapamiętaj ją dobrze, bo jeżeli nie zrozumiesz co to znaczy „mieć pieniądze”, ktoś cię w końcu zrobi w konia. Przykład? Konto w banku Cypryjskim. Rząd Cypru zamroził posiadaczom kont bankowych możliwość wypłacania z tych kont. Więc gdybyś miał na takim koncie, powiedzmy, milion dolarów, ale mógłbyś wydać tylko tysiąc dolarów na miesiąc, to ile miałbyś tak realnie pieniędzy? Oficjalnie – milion. Faktycznie – tysiąc razy mniej.

Dlatego definicja posiadania pieniędzy jest taka: masz pieniądz wtedy, kiedy możesz go wydać.

Na tym fundamentalnym założeniu opiera się konstrukcja systemu BitCoin.

A wygląda ona tak:

BitCoin to po prostu jedna wielka lista transakcji. I nic więcej. Cała reszta to szczegóły techniczne.

– Zaraz zaraz – zapytasz – ale skąd mam w takim razie wiedzieć ile mam?

Odpowiadam: masz tyle, ile dostałeś minus tyle ile wydałeś. Popatrz na przykładową listę transakcji wyżej i łatwo policzysz ile kto ma. Nie potrzeba żadnej listy kont.

– Ale w takim razie, żeby było wiadomo ile kto ma, trzeba pamiętać listę wszystkich transakcji bitcoinowych od początku świata!
– Dokładnie. Jeżeli zadajesz takie pytanie to znaczy, że rozumiesz jak działa system.
– Wszystkie transakcje całej planety na jednej liście??? Lista będzie potwornie długa!
– No to co? Przypominam, że mamy komputery. Aktualnie lista transakcji zajmuje ok. 13 gigabajtów – co to jest dla współczesnych komputerów? Pod tym linkiem możesz zobaczyć jaki jest aktualny rozmiar listy transakcji. Nie będę się wdawać w szczegóły techniczne, ale powiem tylko krótko: rozmiar to żaden problem.
– No dobra, lista transakcji, rozumiem. Ale gdzie dokładnie jest ta lista?

O, i to jest genialne pytanie. Bo tam gdzie jest lista, tam de facto są twoje pieniądze!

Ten, kto kontrolowałby taką listą transakcji kontrolowałby w praktyce pieniądz. Gdyby miał prawo – on i tylko on – dopisywać sobie transakcje jak mu się podoba, to mógłby okraść pół świata.

Głupi ten system, nie?

A pomyśl jeszcze co by się działo gdyby stracił taką listę! Padł gdzieś twardy dysk made in China (kto by się mógł spodziewać!), i nagle nikt nie wie ile ma i nikt nie może nic wydać. A co jakby jakiś hacker dorwał taką listę i zmienił? Kataklizm.

Tak działa PayPal. I to jest jego największa słabość. Oczywiście da się tą słabość wzmocnić, ale to kosztuje. Dużo. Żeby system był naprawdę pewny i wiarygodny – bardzo dużo. Prowizje nie bez powodu są takie wysokie.

W przypadku BitCoina rozwiązanie było inne: niech wszyscy mają listę! Każdy kto chce, dokładniej mówiąc. Łącznie z tobą. Wystarczy, że zainstalujesz sobie odpowiedni program i masz na swoim dysku pełną listę wszystkich transakcji wszystkich ludzi od początku świata.

I tym sprytnym sposobem wszystkie największe i najdroższe problemy są załatwione. Za darmo!

Gorzej, że na ich miejsce pojawił się problem nowy: jak to zrobić, żeby milion osób miało zawsze aktualną, identyczną listę wszystkich transakcji?

Bo co na przykład, jeżeli pan we Francji dopisze sobie transakcję, w której babka z Alaski wysyła mu kupę forsy? Jeżeli roześle ją wszystkim i ta lista stanie się obowiązująca, to właśnie ukradł babce pieniądze!

Są w takich przypadkach dwa sposoby rozwiązania problemu: albo zrobić jakieś jedno centralne miejsce do rozsądzania takich spraw, albo decydować demokratycznie.

W przypadku BitCoina obowiązuje to drugie.

O szczegółach tutaj nie powiem, bo są trudne i techniczne, chociaż ciekawe. Możecie sobie o tym poczytać gdzie indziej. Powiem tylko tyle, że system jest tak skonstruowany, że zawsze dąży do ustalenia jednej obowiązującej listy transakcji, że zawsze da się sprawdzić co jest prawdziwe a co sfałszowane i że zawsze decyduje większość. Taka jest ogólna zasada. I jak dotąd – sprawdza się doskonale.

W związku z tym facet z Francji, żeby dopisać transakcję „babka z Alaski -> facet z Francji” na którą babka z Alaski się nie zgodziła, musiałby przekonać do fałszerstwa połowę świata. Albo kupić połowę komputerów na świecie.

Dobrze, wiesz już że cały BitCoin to po prostu zapis transakcji, który jest jawny i sobie krąży po świecie. Ale to nie wszystko. Bo BitCoin to zapis transakcji plus zasady dodawania nowych transakcji.

ZASADY

Każdy kto chce może dodać nową transakcję do listy i rozesłać ją w świat. Bo przecież tylko po to masz pieniądze, żeby je kiedyś na coś wydać.

Cała zabawa polega tu na tym, że każdy, kto jest częścią systemu sprawdza czy nowe transakcje zostały dodane prawidłowo. Po co? Żeby nikt nie mógł oszukać a jednocześnie nie było jednego centralnego miejsca, od którego wszystko zależy. Każdy sprawdza każdego.

Sprowadza się to właściwie do dwóch rzeczy: żeby sprawdzić, czy to wysyłający transakcję naprawdę ją wysłał, a jeżeli tak, to czy miał tyle, żeby móc wysłać.

To ostatnie jest akurat banalne. Ale ciekawe i pomaga zrozumieć system. No to opowiem.

Popatrz na ten rysunek:

To ta sama co poprzednio lista transakcji, ale doszły niebieskie strzałki. Co oznaczają? Przy każdej nowej transakcji wskazują na jedną lub więcej poprzednich transakcji, z których pokrywa się to, co chcesz komuś wysłać.

Przykładowo, Ciulek, jeżeli chce wysłać Bolkowi 1 bitcoin, musi najpierw udowodnić, że dostał wcześniej od kogoś 1 bitcoin (albo więcej). W związku z tym wskazuje transakcję, w której dostał 2 bitcoiny od Adama.

Tak, bo w systemie BitCoin nie można wysłać komuś czegoś, czego się wcześniej nie dostało.

To oznacza, że przy tych zasadach nie da się mieć nigdy debetu ani „drukować pieniędzy”.

Jest tylko jeden sposób na powstawanie nowych bitcoinów. Dostaje się je w nagrodę za obliczenia, które sprawdzają uczciwość nowych transakcji. A właściwie się ich nie dostaje, bo dostaje się od kogoś – one są stwarzane. Według akceptowanego przez wszystkich algorytmu. Pojawia się w zapisie co jakiś czas taka transakcja specjalna. Taki bitcoin-nagroda.

Pamiętaj, że i tą transakcję musi zaakceptować przynajmniej pół świata, żeby obowiązywała. Więc każdy, kto po prostu sobie chce dodać pieniądze z niczego, albo dodać więcej niż wynika z obliczeń, zostanie zaraz odrzucony przez większość.

Dobry system.

Pytanie jeszcze, skąd się wzięły pierwsze pieniądze?

Otóż zostały stworzone z niczego. Jak w Biblii. Pula pierwszych 50 bitcoinów nazywa się „genesis block”. I teraz tak sobie krążą.

Każda nowa transakcja wskazuje na poprzednią transakcję, a ta też wskazuje na jakąś, która wskazuje na inną i tak dalej – na końcu zawsze jest wpis z genesis block albo bitcoin-nagroda.

CZY JA TO JA?

A teraz trudniejszy problem: jak sprawdzić czy ty to ty? To ważne.

Inaczej mówiąc: skoro każdy może dopisać do listy wpis „Adam daje Wojtkowi 10 bitcoinów” to co powstrzymuje od tego Wojtka, żeby wysłał coś sobie samemu jako Adam?

Krótko mówiąc: hasło.

O szczegółach technicznych – nie opowiem, bo zanudzę. Powiem tylko tyle, że da się to zrobić bezpiecznie i pewnie. Tutaj się właśnie zaczyna cała ta matematyczno-informatyczno-szyfrologiczna filozofia.

Ale o jednej rzeczy związanej z hasłami muszę powiedzieć, bo jest fundamentalna dla zrozumienia działania systemu. Użyję do tego policjanta.

Raz się zdarzyło tak, że mieszkałem w Krakowie. Przepraszam. Każdemu się może zdarzyć. Odczepiam akurat swój rower od słupa, a tu drogą idzie policjant. I słyszę: „dzień dobry”. Okazało się, że tak mu się akurat zachciało profilaktycznie sprawdzić, czy przypadkiem nie kradnę czyjegoś roweru.

I teraz pytanie: jak policjant sprawdzi czy ten rower jest faktycznie mój?

Dwa sposoby. Pierwszy: sprawdzić wszystkie papiery. Faktury, dowody, zdjęcia, rejestracje i tak dalej.

Drugi, który zastosował ten policjant: „a niech pan wsadzi klucz do zapięcia”. Wsadziłem, odpiąłem, wszystko w porządku. Rower jest mój, do widzenia.

To podejście mnie zaskoczyło z dwóch powodów. Pierwszy: faktycznie, jeżeli znam hasło do zapiętego roweru albo mam klucz od kłódki zamkniętej piwnicy, to jest to dowód, że jestem faktycznym właścicielem. Bo tylko ja mogłem zamknąć tą kłódkę. Drugi: patrz pan, policjant a myśli.

Ale z faktu pod tytułem „masz klucz = jesteś właścicielem” płynie szersza zasada, którą można zastosować przy BitCoinie: jesteś Adamem jeżeli znasz hasło Adama!

Tą zasadę stosuje się w praktyce wszędzie w internecie: konto w serwisie jest twoje kiedy znasz hasło. W przypadku BitCoina stosuje się tą samą zasadę: możesz wysłać transakcję jako Adam i każdy ją zaakceptuje, ale tylko pod warunkiem że udowodnisz, że znasz hasło Adama. Bo jak znasz hasło Adama to zakładamy w ciemno, że ty jesteś Adamem.

Dlatego w świecie Bitcoina:

Znasz hasło = masz możliwość wysyłania pieniędzy.

Masz możliwość wysyłania pieniędzy = masz pieniądze!

Z hasłem w BitCoin nie ma żartów.

Jeżeli zapomnisz hasło – straciłeś pieniądze.

Jeżeli dasz komuś hasło – dajesz mu pieniądze.

Twoje hasło = twoje pieniądze.

Dlatego hasło „dupa” nie jest dobrym pomysłem.

JAK SIĘ ROBI RZECZY NIEMOŻLIWE

Zostało jeszcze tylko jedno pytanie: jakim cudem ktoś, kto nie zna twojego hasła, może sprawdzić, że podałeś prawidłowe hasło? Przecież ci wszyscy ludzie, którzy sprawdzają poprawność nowych transakcji muszą jakoś sprawdzić, że ty to ty. A jak podasz im wszystkim jakie masz hasło, żeby mogli to sprawdzać, to będą mogli sami udawać, że są tobą!

Odruchowa odpowiedź: nie da się.

Prawidłowa odpowiedź: da się. Tylko trzeba być sprytnym.

Pokażę ci na przykładzie jak możesz udowodnić komuś, że znasz hasło do swojego sejfu nie podając mu hasła. I to na odległość. O ile sejf jest lekki.

  1. Wysyłasz komuś swój sejf. Ale otwarty.
  2. On tam wkłada kartę z wymyślonym hasłem. Zamyka i odsyła do ciebie.
  3. Otwierasz sejf, wyciągasz kartę i podajesz tamtemu hasło.

Tada! Udowodniłeś, że to twój sejf, a jednocześnie dalej nikt oprócz ciebie nie zna hasła do sejfu.

Na tej sprytnej zasadzie działa sprawdzanie czy ty to ty w świecie BitCoina. I w ogóle wszędzie w informatyce. Ten otwarty sejf nazywa się „klucz publiczny”, a hasło do niego to „klucz prywatny”. Klucz publiczny możesz bezpiecznie wysyłać każdemu, kto chce sprawdzić czy ty to ty. „Klucz prywatny” trzeba pilnować. Jeżeli dasz go komuś, to tak jakbyś dał mu odcisk palca i swój podpis.

Dzięki takim sposobikom cały zapis transakcji może być całkowicie jawny, a jednocześnie wszystkie hasła są bezpieczne, a prawo własności jasne.

Dzięki temu nie trzeba wysyłać nikomu dowodu, paszportu, zdjęcia, rachunku za prąd.

I TYLE

I to wszystko co powinieneś wiedzieć, żeby rozumieć jak to działa!

Podsumowując w punktach BitCoin to:

  • jeden wielki zapis księgowy +
  • zasady dopisywania do niego nowych transakcji +
  • zapis jest w rękach wszystkich +
  • oparta na szyfrografii identyfikacja podmiotów transakcji +
  • konflikty są rozstrzygane przez zgodę większości uczestników systemu

Umiesz teraz odpowiedzieć na pytanie: „gdzie są moje pieniądze” albo „kto zarządza tym całym BitCoinem”?

BitCoin to nie jest wirtualna waluta, to znacznie więcej. To system, który nie tylko jest wygodnym sposobem płatności internetowych, ale jest częścią internetu. Bez internetu, tanich i powszechnych komputerów i szyfrografii taki system nie mógłby istnieć.

BitCoin wymusza zmianę podejścia do pieniędzy, które zamiast „czegoś co się ma” stają się „czymś co się dostało i można wysyłać”. I jest to znacznie bliższe rzeczywistości.

MINUSY DODATNIE

Żeby nie było tak pięknie powiem na koniec o minusach.

Z samej konstrukcji BitCoina wynika, że bitcoin jako pieniądz służy przede wszystkim do wymiany handlowej. Żeby zakopać i dać wnukom – to nie za bardzo. Raz, że zakopać nie ma czego bo to co „masz” to jedynie zapis który istnieje w tysiącach komputerów na całym świecie + twoje hasło. Możesz ewentualnie zapisać to hasło i zakopać.

Ale większy problem jest taki, że sam z siebie – tak samo zresztą jak dolar, euro i złotówka – bitcoin nie ma żadnej wartości. Jak chcesz mieć coś co ma wartość samo z siebie to kup złoto.

Wbrew pozorom nie jest to duży minus. Paradoksalnie BitCoin nie różni się wiele od złotówek, które mamy na koncie. I jedno i drugie jest tylko zapisem księgowym: pierwszy prowadzą banki, drugi sami posiadacze. Wartość jednego i drugiego jest czysto umowna – wynika z popytu i podaży. Jeżeli jutro nagle nikt nie będzie chciał kupować bitcoina to wartość spadnie do zera. Ale dokładnie to samo stać się może ze złotówką.

Ale pamiętajcie, że popyt na walutę (każdą) nie bierze się tylko z powietrza. Istnieje jedna ważna potrzeba, którą waluta zaspokaja: potrzeba dokonywania transakcji. Możliwość sprawnego, wygodnego, bezpiecznego kupowania i sprzedawania. Dlatego PayPal jest tak popularny – wypełnia właśnie tą potrzebę.

BitCoin wypełnia ją znacznie lepiej i dużo taniej. Transakcje w bitcoinie są szybkie, bezpieczne, bezproblemowe i nikt nie zawraca głowy podatkami, papierami i rachunkami.

Inna sprawa, że raz zaakceptowana przez wszystkich transakcja jest nieodwracalna. Nie ma do kogo napisać reklamacji.

BitCoina nie da się dodrukowywać. Nie ma tu żadnych stóp procentowych, nie ma banku centralnego, nie da się manipulować podażą pieniądza. Nie da się fałszować. Nie da się zablokować konta. Komornik nie wejdzie na konto. Nikt ci nie może zabronić używania twoich pieniędzy – przecież żaden sąd ani urząd nie wymaże ci z pamięci twojego hasła.

Gorzej (dla państwa gorzej – dla nas lepiej): żadne państwo nie jest w stanie zabronić korzystania z bitcoina ani go zlikwidować bez zlikwidowania internetu.

Jaka jest szansa, że BitCoin zniknie?

Papierowe waluty narodowe znikały już wiele razy, więc czemu nie bitcoin? Jeżeli ginie państwo – ginie i waluta. Ale bitcoin nie jest związany z żadnym państwem, istnieje we wszystkich jednocześnie. Nikt go nie emituje, przecież to tylko zapis transakcji. Istnienie zapisu zależy od istnienia komputerów, a możliwość dokonywania nowych transakcji zależy od istnienia internetu.

Więc krótko: póki będzie istnieć internet i będzie chociaż jeden uczestnik systemu – bitcoin będzie istnieć. W dzisiejszych warunkach nie da się wymyślić pewniejszego systemu transakcji.

Równie dobrze można by próbować zlikwidować grę w szachy: póki istnieje ktoś kto zna zasady, póki są one spisane, póki istnieje chociaż jedna szachownica gra w szachy będzie istnieć i każdy będzie mógł zagrać.

Tak samo i bitcoin.

Miałem wymieniać wady, a wymieniam zalety…

Są i wady.

Wadą jest stosunkowo mała liczba uczestników systemu.

Opór ludzi przed nowymi rzeczami jest naturalny, potrzebują czasu, wiedzy, oswojenia.

Wadą jest fakt, że pamiętanie i przechowywanie hasła (klucza) staje się najbardziej krytyczną częścią systemu. Bank czy PayPal opiekują się tobą i dbają o twoje bezpieczeństwo – w przypadku BitCoina musisz być samodzielny. Ale to są i rozwiązania pośrednie – powierzenie bitcoinowego portfela pośrednikom, np. takim: blockchain. Z biegiem czasu na pewno powstanie dużo nowych fajnych rozwiązań.

Wadą może być nieodwracalność transakcji. Z drugiej strony może to być i zaleta. Uważam, że spory powinno się rozwiązywać na poziomie klient-sklep, a nie ręka-kieszeń. Wszystkie transakcje powinny być nieodwracalne.

Wadą jest też dość trudne, panicznie kontrolowane przez państwa, przechodzenie z waluty papierowej na bitcoin i odwrotnie. Państwa nie są w stanie kontrolować przepływu bitcoina, ale tym chętniej kontrolują własne waluty.

I w końcu najbardziej dotkliwą wadą jest koszmarnie niestabilny kurs. Kurs wyrażony w walutach papierowych skacze jak dwa kangury z padaczką w okresie godowym. I trudno się dziwić, bo zjawisko jest tak nowe, a motywacji uczestników tak wiele, że panuje pionierska gorączka. Przesadny entuzjazm na zmianę z przesadną paniką.

Ale pomimo chwilowych gór i dolin, a nawet i mocnych pierdyknięc, w dłuższym okresie kurs BTC cały czas rośnie. Zarobiłem już na tym – zupełnie niechcący – parę stówek. Ten stały wzrost pokazuje, że istnieje na BitCoin popyt inny niż tylko chęć spekulacji. Widocznie trafia on w jakąś potrzebę.

I myślę, że tą potrzebą jest zwyczajna potrzeba używania pieniędzy. Bezpiecznych, wygodnych i pewnych. Ludzie powoli tracą wiarę w waluty papierowe. Powolutku. Ale ten proces przyspieszy. Bo w waluty państw jest wpisany dług państw. Banki centralne przerzucają go od lat na wartość waluty w ramach „ratowania” wszystkiego co ma długi. Ale niedługo wszyscy się przekonają, że nie da się tego robić w nieskończoność bez konsekwencji.

Waluta odpowie inflacją. Państwo odpowie kontrolą kapitału. I jeżeli człowiek będzie mieć do wyboru bitcoin, który może dostawać i wydawać zawsze albo złotówkę, której może wypłacić z bankomatu tylko 500zł na tydzień, to co wybierze?

Myślę, że BitCoin przejmie rolę PayPala i wygryzie go z rynku płatności internetowych. Może to zająć lata, ale w tą stronę wieje wiatr. Sam używam już płatności BitCoinowych na swoich stronach (na przykład tutaj) i jak dotąd działa jak marzenie. Właściwie to byłbym bardzo zadowolony gdyby wszyscy używali tylko BitCoina – zniknęłyby wszystkie problemy z walutami, prowizjami, kartami kredytowymi itd.

Teraz, kiedy wiesz już jak to działa i możesz sam ocenić na ile jest bezpieczne, to mam nadzieję, że się skusisz i założysz „portfel” („portfel” to odpowiednik numeru konta bankowego w systemie BitCoin) i popróbujesz jak to działa w praktyce.

Największy problem – to przestać się bać.

A jeżeli ten tekst ci się przydał i w głowie rozjaśnił, to w ramach „dziękuję” rzuć co łaska na moje nowe radio: www.enklawa.net.

Możesz oczywiście w BitCoinach! Możesz w Lumenach i Ripple!

Dlaczego już nie w Bitcoinach? Przeczytaj mój nowszy tekst: bitcoin i kryptowaluty siedem lat później.

Podziel się z głupim światem