Szukaj
Zamknij
Nowe Technologie

Czym jest do cholery Blockchain?

Masz przed sobą naprawdę coś wyjątkowego – to nie jest mój tekst ani nawet napisany po polsku (ok, pierwotnie). Kiedy zobaczyłem i przeczytałem tekst Mohita Mamorii o blockchainie stwierdziłem, że jest to jeden z najlepszych tekstów edukacyjnych o tej technologii. Widać nie tylko ja tak uznałem bo ten artykuł był powszechnie cytowany w najlepszych zakątkach internetu.

Impulsywnie napisałem do Mohita na Facebooku i Twitterze z zapytaniem czy mogę przetłumaczyć tekst na język polski. Na odpowiedź nie musiałem długo czekać. Zgodził się! Thx Mohit :)

Zapraszam zatem do lektury – mam nadzieję, że trud tłumaczenia (Tomek Jurek) i mojej redakcji dostarczy Ci fajnej i pożytecznej wiedzy.

Witaj! Oto najlepszy przewodnik napisany po polsku za pomocą którego łatwo zrozumiesz czym jest Blockchain!

Jeśli nie mieszkasz w jakiejś zapomnianej jaskini to jestem pewien, że takie słowa jak Bitcoin czy Blockchain musiały obić ci się o uszy. W końcu to ulubiony temat mediów w ostatnim czasie – kryptowaluty to bardzo chwytliwe hasło. Mówią o tym nawet ludzie, którzy w życiu nic nie „wykopali” i nie wiedzą jak działają kryptowaluty. W swoim gronie przyjaciół mam więcej osób nietechnicznych niż technicznych, które od wielu tygodniu męczą mnie prośbami o wyjaśnienie tego nowego trendu.

Zapewne są tysiące innych ludzi, których zagadnienie kryptowalut (bitcoin!) ogromnie nurtuje. Kiedy pojawia się taki temat, przychodzi też czas, kiedy warto o czymś napisać w taki sposób, żeby każdy mógł takie „zagubione dusze” skierować do konkretnego źródła – taki jest cel tego artykułu – napisanego prostą polszczyzną , którą zrozumie każdy „Kowalski” polskiego internetu.

Blockchain: do czego nam w ogóle potrzebne coś tak skomplikowanego?

„Każdy skomplikowany problem ma rozwiązanie, które jest jasne, proste i błędne” – H. L. Mencken

W przeciwieństwie do każdego innego postu w internecie, zamiast definiować czym jest Blockchain, postaram się pomóc wam zrozumieć jaki rozwiązuje problem.

Wyobraź sobie, że Janek, jest twoim najlepszym kumplem. Podróżuje zagranicą i piątego dnia swoich wakacji dzwoni do ciebie i mówi: „Hej, stary, potrzebuję trochę kasy. Całkiem się spłukałem.”

Odpowiadasz: „Hej, już Ci robię przelew” i odkładasz słuchawkę.

Następnie dzwonisz do kierownika swojego banku i mówisz mu tak: „Proszę przesłać 1000 PLN z mojego konta, na konto Janka.”

Ten odpowiada: „Tak, już się robi.”

Otwiera rejestr bankowy, sprawdza czy masz na swoim rachunku wystarczająco dużo środków żeby zrobić przelew 1000 PLN na konto Janka. Ponieważ jesteś bogaty (gratulacje!) i masz mnóstwo kasy kierownik banku robi w swoim rejestrze następujący wpis:

Uwaga: nie używamy w tym przykładzie żadnych systemów komputerowych, żeby nie komplikować sprawy. Pokażemy tak jak to kiedyś się robiło – za pomocą kartki papieru.

Dzwonisz do Janka i mówisz mu tak: „Przelałem kasę. Następnym razem jak pójdziesz do banku możesz wypłacić 1000 PLN, które właśnie ci wysłałem.”

Co tu się właśnie wydarzyło? Ty i Janek zaufaliście bankowi na tyle, żeby powierzyć mu przekazanie między wami pieniędzy. W rzeczywistości pieniądze w postaci fizycznych banknotów nie zmieniły miejsca. Wszystko, co było potrzebne, to wpis w rejestrze transakcji. A jeszcze bardziej precyzyjnie, konieczny był wpis w rejestrze, którego ani Ty ani Janek nie kontrolujecie i który do was nie należy.

I na tym polega problem obecnego systemu.

Polegamy na osobach postronnych, które wykonują za nas czynności wymagające naszego wzajemnego zaufania.

Przez długie lata byliśmy zależni od tych pośredników, bez nich w podobnych sytuacjach nie mogliśmy funkcjonować. Zapytacie: „w czym problem, dlaczego bycie zależnym od nich jest złe?”

Problem w tym, że pośrednik jest jeden. Jeśli ktoś chciałby spowodować kompletny chaos w społeczności wystarczy zakłócić działanie tej jednej osoby / tego jedynego pośrednika, czy to celowo, czy nieumyślnie.

• Co jeśli jego rejestr spłonie w wyniku pożaru?
• Co, jeśli przez pomyłkę, kierownik twojego banku zapisze kwotę 1500 PLN zamiast 1000 PLN?
• A co jeśli zrobi to specjalnie?

Przez lata trzymaliśmy wszystkie „jajka” w jednym koszyczku, na dodatek nie swoim.

Czy nie da się stworzyć systemu, w którym przelewy można by było robić bez udziału banku?

Aby odpowiedzieć na to pytanie, musimy drążyć temat dalej i zadać sobie kolejne, jeszcze lepsze pytanie (w końcu tylko te fajne pytania prowadzą do uzyskania bardziej precyzyjnych odpowiedzi).

Zastanów się przez chwilę, co w ogóle oznacza przelewanie pieniędzy? To tylko wpis w rejestrze. Dlatego istotniejsze jest następujące pytanie:

„Czy da się prowadzić taki rejestr między nami, zamiast powierzać to komuś obcemu?”

I na to warto poszukać odpowiedzi, której pewnie się już domyślacie. Tak, Blockchain jest właśnie odpowiedzią na to doskonale zadane pytanie.

To metoda pozwalająca rejestrować transakcje pomiędzy użytkownikami pieniądza, którzy używając jej nie muszą polegać na żadnej osobie postronnej.

Nadążacie? Dobrze. Bo teraz, kiedy w waszych głowach rodzą się kolejne pytania, porozmawiamy o tym jak działa taki rozproszony rejestr.

OK, ale jak to działa?

Metoda ta wymaga udziału wystarczającej liczby ludzi, którzy nie chcą polegać na osobach postronnych. Tylko wtedy taka grupa może sama utrzymywać własny rejestr.

„Kupienie kilku Bitcoinów może mieć sens, na wypadek jakby miał zadziałać. Jeśli wystarczająco dużo ludzi pomyśli w ten sposób to zdanie staje się samo spełniającą się przepowiednią.” – Satoshi Nakamoto, 2009.

Ile to jest wystarczająca liczba? Przynajmniej trzy. Na przykład, załóżmy, że 10 osób chce przestać korzystać z usług banków. Wszyscy zgadzają się, że będą nieustannie wzajemnie przechowywać szczegóły wszystkich swoich rachunków i transakcji – bez potrzeby przechowywania danych dotyczących swojej tożsamości.

1. Pusty katalog

Każdy na początek ma pusty katalog. W miarę jak będziemy budować swój rejestr każda z tych osób będzie do swojego katalogu dodawać kolejne karty. Ten zbiór kart będzie tworzył rejestr z zapisem transakcji.

2. Co się dzieje, gdy dojdzie do transakcji

Każdy Uczestnik naszej sieci weźmie czystą kartę i długopis i przygotuje się do zapisania każdej transakcji jaka będzie miała miejsce w ramach całego systemu.

I teraz, jeśli Uczestnik nr 2 zechce przesłać 10 PLN do Uczestnika nr 9:

Aby do transakcji mogło dojść Uczestnik nr 2 krzyknie do wszystkich: „Chcę wysłać 10 PLN do Uczestnika nr 9. Zapiszcie wszyscy na swoich kartach, że doszło do takiej transakcji.”

Każdy sprawdza, czy Uczestnik nr 2 ma wystarczająco dużo kasy, żeby przesłać 10 PLN do Uczestnika nr 9. Jeśli tak, każdy zapisuje, że doszło do takiej transakcji.

W tym momencie transakcja zostaje uznana za dokonaną.

3. Odbywają się kolejne transakcje

W miarę upływu czasu, co raz więcej ludzi w ramach sieci potrzebuje przekazać innym pieniądze. Kiedy tylko mają taką potrzebę dokonują transakcji, ogłaszają ją wszystkim innym uczestnikom sieci. Jak tylko ktoś słyszy takie ogłoszenie, zapisuje to na swojej karcie.

Czynność powtarzamy tak długo, aż każdemu skończy się miejsce na karcie. Zakładając, że każda karta ma miejsce wystarczające do zapisania 10 transakcji, kiedy tylko dziesiąta transakcja zostanie uznana za zamkniętą każdemu kończy się miejsce na karcie.

Nadszedł czas, żeby odłożyć kartę do katalogu, wyciągnąć nową, czystą kartę i kontynuować proces zapisując kolejne transakcje.

4. Odkładanie karty

Zanim odłożymy karty do naszych katalogów, musimy je zapieczętować unikalnym kluczem, który wszyscy użytkownicy sieci wspólnie ustalają. Zabezpieczenie każdej karty daje nam pewność, ze nikt nie wprowadzi na niej żadnych zmian kiedy już odłożymy je, każdy do swojego katalogu – ani dziś, ani jutro, ani nawet za rok. Jak już karta znajdzie się w katalogu pozostanie tam na zawsze – odpowiednio zapieczętowana.

Co więcej, jeśli każdy ufa jakości zabezpieczenia, to wierzy również temu, co jest na niej zapisane. To właśnie zabezpieczenie karty odpowiednią pieczęcią jest podstawą działania tej metody.

[Przydatna terminologia] w rzeczywistości to zabezpieczanie kart nazywa się wykopywaniem, ale dla ułatwienia będziemy je nazywać „pieczętowaniem”.

Wcześniej osoba postronna / pośrednik gwarantował nasze transakcje, powodował, że ufaliśmy temu co zapisał w swoim rejestrze i że dane te nigdy nie zostaną zmienione. W rozproszonym, zdecentralizowanym systemie takim jak nasz, jego miejsce zajmuje ta zaufana pieczęć.

Ciekawe! W takim razie jak zapieczętować kartę?

Zanim będziemy mogli się nauczyć jak zapieczętować kartę, dowiemy się ogólnie jak działa taka pieczęć. Na wstępie opowiemy sobie o czymś, co ja lubię nazywać…

…Magiczną Maszyną
Wyobraź sobie maszynę otoczoną grubymi ścianami. Jeśli z lewej strony wprowadzasz do niej pudełko, po czym z prawej wyciągasz pudełko ze zmienioną przez maszynę zawartością.

[Przydatna terminologia] Ta maszyna to tzw. funkcja mieszająca lub haszująca, ale dzisiaj zostawmy techniczny żargon i załóżmy, że będziemy ją nazywać po prostu „Magiczną Maszyną”.

Załóżmy, że z lewej strony wprowadzasz do maszyny liczbę 4, a po prawej stronie wychodzi z niej wyraz: „dcbea.”

W jaki sposób maszyna zamieniła 4 na ten dziwny wyraz? Nikt tego nie wie. Co więcej, nie da się tego procesu odwrócić. Patrząc na słowo „dcbea” nie da się określić jaka wartość została wprowadzona do maszyny. Jednak za każdym razem, kiedy wprowadzimy na wejściu liczbę 4 z prawej strony zawsze wyjdzie ten sam wyraz, „dcbea.”

Patrząc na słowo „dcbea” nie da się określić jaka wartość została wprowadzona do maszyny. Jednak za każdym razem, kiedy wprowadzimy na wejściu liczbę 4 z prawej strony zawsze wyjdzie ten sam wyraz, „dcbea.”

Spróbujmy wprowadzić inny numer. Na przykład 26?

Tym razem dostajemy wynik „94c8e”. Ciekawe! Czyli wyrazy podawane przez maszynę mogą zawierać też cyfry!

Teraz zadam Wam takie pytanie:

„Czy możecie mi powiedzieć jaką wartość powinienem wprowadzić do naszej maszyny z lewej strony, żeby z prawej otrzymać wyraz zaczynający się od trzech zer? Na przykład 000ab albo 00098 albo cokolwiek podobnego.”

Zastanówcie się przez chwilę nad tym pytaniem.

Wiecie już, że maszyna ma taką właściwość, że nie jesteśmy w stanie obliczyć jaką wartość mamy jej podać z jednej strony, żeby z drugiej strony otrzymać oczekiwany wynik. Skoro wiemy, że tak działa maszyna, to jak odpowiedzieć na powyższe pytanie?

Przychodzi mi do głowy jedna metoda. Moglibyśmy spróbować wprowadzać do maszyny każdą liczbę jaka przyjdzie nam do głowy aż otrzymamy wynik, który nas interesuje.

Spróbujmy każdej możliwości, żeby obliczyć odpowiedni wynik.

W wersji optymistycznej takiego scenariusza po kilku tysiącach prób powinno się udać uzyskać wyraz, którego szukamy.

Było niezwykle trudno obliczyć wprowadzoną liczbę patrząc na wynik. Jednocześnie, zawsze będzie niezwykle łatwo zweryfikować czy przewidywany wsad da wymagany wynik. Pamiętaj, że maszyna po wprowadzeniu konkretnej liczby zawsze da ten sam wynik.

Jak myślicie, jak trudno będzie wam powiedzieć, przy założeniu, że macie daną liczbę 72533, „czy ta liczba, wprowadzona do maszyny, da wynik zaczynający się od trzech zer?”

Jedyne co musicie zrobić to wrzucić tę liczbę do maszyny i zobaczyć co wyjdzie z prawej strony. I Tyle.

Najważniejszą cechą takiej maszyny jest to, że – „Patrząc na wynik niezwykle ciężko jest określić co podano na wejściu, ale jeśli wsad jest podany, bardzo łatwo sprawdzić do jakiego prowadzi wyniku.”

Zapamiętaj tę jedną właściwość Magicznych Maszyn (czyli funkcji haszujących) czytając ten wpis do końca:

Patrząc na wynik niezwykle ciężko jest określić co podano na wejściu, ale jeśli wsad jest podany, bardzo łatwo sprawdzić do jakiego prowadzi wyniku.

Jak użyć takich maszyn do zapieczętowania karty rejestru transakcji?

Użyjemy naszej maszyny do wygenerowania liczby zabezpieczającej, czyli pieczęci dla naszej karty. Tak jak poprzednio, zaczniemy od wyobrażenia sobie pewnej sytuacji.

Wyobraźmy sobie, że mamy dwa pudełka. Pierwsze, zawiera liczbę 20893. Następnie zadajmy sobie pytanie: „Czy możemy odnaleźć liczbę, która po dodaniu do tej z pudełka i umieszczeniu w maszynie da wynik zaczynający się od trzech zer?”

To podobna sytuacja do tej, o której mówiliśmy wcześniej, gdzie okazało się, że jedynym sposobem na określenie takiej liczby jest wypróbowanie wszystkich liczb we wszechświecie.

Po kilku tysiącach prób natkniemy się na liczbę, np. 21191, która po dodaniu do liczby 20893 (tj. 21191 + 20893 = 42084) i wprowadzeniu do maszyny pozwoli nam uzyskać jako wynik wyraz spełniający nasze wymagania.

W takim przypadku dana liczba, 21191, staje się pieczęcią dla liczby 20893. Załóżmy, że istnieje karta, na której zapisano liczbę 20893. Aby zapieczętować tę kartę (tj. Zabezpieczyć ją tak, żeby nikt nie mógł zmienić jej zawartości), przykleimy na niej pieczęć z opisem „21191”. W momencie, w którym przykleimy pieczęć karta będzie zapieczętowana.

[Przydatna terminologia] liczba zabezpieczająca, czyli nasza pieczęć to tzw. „proof of work”, jest ona dowodem na to, że podjęto trud związany z jej wyliczeniem. Do naszych celów możemy ją nazwać liczbą pieczętującą.

Jeśli ktokolwiek chce zweryfikować czy karta została zmodyfikowana, jedyne co musi zrobić to dodać zawartość karty do liczby pieczętującej i przepuścić ich sumę przez maszynę. Jeśli maszyna zwróci wynik w postaci słowa z trzema zerami na początku będzie to oznaczało, że zawartość karty pozostała nienaruszona. Jeśli słowo otrzymane w wyniku działania maszyny nie spełni naszych oczekiwań możemy wyrzucić kartę, ponieważ jej zawartość najprawdopodobniej została przez kogoś zmieniona, lub błędnie zapisana i nie nadaje się do użytku.

Aby zabezpieczyć wszystkie nasze karty użyjemy podobnego mechanizmu, a następnie ułożymy je w naszych folderach.

Wreszcie, możemy zapieczętować nasze karty…

Aby zapieczętować kartę, która zawiera rejestr transakcji w ramach naszej sieci kontaktów, musimy się dowiedzieć jaka liczba dodana do listy transakcji i przepuszczona przez naszą maszynę da nam w wyniku wyraz zaczynający się od trzech zer.

Uwaga: używałem sformułowania „wyraz zaczynający się od trzech zer” tylko dla przykładu, w celu zilustrowania jak działają funkcje haszujące. Prawdziwe problemy matematyczne związane z tym tematem są o wiele bardziej skomplikowane.

Kiedy już wyliczymy tę liczbę, ponosząc przy tym koszt w postaci czasu poświęconego na jej wyliczenie i prądu, który zasila maszynę, użyjemy jej do zapieczętowania naszej karty. Jeśli kiedykolwiek, ktokolwiek spróbuje zmienić zawartość karty, liczba zamykająca umożliwi dowolnej osobie zweryfikowanie autentyczności karty.

Teraz, kiedy już rozumiemy jak odbywa się zabezpieczanie kart z rejestrem transakcji, wrócimy w czasie do momentu, kiedy zapisaliśmy na karcie dziesiątą transakcję i skończyło nam się miejsce.

Jak tylko każdemu skończy się miejsce na karcie do zapisywania kolejnych transakcji, wszyscy zajmą się obliczaniem liczby pieczętującej kartę tak, aby można było ją bezpiecznie odłożyć do foldera. Każda osoba w ramach sieci wykonuje stosowne obliczenia. Pierwsza osoba w sieci, która znajdzie liczbę pieczętującą ogłasza to do wiadomości innych uczestników sieci.

W momencie, kiedy liczba pieczętująca jest podana do wiadomości uczestników sieci, wszyscy sprawdzają czy daje odpowiedni wynik po wprowadzeniu do maszyny. Jeśli tak, wszyscy oznaczają swoje karty uzyskaną liczbą i odkładają je do folderów.

Ale co jeśli np. Uczestnik sieci na przykład nr 7 po wprowadzeniu liczby pieczętującej nie uzyskuje odpowiedniego wyniku? Nie jest to częsty przypadek. Powody mogą być następujące:

• osoba ta mogła źle usłyszeć informacje na temat transakcji ogłaszanych w ramach sieci,
• osoba ta mogła źle zapisać informacje na temat transakcji ogłaszanych w ramach sieci,
• osoba ta mogła próbować oszukać, zachować się nieuczciwie w momencie dokonywania zapisów transakcji, albo na własną korzyść albo na korzyść kogoś innego w ramach sieci.

Niezależnie od przyczyny, uczestnik sieci o numerze 7 ma tylko jedną możliwość – pozbyć się karty z nieprawidłowymi zapisami i skopiować informacje zawarte na karcie innego uczestnika sieci, żeby móc odłożyć ją do folderu. Jeśli tego nie zrobi, nie może dalej zapisywać transakcji, a tym samym nie może dalej uczestniczyć w sieci.

Liczba zabezpieczająca, którą wybierze większość uczestników sieci, będzie obowiązywać.

W takim razie, dlaczego każdy uczestnik sieci zużywa zasoby na wykonanie kalkulacji, skoro wiadomo, że ktoś inny wykona te same obliczenia i ogłosi wynik? Czemu nie wystarczy po prostu czekać bezczynnie aż ktoś to zrobi?

Dobre pytanie. W tym miejscu pojawia się zachęta do działania. Każdy uczestnik sieci ma prawo do wynagrodzenia. Pierwsza osoba, która obliczy wartość liczby zabezpieczającej kartę otrzyma wynagrodzenie w zamian za poniesione koszty (tj. za zapewnioną przez nią moc obliczeniową i poniesione przez nią koszty energii elektrycznej).

Wyobraźmy sobie, że jeśli osoba nr 5 obliczy wartość liczby zabezpieczającej dla danej karty, otrzyma w zamian pieniądze, powiedzmy 1 PLN, które zostają wygenerowane „z powietrza”. Innymi słowy, saldo na rachunku uczestnika nr 5 zostaje zwiększone o 1 PLN bez potrzeby odejmowania 1 PLN z żadnego innego rachunku.

W taki sposób powstał Bitcoin. Była to pierwsza waluta, która powstała w oparciu o Blockchain (tzn. rozproszone rejestry). Za koszty poniesione na rzecz sieci jej uczestnicy byli wynagradzani Bitcoinami.

W momencie, kiedy wystarczająca liczba ludzi weszła w posiadanie Bitcoinów ich wartość zaczęła wzrastać, co spowodowało, że inni też chcieli je mieść, a to z kolej dalej powodowało wzrost wartości Bitcoinów, czyli znów więcej ludzi chciało mieć Bitcoiny, a to znówu podnosiło ich wartość i tak dalej.

I to jest właśnie nagroda, która sprawia, że wszyscy uczestnicy chcą pracować na rzecz rozwoju sieci.

Kiedy już każdy odłoży swoją kartę do katalogu, wszyscy wyciągają kolejna pustką kartę i proces zaczyna się od nowa – i tak w nieskończoność.

[Przydatna terminologia] Jedna karta to Blok transakcji (Block), a katalog to Łańcuch kart (Chain), stąd nazwa Blockchain.

I tak właśnie, moi drodzy przyjaciele, działa Blockchain.

***

Z tym, że jest jeszcze jedna rzecz, o której Wam do tej pory nie powiedziałem.

Wyobraźcie sobie, że w katalogu jest już pięć kart – wszystkie zapieczętowane przy użyciu liczby pieczętującej. Co jeśli wrócę do drugiej kartki i dokonam na niej zmiany na własną korzyść? Liczba zamykająca pozwoli każdemu na wykrycie niespójności w zapisach – prawda? A co jeśli obliczę nową liczbę, dla zmodyfikowanych transakcji i użyję jej do zapieczętowania karty?

Aby uniknąć podobnych problemów związanych z wprowadzaniem takich zmian na zapieczętowanych kartach (blokach) oraz zmienianiem ich liczb pieczętujących, w sposobie obliczania tych liczb jest zastosowana pewna sztuczka.

Ochrona przed zmianą liczb pieczętujących karty

Pamiętacie, jak mówiłem o tym, że dam wam dwa pudełka – jedno z liczbą 20893 a drugie puste, którego liczbę będziecie musieli obliczyć? W rzeczywistości, aby dokonać takiego obliczenia przy użyciu Blockchain, zamiast dwóch pudełek są dane trzy – dwa wypełnione i jedno, którego wartość należy wyliczyć.

Kiedy wartość wszystkich trzech jest zsumowana i wprowadzona do maszyny, odpowiedź jaką uzyskujemy z prawej strony musi spełnić określone wymagania.

Wiemy już, że jedno z tych pudełek zawiera listę transakcji, a drugie będzie zawierało liczbę pieczętującą. Trzecie pudełko zawiera wynik podany przez maszynę dla poprzedniej karty.

Przy pomocy tej prostej sztuczki mamy pewność, że wynik dla każdej strony jest zależny od wyniku dla poprzedniej. Dlatego, jeśli ktoś zmodyfikuje wartość dla poprzedniej karty, żeby nie dopuścić do wykrycia swojego działania musiałby zmienić zawartość i liczby zamykające dla wszystkich kart, które później umieszczono w katalogu, żeby łańcuch pozostał spójny.

Jeśli któryś z 10 uczestników sieci, których wymyśliliśmy sobie na początku, spróbuje oszukać system i wprowadzić zmiany w zawartości łańcucha bloków (katalogu zawierającego karty z rejestrem transakcji), będzie musiał zmienić wiele kart i obliczyć nowe liczby pieczętujące dla każdej z nich. Wiemy jak trudno jest obliczyć liczbę pieczętującą. Dlatego, jedna nieuczciwa osoba w sieci nie jest w stanie pokonać dziewięciu uczciwych uczestników.

Począwszy od pierwszej karty, którą nieuczciwy uczestnik sieci będzie próbował zmienić, powstanie nowy łańcuch w ramach tej samej sieci, ale ten nowy łańcuch nigdy nie będzie w stanie dogonić tego autentycznego – tylko dlatego, że moc obliczeniowa i wszelkie wysiłki ze strony jednej osoby nigdy nie będą większe niż zbiorowy wysiłek dziewięciu pozostałych. Stąd mamy gwarancję, że najdłuższy łańcuch w ramach sieci pozostanie tym autentycznym.

Najdłuższy łańcuch jest autentyczny.

Kiedy napisałem powyżej, że jeden nieuczciwy człowiek nie pokona dziewięciu uczciwych, czy to spowodowało, że zapaliła się wam głowach jakaś ostrzegawcza lampka?

Co jeśli zamiast jednej osoby sześć osób będzie nieuczciwe?

W takim przypadku cała procedura zostanie całkowicie zakłócona. Takie zjawisko nazywa się „51% Attack”. Jeśli większość uczestników sieci zdecyduje się na nieuczciwy ruch i oszuka resztę uczestników, cały protokół przestanie działać.

I to jedyny faktyczny powód, dla którego Blockchain może się zawalić, jeśli kiedykolwiek do tego dojdzie. Jest to nieprawdopodobne, ale wszyscy powinni znać słabe punkty tego systemu. Jest on zbudowany na założeniu, że większość uczestników sieci zawsze jest uczciwa.

I to, drodzy przyjaciele, cała wiedza o Blockchain. Jeśli kiedyś traficie na kogoś, kto zastanawia się „Co to jest ten Blockchain?” już wiecie gdzie go odesłać. Zapiszcie sobie ten link w ulubionych.

Znacie kogoś, kto powinien przeczytać powyższy ten tekst? Przycisk „Udostępnij” (tak, to te ikonki Twittera, Facebooka oraz Linkedin) jest do waszej dyspozycji. Proszę śmiało udostępniać!

O autorze

Mohit Mamoria jest autorem cotygodniowego newslettera Unmade, którego każda edycja dostarcza do Twojej skrzynki jedną myśl z przyszłości. Jeśli chcesz przeczytać oryginalny tekst zapraszam tutaj.

Tekst z języka angielskiego przetłumaczył Tomasz Jurek

  • Hej, tu Janek i chciałbym polemizować z tezą tego skądinąd bardzo dobrego wytłumaczenia, że „Jest on zbudowany na założeniu, że większość uczestników sieci zawsze jest uczciwa.”

    Otóż nie. Jest on zbudowany na założeniu, że większość ludzi jest racjonalna. Uczciwość nie jest wymagana. Dlaczego? Zgadywanie cyferek od Magicznej Maszyny kosztuje bardzo dużo pieniędzy, które zwracają się tylko jeśli głosujemy na najdłuższy łańcuch. Tu wchodzi teoria gier, która mówi po prostu: Jeśli nie chcesz stracić pieniędzy musisz głosować na najdłuższy łańcuch. Do tego dochodzą inne mechanizmy np. jeśli atakujesz sieć, to może bardzo obniżyć wartość tokenu, w którym sieć wypłaca twój ewentualny zysk z takiego ataku. Jednym słowem: działanie zgodnie z protokołem ma po prostu znacznie większy sens ekonomiczny, a atak jest bardzo kosztowny.

  • Dawno nie czytałem tak prostego wytłumaczenia dla tak skomplikowanych spraw. Dzięki za przetłumaczenie!

  • Mateusz Kościuk

    „Jeśli któryś z 10 uczestników sieci, których wymyśliliśmy sobie na początku, spróbuje oszukać system i wprowadzić zmiany w zawartości łańcucha bloków (katalogu zawierającego karty z rejestrem transakcji), będzie musiał zmienić wiele kart i obliczyć nowe liczby pieczętujące dla każdej z nich. Wiemy jak trudno jest obliczyć liczbę pieczętującą. Dlatego, jedna nieuczciwa osoba w sieci nie jest w stanie pokonać dziewięciu uczciwych uczestników.”

    A czy teoretycznie to też nie jest słaby punkt blockchain? A gdyby wyobrazić sobie taką sytuację gdy jeden gościu ma absurdalnie większą moc obliczeniową niż reszta użytkowników i może ich „przeliczyć” zmieniając ten łańcuch szybciej niż on powstaje? To tak jakbym sam zaczął produkować pieniądze? Inflacja bitcoina?

  • Przemek Szeląg

    Literówki:
    trzeba zerami
    pozowała nienaruszona

  • Michał Siemieniuk

    „W takim przypadku cała procedura zostanie całkowicie zakłócona. Takie zjawisko nazywa się „51% Attack”. Jeśli większość uczestników sieci zdecyduje się na nieuczciwy ruch i oszuka resztę uczestników, cały protokół przestanie działać.”

    Co to znaczy, że przestanie działać? Z jakiego powodu?

  • skaopl

    Algorytm zakłada, że większość ma rację. Jeśli 51 użytkowników na stu mówi „od teraz nasze bitcoiny są warte milion, a wasze 10 centów i nie obchodzi nas ile były warte wcześniej ” to tak jest. Ci, którzy stracili rezygnują z bitcoina. Zostaje tylko tych 51 użytkowników, ale nikt nie chce robić z nimi interesów, bo nawet jak dostanie 1 bitcoina, to może za chwilę bo stracić (bo 51 użytkowników sobie go zabierze modyfikując blockchain). Koniec końców po co im te miliony jak nic nie można z nimi zrobić, więc cały system się rozpada. Jak napisał ktoś wcześniej tu nie chodzi o uczciwość tylko rozsądek – jak ukradniesz, to momentalnie straci swoją wartość.

  • skaopl

    Dokładnie tak. Tylko mając większą moc niż wszyscy może się „stabilnie bogacić”, a podmieniając blockchain traci wszystko. Taka akcja miałaby sens, gdyby komuś bardziej zależało na nieistnieniu bitcoina. Rządom USA i Chin nie spodoba się anonimowa wymiana (szara strefa), to zarzucą się na 51% mocy i rozwalają cały ten grajdołek.

  • Nie jest to prawda. Atak 51% pozwala jedynie na dokonanie tak zwanego „double spend” czyli zapłacenia tymi samymi Bitcoinami dwa razy, co ostatecznie powoduje stratę u jednego ze sprzedawców. Nie pozwala natomiast na zmiany typu „od teraz nasze bitcoiny są warte milion”. Nie pozwala też na zmianę dużo starszych transakcji, albo reguł na jakich działa sieć.

  • Tak, dlatego „blockchain” o słabej mocy nie ma wielkiej wartości. Natomiast Bitcoin jest obecnie siecią o mocy „haszującej” przewyższającej sumę wszystkich superkomputerów świata ponieważ bazuje na wyspecjalizowanych układach. Aby zdobyć 51% musiałbyś zaprojektować własny układ i zbudować fabrykę na tyle wielką, by produkowała ten układ szybciej niż wszystkie inne już istniejące fabryki. Co gorsza – jeśli zbudujesz farmę o mocy 51% obecnej sieci to okaże się, że nie jest to już 51%, bo właśnie zwiększyłeś całkowitą moc sieci. W rzeczywistości próg jest bliżej 70%, a nawet więcej, bo ruszasz do wyścigu z wszystkimi innymi producentami, którzy mogą podjąć rękawice i też zwiększyć produkcję.
    Na marginesie – inflacji Bitcoina to nie powoduje: nowe Bitcoiny będą zawsze powstawać średnio co 10 minut, co najwyżej sieć dostosuje poziom trudności.

  • Jacho

    Generalnie jest to ciekawe, jednakże według mnie nie do końca uprawnione, co będzie jeśli „włamię” się do portfeli 51% uczestników i coś zrobię … co ? ale każdy się może domyślać … co będę chciał zrobić. Zatem, pewne ataki nie wymienię nazw … w moim przekonaniu mogą być przygotowaniem do … . Wówczas IoT będzie idealne nie jako sieć obliczeniowa ale do zupełnie innego celu …

  • EPICVR

    Świetny artykuł!

  • Jacho

    Ale zdaje się następuje „centralizacja” mocy haszującej -tzn. kilka firm-farm się w tym wyspecjalizowało … zatem, „nigdy nie mów nigdy …”

Zapisz się do mojego newslettera

Raz w tygodniu wyślę Ci wyselekcjowane informacje ze świata: technologii, biznesu i mediów. Jeśli interesujesz się startupami, dronami, drukiem 3D, EV, VR, AI, AR, video czy bitcoinami to witaj w domu.

Obiecuję - zero spamu tylko samo "mięcho"!

Wahasz się? Dostaniesz też za darmo w PDFie komiks "Strange Years" stworzony przez Michała "Śledzia" Śledzińskiego!




Dziękuje, nie chcę