Robotyczni górnicy kopiacy na tle metalowego bitcoina.

Jak działa Bitcoin?

Ich maleńkie procesorowe serca uderzają miliard razy na sekundę. Pracują 24 godziny na dobę, 7 dni w tygodni, w Wigilię, w Sylwestra i na Wielkanoc. Nazywają je górnikami. Ale to błędna nazwa, ponieważ niczego nie wydobywają – raczej frezują. Szlifują cyfrowe bloki, aby dokładnie do siebie pasowały. Tylko tyle. I aż tyle. Wszystko po to, żeby utrzymać przy życiu najbardziej rzetelny rejestr, jaki kiedykolwiek powstał na planecie Ziemia – rejestr transakcji monety bitcoin.

Mark Justin Valek, ekspert finansowy Incrementum, firmy z siedzibą w Liechtensteinie, która zajmuje się doradztwem inwestycyjnym, zakończył przemówienie, tak jak Budda rozpoczyna swoje nauki: – Nie ufajcie mi – powiedział Valek w audytorium Schumana, do liczącej około 500 osób publiczności, która przez ostatnie półtorej godziny w skupieniu słuchała jego wykładu na temat kryptowalut. Wystąpienie miało miejsce 4 marca 2018 r. w ramach organizowanego przez szkołę biznesu Asbiro kampusu tematycznego Liberty Fest na Uniwersytecie Kardynała Stefana Wyszyńskiego w Warszawie.

Po oświadczeniu zrobiło się cicho. – Jeśli chcesz zainwestować w bitcoiny lub inne kryptowaluty, nie ufaj mi – kontynuował po sekundzie Valek – Ani nikomu innemu. Zdobądź rzetelną wiedzę, abyś zrozumiał w jaki sposób funkcjonuje cały system. Dopiero wtedy możesz właściwie ocenić ryzyko. I dopiero wtedy jesteś gotowy do w pełni świadomej decyzji: wchodzę w to, nie wchodzę, uczę się dalej. A jeśli podejmiesz decyzję „na tak”, na początku nie inwestuj więcej niż możesz bezboleśnie stracić. To potencjalnie lukratywny, lecz ciągle ekstremalnie niebezpieczny interes.

Jakby na potwierdzenie tych słów w dniu konferencji za jednego bitcoina można było otrzymać około 39 000 PLN; w chwili, kiedy powstaje ten artykuł, czyli dokładnie 5 dni później, cena wynosi „tylko” 29 000 PLN. Gdyby autor niniejszego tekstu wtedy sprzedał, a dzisiaj kupił, mógłby czterema kliknięciami myszką, zwiększyć o 30 proc. swój stan posiadania w BTC. Ale zarówno zakup, jak i sprzedaż wiążą się z ryzykiem – bitcoin mógłby przecież poszybować w tym czasie w drugą stronę – nawet w okolice 100 000 PLN. Równie dobrze mógłby spaść w otchłań.

Kurs BTC nie dość że niestabilny, to jeszcze z ogromną amplitudą. Trzeba mieć też ogromną wiedzę, aby wprawnie żeglować po tak wzburzonym morzu.

Robert Kiyosaki, którego książki od lat pomagają ludziom na całym świecie w odnoszeniu sukcesów, ujmuje to tak: w biznesie nie ma decyzji ryzykownych i ostrożnych. Są tylko decyzje głupie i mądre. Jeśli nie wiesz, co zrobić, możesz zrobić tylko jedno: zdobyć więcej wiedzy. W artykule wyjaśniamy, jak od strony technicznej działa blockchain, czyli sieć wymiany cyfrowej monety zwanej bitcoinem. Tak żebyś był o krok bliżej od kluczowej dla ciebie decyzji, o której wspomina Valek: wchodzę w to, nie wchodzę, uczę się dalej. I pamiętaj o jednym: nie robiąc nic, też podejmujesz decyzję – zgadzasz się na stratę tego, co potencjalnie mógłbyś zarobić.

Kręgosłup systemu, czyli blockchain

Blockchain, czyli łańcuch bloków, często bywa mylony z bitcoinem. W rzeczywistości blockchain to tylko technologia, ale tak rewolucyjna, że często wprowadzenie jej jest porównywane do takiego wynalazku jaką jest internet. Jeśli nie lubisz szczegółów technicznych, skorzystaj z tej metafory: łańcuch bloków to wielka księga wieczysta. Nikt nie jest jej właścicielem, a dostęp do niej może mieć każdy. Jest całkowicie transparentna, a raz zapisane i zatwierdzone przez kolektyw zmiany są nieodwracalne. Jest także odporna na przejęcie kontroli oraz fałszerstwa.

Fizycznie blockchain to po prostu plik. Przykładowo łańcuch bloków, który powstał w 2009 roku i od tamtej pory śledzi wszystkie (dosłownie wszystkie) transakcje w pierwszej cyfrowej monecie naszego uniwersum, bitcoinie, ma dziś 203 GB. Co więcej, ten plik nieustannie się powiększa – średnio co 10 minut dołączany jest do niego nowy blok, w którym zapisane są transakcje z maksymalnie ostatniej godziny. Blok ma wielkość 1 MB dla tradycyjnej waluty bitcoin (BTC); jego następca bitcoin cach (BCH), który narodził się 1 sierpnia 2017, ustanowił limit nowego bloku na poziomie 8 MB, co znacznie poprawiło szybkość zawieranych transakcji.

Magia cyfrowego świata

Blockchain bazuje częściowo na wynalazkach już dość leciwych, których używamy masowo od co najmniej ćwierćwiecza. Ale bez zrozumienia, o co w każdej z nich dokładnie chodzi, nie wyjaśnimy idei łańcucha bloków. Te technologie to: funkcje haszujące, szyfrowanie asymetryczne, protokół P2P oraz najnowsza, jeszcze bez oficjalnej polskiej nazwy: Proof of Work (PoW), co można przetłumaczyć jako „dowód pracy”. Brzmi przerażająco, ale nie taki diabeł straszny, jakim go malują.

Funkcja haszująca lub mieszająca lub, jeszcze inaczej, funkcja skrótu jest zaprzeczeniem wszystkiego, do czego przywykliśmy. A dzieje się tak, ponieważ w życiu codziennym oczekujemy ciągłości: jeśli obrócę kierownicę samochodu minimalnie w lewo, to tor ruchu auta również zmieni się prawie niezauważalnie. Jeśli obrót będzie większy, również skręt będzie ostrzejszy. Mówiąc inaczej, przywykliśmy do tego, że rzeczy dzieją się stopniowo, dzięki czemu możemy je kontrolować.

Funkcja skrótu powinna być z natury nieciągła i nieprzewidywalna – najmniejsza zmiana argumentu, powinna dawać niemożliwy do przewidzenia wynik haszowania, czyli stosowania funkcji skrótu na tym argumencie. W naszym przykładzie, muskając kierownicę moglibyśmy skończyć na drzewie – zarówno tym po prawej stronie drogi, jak i po lewej – a obracając ją o 90 stopni dalej jechać prosto.

Praktycznie wygląda to tak: dowolnie długi plik, obojętnie co zawiera: nagranie „Obrazków z wystawy” Modesta Musorgskiego w formacie MP3, program do archiwizowania danych (.EXE) czy ostatni film z Danielem Craigiem, to po prostu duża liczba. Często bardzo duża. W ostatnim przypadku – jeśli będzie to kopia z płyty Blu-ray – składa się ona z grupy kilku miliardów bajtów. Funkcja haszująca – np. któraś z wynalezionych przez NSA funkcji SHA – bardzo szybko skanuje taki plik i przypisuje mu niewielką w porównaniu z jego rozmiarem liczbę – dla SHA-2 będzie to 32 lub 64 bajty, w zależności od wersji.

I czas na magię. Obliczona wartość funkcji to tzw. hasz pliku. Wystarczy, że w tym – powiedzmy dwugodzinnym – filmie, zmienimy w którejś z klatek jeden – dosłownie jeden – piksel. To jest nie do zauważenia dla nikogo – nawet dla obdarzonego hiper wzrokiem Supermana. Ale funkcja haszująca wychwyci to natychmiast – kolejny przebieg zmienionego o jeden bit pliku da kompletnie inny hasz.

Dlatego tego rodzaju mechanizmy doskonale się nadają do tworzenia cyfrowych odcisków palca. Każdy plik ma odmienny podpis czy też sygnaturę. A teraz czas na więcej magii. Odwróćmy problem, tworząc taką oto zagadkę: oto hasz nowego pliku z filmem, w którym zmieniliśmy jeden piksel – i tylko jeden! Użyj go i odpowiedz na pytanie – który piksel zmieniliśmy.

I właściwie, całkiem niepostrzeżenie zbliżyliśmy się do sedna artykułu, czyli odpowiedzi na pytanie, co robią mali górnicy wydobywający bitcoina. Otóż, jakkolwiek dziwacznie by to nie zabrzmiało, oni głównie rozwiązują zagadki. Takie jak ta z filmem, ale mniej skomplikowane, bo działające na plikach o rozmiarze dokładnie 1 MB – standardowa wielkość bloku w łańcuchu bloków opisującego bitcoina. A wykopanie monet ma miejsce, gdy… Ale nie uprzedzajmy wypadków.

Hasz z pliku to okamgnienie, plik z haszu to wieczność

Funkcje haszujące mają jeszcze jedną ciekawą właściwość: otóż są z natury jednokierunkowe – łatwo obliczyć hasz na podstawie pliku; odtworzenie pliku na podstawie haszu wymaga pracochłonnej metody prób i błędów. Innymi słowy – nie istnieje efektywnie obliczalna funkcja odwrotna dla dobrze skonstruowanej funkcji mieszającej.

Jeśli masz zacięcie programistyczne, oto przepis na prostą funkcję mieszającą, abyś mógł sam to poczuć: weź dowolną liczbę naturalną, podnieś ją do 3 potęgi dodaj 5, podziel przez liczbę 11 i jako wynik podaj resztę z tego dzielenia. Jest oczywiste, że reszta z dzielenia przez jedenaście nie może być większa niż 10, stąd ta funkcja dowolnej liczbie naturalnej przypisuje wartość od 0 do 10. A teraz odpowiedz na pytanie: dla jakiego X z przedziału 0 do 10 ta funkcja przyjmuje wartość 7?

Patrząc na tabelę wartości funkcji – poniżej – szybko dostrzeżesz, że jedyny sposób na rozwiązanie tej zagadki to metoda prób i błędów – nie ma innej drogi! Mamy 11 możliwości. Jeśli jeden przebieg haszujący trwa sekundę, to średni czas oczekiwania na wynik wyniósłby 5 i pół sekundy, ponieważ statystycznie na właściwą odpowiedź trafimy w połowie pracy. W innych słowach: wartość oczekiwana ilości prób kryptograficznych wyniesie w tym przypadku 5,5.

Prosta funkcja haszująca przestawiająca w sposób pseudolosowy liczby naturalne z przedziału od 0 do 10. Z tabeli wartości widać, że jest to funkcja wzajemnie jednoznaczna – każda z liczb ma swój odpowiednik losowy i odwrotnie. Tylko tego typu zagadki są jednoznacznie rozwiązywalne

Pancerna walizka i zaufany bankier

Szyfrowanie symetryczne to coś innego niż haszowanie plików, ale jest proste do zrozumienia. Co do zasady przypomina zamykanie wiadomości w pancernej walizce. Ścianki walizki wykonano z tytanu i spieków porcelitowych, więc nie straszne jej korundy i diamentowe piły. Wyposażono ją też w zamek nie do wyłamania, więc spokojny o zawartość zamykasz bagaż na klucz i wysyłasz do zaufanego banku za pośrednictwem poczty. Bankier, z którym wiąże cię umowa cywilno-prawna, ma jedną, poświadczoną notarialnie kopię twego klucza. Jeśli cię okradną, wiesz kto może być tego przyczyną – no przecież nie ty.

W tej analogii wiadomość to plik, który chcesz przesłać, zamek to algorytm, a twardość pancerza walizki to odporność tego algorytmu na złamanie metodą brute force, czyli przez sprawdzanie wszystkich możliwych kombinacji. Najważniejsze jest to, że klucz jest tylko jeden i służy zarówno do otwierania, jak i zamykania walizki – tak jak w normalnym życiu i każdym normalnym zamku.

Ale świat cyfrowy taki normalny to do końca nie jest. Istnieją w nim bowiem walizki, które działają zupełnie nieintuicyjnie i ciężko jest znaleźć analogię do czegoś, co znamy. Otóż pewna grupa algorytmów szyfrujących ma własności asymetryczne. Zrozumienie, jak one działają, jest ekstremalnie ważne, aby dostrzec całe piękno i bezpieczeństwo technologii łańcucha bloków – zrozumieć, a nie brać na wiarę.

Jeden klucz to za mało

Przede wszystkim w szyfrowaniu niesymetrycznym mamy dwa klucze: prywatny i publiczny. Jakie relacje je łączą? Otóż klucz prywatny robisz sobie sam – np. rzucając monetą i zapisując kolejne orły jako „1”, a reszki jako „0”. Jeśli czynność tę powtórzysz 256 razy, to właśnie opracowałeś własnoręcznie klucz o długości 256 bitów – bardzo mocny. Nigdy, nikomu i pod żadnym pozorem nie pokazuj swego klucza prywatnego. Zapisz go na kartce albo odłącz się od sieci i zapisz w pliku tekstowym.

W życiu nie rzucasz monetą, lecz najczęściej korzystasz z gotowej aplikacji, która robi to za ciebie, tylko szybciej – generuje liczbę pseudolosową i zapisuje ją lokalnie. Następnie ta sama aplikacja używa algorytmu jednokierunkowego, takiego jak funkcja mieszająca, który tworzy na podstawie klucza prywatnego klucz publiczny. Uwaga: stworzyć klucz publiczny, jeśli ma się prywatny, jest łatwo. Ale działanie w drugą stronę, czyli uzyskanie prywatnego na podstawie publicznego, jest w praktyce niemożliwe.

Mamy teraz dwa klucze: prywatny – wylosowałeś go i tylko ty go znasz oraz publiczny, który wyliczyłeś i rozsyłasz go każdemu – bankierowi, ale i hakerowi, próbującemu przechwycić informacje, które wymieniasz z bankiem. A niech ma! I tak nic nie wskóra, bo od teraz będziesz przesyłał wiadomości w walizce całkowicie już magicznej.

Możesz również stworzyć parę kluczy akceptowalnych przez Bitcoina w serwisie online – ale do razu wyjawiasz mu swój klucz prywatny.

Magiczna walizka na dwa klucze

Magia szyfrowania asymetrycznego polega na bardzo prostym zjawisku: wiadomość zaszyfrowaną kluczem publicznym można otworzyć tylko kluczem prywatnym. W analogii z walizką działa to tak, jakby po przekręceniu klucza publicznego zmieniał się kształt zamka w taki sposób, że od teraz pasuje do niego tylko i wyłącznie klucz prywatny. To niezwykle mylące, ale ważne rozróżnienie – kluczem publicznym zaszyfrujesz, ale nie odszyfrujesz. Rozszyfruje tylko ten, który ma klucz prywatny.

Komunikacja działa teraz tak: najpierw bank prosi o twój klucz publiczny. Wysyłasz go otwartym tekstem, więc przechwytuje go i haker. Ale to nic mu nie da, chociaż algorytm szyfrujący jest dostępny dla każdego. Haker może nawet udawać ciebie, przychwytując informacje zaszyfrowane twoim kluczem publicznym. Dopóki nie ma dostępu do klucza prywatnego, nie jest w stanie rozszyfrować wiadomości zgodnie z zasadą: publiczny szyfruje, prywatny deszyfruje.

To zjawisko służy też do jednoznacznej weryfikacji. Jednak wtedy asymetryczny algorytm szyfrowania, taki jak na przykład RSA, na którym oparta jest m.in. karta kredytowa Visa, musi posiadać jeszcze jedną własność: symetrię pomiędzy kluczami – informacje zaszyfrowane kluczem publicznym można odszyfrować tylko prywatnym, ale i w drugą stronę: informacje zaszyfrowane kluczem prywatnym muszą się dać szybko odszyfrować kluczem publicznym.

Oto przykład z życia: jeśli chcesz potwierdzić w cyfrowym świecie swoją tożsamość albo – bardziej namacalnie – potwierdzić, że karta Visa, którą wkładasz właśnie do bankomatu to ta jedyna, niepowtarzalna, która ma w chipie zaszyty i wygenerowany losowo w procesie produkcji klucz prywatny, to działasz następująco. Bierzesz dowolną informację np. zdanie z Biblii: „Na początku było słowo”. Szyfrujesz tę informację swoim kluczem prywatnym i robisz z niej pakiet autoryzacyjny. W tym celu z przodu podajesz swój klucz publiczny, za nim zaszyfrowaną prywatnym wiadomość, a na końcu tę samą wiadomość jako tekst jawny, czyli: „Na początku było słowo”. Teraz łączysz się z bankiem i przekazujesz mu pakiet. Bank odbiera to tak: dobija się do nas ktoś, kto twierdzi, że jest prawowitym właścicielem klucza publicznego, do którego dowiązana jest u nas karta Visa numer taki i taki, do której dowiązane są pieniądze z konta tego i tego. Sprawdźmy to.

Następnie bank odrywa od wiadomości twój klucz publiczny, deszyfruje nim drugą część pakietu – tę zaszyfrowaną przez ciebie kluczem prywatnym – i porównuje z wiadomością, którą przesyłasz otwartym tekstem. Jeśli obydwie informacje są identyczne, wniosek może być tylko jeden: tylko osoba posiadająca klucz prywatny może dokonać tej sztuczki – komuś innemu zajęłoby to eony lat, ponieważ musiałby na podstawie klucza publicznego wygenerować prywatny. Autoryzujemy, zatwierdzamy, pobieramy prowizję, zapraszamy ponownie.

Alternatywą dla ciężkich wymagających obecności na lokalnym dysku całego blockchaina, jest portfel Electrum, który korzysta ze wsparcia w Sieci. Zalety: nie obciąża. Wady: może zdradzić.