Czym jest Bitcoin?

Geneza Bitcoina

Ida cyfrowej, anonimowej i zdecentralizowanej waluty nie jest nowa – już na początku lat 90 wraz z rozwojem Internetu powstał aktywistyczny ruch wolnościowy kryptografów zwanych „cyberpunk’ami” ,a wraz z nim cyber-wolnościowa filozofia mówiąca o tym, że ochrona prywatności powinna być priorytetem dla otwartego społeczeństwa, a kryptografia i system anonimowych transakcji jest ku temu niezbędna.

Podobieństw do Bitcoina można doszukać się nawet w latach przedwojennych – najstarszy system niezależnej, lokalnej waluty stale będącej w użyciu jest WIR (Wirtschaftsring – krąg biznesu), założony w 1934 roku w Szwajcarii przez Wernera Zimmermanna i Paul Enza. WIR został opracowany z powodu niedoboru fizycznej waluty i braku stabilności globalnego systemu finansowego, a jego głównym zadaniem było zrzeszanie przedsiębiorców i umożliwienie im barterowej wymiany usług i towarów bez użycia gotówki, którą miała zastąpić waluta WIR.

Przed Bitcoinem, w latach 90 było kilka prób stworzenia wirtualnej waluty – kryptograf David Chaum stworzył system DigiCash (ecash), jednak nie został on przyjęty z entuzjazmem. Inne podobne propozycje – bit gold, RPOW, b-money również nie uzyskały szerokiej akceptacji na rynku.

Wszystko zmieniło się w listopadzie 2008 roku, gdy anonimowa osobowość nazywająca się Satoshi Nakamoto (nadal do końca nie jest pewne czy za całym projektem stoi jedna konkretna osoba, czy grupa osób) umieściła w Internecie konspekt (często nazywany manifestem) mówiący o potrzebie stworzenia nowej waluty zwanej Bitcoinem, pt. „Bitcoin: A Peer-to-Peer Electronic Cash System” (tłum. „Bitcoin – Elektroniczny System Pieniężny P2P”).

Nakamoto pisze w niej, że elektroniczna waluta oparta w całości na systemie p2p umożliwiłaby wykonywanie płatności internetowych bezpośrednio pomiędzy użytkownikami, z pominięciem instytucji lub pośredników finansowych.

Wspomina on również, że istnieje potrzeba stworzenia elektronicznego systemu płatności, opartego na kryptografii, a nie zaufaniu do osób trzecich. Mówi on, że głównym problemem obecnego systemu walutowego jest fakt konieczności zaufania w bank centralny, który jest odpowiedzialny za wartość każdej waluty, jak i w banki komercyjne, które trzymają nasze pieniądze, jednocześnie pożyczając je innym ludziom, przechowując jedynie pewien procent w rezerwach.

Aspekt techniczny Bitcoina

Sieć Bitcoin

Sieć płatności Bitcoina jest oparta na kryptograficznym protokole w systemie peer-to-peer (P2P), który zapewnia wszystkim jego użytkownikom takie same uprawnienia, w odróżnieniu od innych systemów, gdzie mamy do czynienia z administratorem i użytkownikiem. Oznacza to, że nie ma jednego centralnego serwera odpowiedzialnego za Bitcoina. Wszyscy użytkownicy z całego świata i ich komputery podłączone do sieci jednocześnie tworzą jak i kontrolują ten system. Mimo tego, że programiści cały czas usprawniają protokół Bitcoina to wszystkie zmiany przed wprowadzeniem są publiczne dostępne i muszą być zaakceptowane przez użytkowników aby zachować pełną kompatybilność systemu co gwarantuje pełną przejrzystość jak i motywację obu stron – developerów jak i użytkowników aby sieć była jak najlepiej rozwijana.

Z perspektywy zwykłego użytkownika „system” Bitcoina to w ogromnym uproszczeniu nic innego jak program zainstalowany na komputerze lub telefonie zawierający wirtualny portfel, umożliwiający wysyłanie i odbieranie Bitcoinów. Instalując ten program tworzy nam się portfel BTC, o którym mowa będzie w kolejnej części.

Adres publiczny i prywatny

Portfel BTC składa się z trzech numerów: klucza publicznego, prywatnego i adresu.
Klucz prywatny jest to ciąg znaków używany do „podpisania” transakcji, zawiera on matematyczny dowód, że dana transakcja pochodzi od właściciela portfela. Podpis ten gwarantuje też, że żadna osoba trzecia nie może wpłynąć na daną transakcję co powoduje, że przelewy te stają się nieodwracalne. Podpis, upraszczając, można porównać do naszego hasła e-mail. Z racji tego, że klucz prywatny pozwala nam na dokonywane transakcji nie powinien on być dostępny dla osób trzecich. Przykładowym kluczem prywatnym jest poniższy ciąg znaków:

5JHZ6Gtmry7RJ1zHscmMe1SZRMVRDR31U4zbGJanf7gKceu8Edo

Każdy klucz publiczny jest generowany z klucza prywatnego za pomocą multiplikacji krzywych eliptycznych. Następnie za pomocą kolejnych metod kryptograficznych jest tworzony adres właściwy, który można porównać do adresu e-mail – jest to de facto nasz adres BTC, na który możemy wysyłać monety. Należy tu zaznaczyć, że operacja odwrotna – wygenerowanie klucza prywatnego z adresu jest praktycznie niemożliwe przy obecnej technologii i dopiero użycie komputerów kwantowych mogłoby zagrozić takiemu stanu rzeczy.

Nasz adres składa się z ciągu 27-34 znaków alfanumerycznych, którego początek zaczyna się na numer 1 lub 3 ,a sam adres nie zawiera dużej litery „O”, dużej litery „I” a także małej litery „l” i numeru „0” aby zapobiec pomyłkom wizualnym przy identyfikacji adresu.

Przykładowy adres wygląda tak: 1LvERSxr1vCXoZt6tGeiiVmxCj7HVndc9R

Można go wygenerować na wiele sposobów i nie potrzeba do tego podłączenia do Internetu, ponieważ dopiero po wykonaniu pierwszej transakcji jest on widoczny w sieci BTC.

Prawdopodobieństwo wygenerowania takiego samego adresu jest bliskie 0%, ponieważ można stworzyć 21^60 (~1.46 x 10^48) liczby adresów. Dla porównania szacuje się, że cały wszechświat zawiera około 10^82 atomów, a ilość ziaren piasku na Ziemi równa jest liczbie 7.5 x 10^18.

Portfel Bitcoina

Istnieje wiele możliwości przechowywania i zarządzania naszymi Bitcoinami. Wyróżniamy między innymi:

1. Portfel na komputerze – jest to jedna z najbezpieczniejszych metod przechowywania BTC, jednak jesteśmy wtedy w pełni odpowiedzialni za nasz portfel, ponieważ klucz prywatny zapisany jest w zaszyfrowanym pliku na dysku. Utrata tego pliku, uszkodzenie lub kradzież dysku powoduje nieodwracalną stratę Bitcoinów, dlatego zaleca się posiadania kopii zapasowej jednego z plików, który instaluje się wraz z programem (plik-portfel nosi nazwę wallet.dat). Obecnie wyróżniamy dwa rodzaje portfela na komputer:

a) Bitcoin Core – jest to oryginalny klient BTC. Umożliwia on całkowitą kontrolę nad swoimi monetami, a dodatkowo służy jako jeden z węzłów (ang. node), które są niezbędne do prawidłowego działania sieci Bitcoin. Służą one do przekazywania i weryfikacji transakcji wewnątrz sieci. Ponadto przechowują one całkowitą kopię łańcucha bloków (rejestr wszystkich transakcji) o którym mowa będzie w dalszej części. Z racji tego, że z biegiem czasu transakcji jest coraz więcej, oryginalny klient zajmuje coraz więcej miejsca na dysku. Obecnie zajmuje on ponad 160GB  co zniechęca zwykłych użytkowników do korzystania z Bitcoin Core. Węzły są jednak kluczowym składnikiem sieci Bitcoin i ich ilość, a także rozproszenie jest niezwykle istotne. Istnieje nawet plan aby umieścić wiele takich węzłów na orbicie ziemskiej w niewielkich satelitach aby zadbać o bezpieczeństwo sieci.

b) MultiBit – jest niewielkim klientem BTC posiadającym wszystkie podstawowe funkcje i jest idealny dla normalnych użytkowników.

2. Portfel Online – umożliwia nam dostęp do konta w każdej chwili z strony internetowej danego serwisu zajmującego się obsługą takich portfeli, jednak z racji udziału osób trzecich jest bardziej ryzykowny. Serwisy te posiadają jednak szereg zabezpieczeń i jeżeli chcemy mieć jeden portfel dostępny na każdym komputerze sprawdzają się one idealnie. Najpopularniejsze portfele online to coinbase.com i blockchain.info

3. Portfel Mobilny – istnieją aplikacje na telefon umożliwiające dostęp do środków w każdej chwili, a dzięki technologii kodów skanowania kodów QR (Quick Response) lub NFC (Near Field Communication) są idealne do natychmiastowych mikropłatności. Utrata telefonu bez uprzedniego zrobienia kopii zapasowej kluczy powoduje utratę Bitcoinów.

4. Portfel Papierowy – jest to mechanizm przechowywania Bitcoinów w formie offline – za pomocą fizycznego dokumentu. Polega on na wydrukowaniu pary kluczy, proces ten powinno się wykonywać na komputerze niepodłączonym do Internetu, wolnym od wirusów. Kod prywatny nie powinien być również zapisany w jakiejkolwiek formie na dysku komputera. Jest to najbezpieczniejsza, długoterminowa metoda przechowywania większej ilości Bitcoinów, jednak po wysłaniu Bitcoinów na inny adres z papierowego portfela nie powinno się już z niego korzystać

5) Portfel Sprzętowy – jest to specjalny rodzaj portfela bitcoin, który przechowuje prywatne klucze posiadacza portfela w bezpiecznym, fizycznym urządzeniu.

Portfel taki ma duże zalety w stosunku do standardowych portfeli, które instalujesz jako program na komputerze/telefonie: Klucze prywatne są przechowywane w chronionym obszarze mikrokontrolera i nie można ich przenieść z urządzenia w postaci zwykłego tekstu. Portfel taki jest także odporny na wirusy komputerowe, które mogą przejąć klucze prywatne ze standardowych portfeli. Dodatkowo w większości przypadków oprogramowanie takich portfeli jest open-source, co pozwala użytkownikowi zweryfikować bezpieczeństwo takiego portfela. Przykładem portfela sprzętowego jest Trezor lub Ledger.

Łańcuch bloków

Sieć Bitcoina opiera się na powszechnie dostępnej, rozproszonej bazie danych zwanej łańcuchem bloków (ang. blockchain), w którym są zapisywane i weryfikowane wszystkie transakcje w formie bloków.

źródło: bitcoin.org

Wszystkie bieżące transakcje przed potwierdzeniem są zbierane i zapisywane średnio co 10 minut w bloku. Aby blok został zatwierdzony muszą zostać spełnione ścisłe reguły oparte na kryptografii (a dokładniej na podstawie algorytmu SHA-256), co oznacza, że musi zostać wykonany dowód pracy (ang. proof of work), który polega na wyliczeniu przy określonym prawdopodobieństwie danego hasha (ciąg cyfr i liter), który zawiera w sobie informację o bieżących transakcjach i dodatkowo hash poprzedniego bloku. Pracę tę wykonują kopacze (ang. miners) udostępniając swoją moc obliczeniową. Z racji tego, że komputery bez problemu produkują hashe w oparciu o dane, Satoshi wprowadził system trudności z dodatkową, losową zmienną tymczasową (ang. nonce). Polega to na tym, że system zaakceptuje tylko określony hash mający określoną ilość zer na początku. Im większa moc obliczeniowa tym większa trudność odgadnięcia hasha, a gdy to nastąpi cały system jest o tym informowany i nowy blok zostaje „odkryty”. Umożliwia to zachowanie pełnej spójności i chronologii transakcji, a także zapobiega jakiejkolwiek edycji danych. Trudność szyfrowania danych w bloku ustalana jest na podstawie obecnej mocy obliczeniowej i zmieniana co 2016 bloków (około 2 tygodnie) tak aby generowanie nowego bloku zajmowało 10 minut – jeżeli bloki generowane są częściej trudność jest adekwatnie dostosowywana.

Trudność wydobycia możemy sprawdzić przykładowo tutaj i jak widzimy na wykresie – przez pierwsze lata trudność była znikoma, w porównaniu do tego jaka jest teraz. Jest to spowodowane faktem, że w krótkiej historii wydobywania Bitcoina możemy wyróżnić kilka etapów, z których każdy charakteryzował się coraz to większą mocą obliczeniową urządzeń wykorzystywanych do kopania.

Pierwszym etapem było wydobywanie monet tak jak to zaplanował i zaimplementował w programie Satoshi Nakamoto – przy wykorzystaniu procesorów umieszczonych w komputerach. Mógł to robić każdy, kto chciał, a z powodu tego, że na początku zainteresowanie Bitcoinem było stosunkowo niewielkie wydobywanie takie były dość efektywne. Obecnie wykorzystując zwykły procesor kopanie jest nieefektywne, ponieważ koszty poboru mocy znacznie przekraczają ewentualny zarobek. Spowodowane jest to faktem, że pewnym czasie odkryto, że używanie kart graficznych jest znacznie efektywniejsze (nawet 100 razy bardziej) przy wykonywaniu dowodu pracy opisanego wcześniej.

Kolejny momentem, który przyczynił się do takiego wzrostu trudności było rozpoczęcie używania specjalnych układów scalonych FPGA, które były programowane tak aby obliczały algorytm wbudowany w system Bitcoina.
Ostatnim etapem trwającym do dzisiaj, jest używanie zaprojektowanych od samego procesu produkcyjnego układów ASIC, które mogą być wykorzystywane tylko do jednego celu. Są one o wiele efektywniejsze w wydobywaniu Bitcoinów (co widać na wykresie z wzrostem trudności wydobycia), a zostały wprowadzone tak późno z powodu tego, że koszt ich zaprojektowania był bardzo duży i mogły się tego podjąć firmy z pokaźnym kapitałem. Obecnie rynek zajmujący się wydobywaniem Bitcoinów jest wart miliony dolarów, powstają specjalne placówki, w których wydobywa się Bitcoiny.  Tak potocznie zwane duże „farmy” Bitcoinów potrafią generować miesięczny przychód w wysokości milionów $. Obecnie układy ASIC są cały czas ulepszane (zmniejsza się ich wielkość, a co za tym idzie pobór prądu). Analogii możemy się doszukać w projektowaniu zwykłych procesorów do komputerów, które na przestrzeni lat stawały się coraz mniejsze i bardziej wydajniejsze. Nie doświadczymy jednak w najbliższych latach kolejnych przełomowych etapów, ponieważ układy ASIC są produktem końcowym w obecnym postępie technologicznym.

Tworzenie monet

Kopacze lub górnicy (ang. miners) za swoją pracę uzyskują Bitcoiny z prowizji, która jest zmienna w zależności od ilości transakcji w sieci jednak opłata ta nie jest zależna od kwoty, którą wysyłamy. Czyli koszt wysłania BTC o wartości 1$ może być porównywalny do kosztu przesłania kilkuset BTC o wartości milionów USD.

Górnicy otrzymują także nowe monety, które są tworzone z każdym blokiem. Obecnie trudność wydobycia jest na tyle duża, że kopacze łączą swoją moc w kopalniach (ang. pool) i ewentualne nagrody dzielą proporcjonalnie do wkładu mocy obliczeniowej w kopalni.

Podaż Bitcoina jest ściśle ograniczona. Na początku za każdy nowo odkryty blok nagroda wynosiła 50 BTC i docelowo co cztery lata ma spadać o 50%. Na wykresie umieszczonym na dole strony może zauważyć, że na chwilę obecną zostało wykopanych ponad 17 milionów Bitcoinów, a nagroda za blok wynosi 12.5 BTC. Pod koniec roku 2020 ma zostać wykopane około 87.5 % wszystkich monet, a docelowa wartość – 21 milionów zostanie osiągnięta w 2140 roku. Wraz ze spadkiem nagrody górnicy będą utrzymywać się z prowizji na transakcje. Mimo, że ilość Bitcoinów w obiegu jest ograniczona, nie będzie to stanowiło problemów z rozliczeniem, ponieważ jeden Bitcoin może być podzielony do 8 miejsc po przecinku. Najmniejsza wartość (0.00000001 BTC) często nazywana jest jako 1 satoshi.

Zakładając, że wartość Bitcoina będzie rosła w czasie z powodu malejącej podaży można go uznać za walutę deflacyjną – każdy zgubiony portfel powoduje zmniejszenie się ilości monet w obiegu, a wraz z upływem lat rynek nie będzie zalewany nowymi monetami.

 

źródło: commons.wikimedia.org

Autor: Michał Dziedzic

Pin It on Pinterest