Aktualny czas:0:00Całkowity czas trwania:12:14
0 punktów energii
Uczysz się do testu? Skorzystaj z tych 8 lekcji na temat Pieniądze, bankowość i banki centralne.
Zobacz 8 lekcji
Transkrypcja filmu video (w języku angielskim)
W poprzednim filmie opowiedziałem w jaki sposób transakcje w systemie Bitcoin są dołączane do swego rodzaju ogólnej, publicznie dostępnej księgi zwanej łańcuchem bloków. Dokonują tego węzły w sieci Bitcoin, które nazywane są węzłami generującymi. Za wykonaną pracę otrzymują nagrodę, ponieważ to one przeprowadzają część skomplikowanych operacji obliczeniowych. Nagrodą jest określona ilość bitmonet. Węzły generujące otrzymują nagrody dzięki przeprowadzeniu tak zwanych transakcji coinbase. Poprzez tą transakcję, węzły przydzielają sobie bitmonety. Można powiedzieć, że bitmonety są generowane właściwie z niczego. W związku z tym, nasuwa się pytanie czy istnieje górny limit ogólnej ilości bitmonet. Na szczęście odpowiedź brzmi... Albo, dla niektórych, niestety. odpowiedź brzmi tak. System Bitcoin zezwala na wygenerowanie co najwyżej 21 mln bitmonet. Jest to maksymalna ilość bitmonet, jaka kiedykolwiek może pojawić się w systemie. Żadne bitmonety powyżej tego limitu nie będą generowane ani akceptowane. Tak więc węzły, od chwili, gdy wygenerowane zostanie 21 mln bitmonet, nie będą dostawać nagród za dodawanie bloków transakcji do łańcucha. Węzły generujące wykonujące tą pracę nie będą miały zagwarantowanej nagrody. Ponieważ wszystkie transakcje w systemie są jawne, a węzły wiedzą ile bitmonet zostało wygenerowanych, narzucenie limitu ogólnej ilości monet w systemie jest możliwe. Chciałbym zwrócić uwagę na dwie kwestie dotyczące tego limitu. Po pierwsze, nawet gdy limit zostanie osiągnięty nadal trzeba będzie wykonywać zadania, obecnie realizowane przez węzły. Chodzi na przykład o dołączanie transakcji do bloków i włączanie bloków transakcji do łańcuchów. Kiedy osiągnięty zostanie limit 21 mln bitmonet węzły nie będą automatycznie otrzymywać nagrody w postaci bitmonet za wykonanie dodatkowej pracy. Można zastanawiać się, co motywuje te węzły do wykonywania dodatkowej pracy. Innymi słowy, dlaczego podejmują się tych zadań jeśli nie dostaną w zamian gwarantowanej ilości bitmonet. Obecnie uważa się, że kiedy limit 21 mln bitmonet zostanie osiągnięty, lub kiedy będziemy się do niego zbliżać, opłaty transakcyjne będą odgrywać większą rolę jako zachęta dla węzłów do podjęcia roli węzłów generujących. Zamysł polega na tym, że opłaty transakcyjne mają być wystarczającą zachętą, a coraz więcej ludzi będzie korzystać z bitmonet do czasu osiągnięcia limitu, więc istnieje podstawa by twierdzić, że wraz ze wzrostem liczby użytkowników bitmonet wzrośnie liczba przeprowadzanych transakcji, więc będą zwiększać się zyski z opłat transakcyjnych. Okazuje się, że w całym procesie znalezienie dowodu protokołu proof of work pochłania znacznie więcej mocy niż samo włączanie transakcji do bloków. Nawet jeśli dany blok składa się z dużej liczby transakcji nie zwiększa to znacząco ilości pracy, jaką muszą wykonać węzły aby dołączyć je do bloku. Jeśli otrzymywałyby dodatkowe opłaty transakcyjne mogłoby to zachęcić je do pracy. Warto zauważyć, że wysokość opłat transakcyjnych jest ustalana przez wysyłających. Mają oni prawo wyznaczyć opłatę odpowiednio do wartości transakcji i w ten sposób zachęcić węzły w sieci Bitcoin, aby dodały daną transakcją do tworzonego przez siebie bloku. Mam nadzieję, że jest to zrozumiałe. Druga uwaga dotycząca limitu 21 mln bitmonet dotyczy ułamków monet, które są w tym systemie dopuszczalne. Dotychczas nie poruszałem tego tematu, traktując bitmonety wyłącznie jako jednostki całościowe. Na przykład, Alice mogłaby przesłać Bobowi 10 monet albo 20 monet. Jednak istnieje możliwość dokonywania operacji na ułamkach monet. Najmniejszą dopuszczalną jednostką w systemie Bitcoin jest 0,00000001 BTC. Jest to jedna milionowa bitmonety. Dla wyjaśnienia, nazwa tej jednostki to Satoshi. Jest to skrót od imienia i nazwiska Satoshi Nakamoto. Satoshi Nakamoto jest pseudonimem twórcy bitmonet. Nie wiadomo, czy naprawdę istnieje osoba, która nazywa się Satoshi Nakamoto, jednak tylko on przyznaje się do stworzenia bitmonet. Prawdopodobnie nie jest to imię konkretnej osoby, ale nazwa grupy osób lub organizacji. Ponadto w systemie Bitcoin istnieje kilka innych mechanizmów kontrolnych. Mają za zadanie kontrolować wzrost liczby istniejących bitmonet. Po pierwsze, nagrody dla węzłów generujących z biegiem czasu ulegają zmniejszeniu. Kiedy stworzono system Bitcoin, czyli mniej więcej w styczniu 2009 roku, wysokość nagrody dla węzła generującego wynosiła 50 bitmonet. Procedura przyznawania nagród jest skonstruowana w ten sposób, że po wygenerowaniu 210 000 bloków, czyli kiedy zostanie stworzony blok numer 210 000, kiedy w systemie istnieje 210 000 bloków, wysokość nagrody zmniejszana jest o połowę. Innymi słowy, kiedy zostanie wygenerowanych 210 000 bloków, wysokość nagrody spada z 50 do 25 bitmonet, następnie z 25 do 12,5 itd. Wygenerowanie 210 000 bloków zajmuje mniej więcej cztery lata. Później wyjaśnię, skąd bierze się ta liczba. W chwili kiedy nagrywam ten film, czyli w maju 2013 roku, wysokość nagrody nie wynosi już 50 bitmonet. Obecnie nagroda przyznana w wyniku transakcji generowania wynosi 25 bitmonet. Za około cztery lata zostanie ona zmniejszona o połowę. Proces zmniejszania wysokości nagrody będzie trwał mniej więcej do roku 2140. Przewiduje się, że w 2140 roku zostaną wygenerowane dopuszczalne zasoby bitmonet. Tak więc po roku 2140, bitmonety prawdopodobnie nie będą już generowane. Rok 2140 to moment, kiedy wszystkie bitmonety będą już wygenerowane. Ostatnim sposobem na ograniczenie ilości generowanych bitmonet jest skalowanie poziomu trudności protokołu proof of work. Trzeba tu wspomnieć o kolejnej funkcji wbudowanej w system Bitcoin. Po wygenerowaniu 2016 nowych bloków sieć szacunkowo ocenia, ile czasu to zajęło. System analizuje jak długo zajęło wygenerowanie pierwszego z tych bloków i jak długo zajęło wygenerowanie ostatniego, następnie mierzy cały zaznaczony odcinek czasu. Jeśli ten czas znacznie przekracza dwa tygodnie, protokół proof of work jest upraszczany. Jest on skalowany tak, aby ułatwić generowanie nowych bloków. Z drugiej strony, jeśli wygenerowanie 2016 bloków zajęło mniej niż dwa tygodnie, poziom trudności protokołu proof of work będzie podwyższony. Docelowo wygenerowanie 2016 bloków ma zajmować około dwóch tygodni. Czyli około 14 dni. Spróbuję wyjaśnić, skąd bierze się ta liczba. Jeśli założymy, że wygenerowanie 2016 bloków zajmuje około dwóch tygodni, oznacza to, że potrzeba około 10 minut na znalezienie rozwiązania protokołu proof of work i dołączenie nowego bloku transakcji do łańcucha bloków. Możemy wyliczyć, że jeśli stworzenie nowego bloku w systemie zajmuje 10 minut, po pomnożeniu przez 6 otrzymamy liczbę bloków generowanych w ciągu godziny. Otrzymujemy więc 6 bloków na godzinę, czyli 6 rozwiązanych proof of work na godzinę, co jest równoznaczne ze stworzeniem 6 nowych bloków transakcji. Po pomnożeniu przez 24 godziny i 14 dni, po wykonaniu wszystkich tych obliczeń otrzymamy liczbę 2016. To gwoli wyjaśnienia wspomnianych wartości liczbowych. Chciałbym wyjaśnić jeszcze jedną kwestię odnośnie proof of work. Aby go rozwiązać, węzeł generujący musi znaleźć ciąg cyfr stanowiący dowód. Operacja ta wymaga żmudnych poszukiwań. Jeśli zwiększy się liczba węzłów generujących w sieci, znalezienie rozwiązania będzie zajmowało mniej czasu. Nie chodzi o czas znalezienia dowodu przez konkretny węzeł, ale krótszy czas w obrębie całej sieci. Innymi słowy, upłynie mniej czasu zanim przynajmniej jeden węzeł znajdzie rozwiązanie, ponieważ więcej węzłów będzie poszukiwać go jednocześnie. Mimo że wiele węzłów generujących poświadcza ten sam zbiór transakcji, lub znacznie pokrywające się zbiory transakcji, każdy z nich ma do czynienia z innym protokołem proof of work. Dzieje się tak dlatego, że każdy z węzłów dołącza do bloku zwoją własną transakcję generowania aby otrzymać nagrodę w postaci bitmonet. Transakcja ta jest odmienna dla każdego z węzłów. Dlatego łańcuch zapytań, dla którego węzły szukają odpowiedniego dowodu jest inny w przypadku każdego węzła. Ponieważ w całym procesie wykorzystywane są kryptograficzne funkcje haszujące fakt, że ten element jest odmienny sprawia, że proof of work, który trzeba rozwiązać jest losowy. Prawdopodobne jest więc, że w całej sieci znajdzie się szerokie spektrum rozwiązań. Jeśli w sieci będzie wystarczająca ilość węzłów, można założyć, w czasie 10 minut że jeden z nich znajdzie odpowiednie rozwiązanie. Przynajmniej jeden z węzłów upora się z tym zadaniem i kiedy to się stanie, inne węzły będą mogły od tego momentu pracować na podstawie nowego łańcucha. Podsumowując, protokół Bitcoin zawiera kilka mechanizmów, które mają ograniczyć ogólną ilość bitmonet oraz szybkość ich generowania.