Czym jesteś, blockchainie?
Słowo „blockchain” przekształciło się w wytrych związany z kryptowalutami, lecz jego definicja skrywa o wiele więcej. Przyjrzyjmy się mu z bliska.
Blockchain staje się coraz bardziej popularny. Od czasu do czasu można natknąć się na publikacje firm ogłaszających zamiary, przygotowania lub wdrożenia nowych rozwiązań opartych na blockchainie. Słowo „blockchain” przekształciło się w wytrych związany z kryptowalutami, lecz jego definicja skrywa o wiele więcej. Przyjrzyjmy się mu z bliska.
Co to jest blockchain?
Blockchain to baza danych przechowująca informacje w łańcuchu złożonym z bloków. Oznacza to, że informacje są zbierane i grupowane w cyfrowych blokach. Kiedy wygenerowany jest nowy blok, natychmiast zostaje on połączony z istniejącym łańcuchem. Od tego momentu blok i wszystkie zawarte w nim informacje stają się częścią bazy danych.
Blockchain jest zdecentralizowany. Oznacza to, że w ramach sieci peer-to-peer istnieje wiele węzłów przechowujących kopię tego łańcucha (a zatem bazy danych) i biorących udział w zarządzaniu jego zawartością. Żadna centralna jednostka nie sprawuje władzy nad danymi. Protokół blockchain pozwala węzłom brać udział w podejmowaniu decyzji (np. akceptowaniu nowych bloków) oraz zachowywaniu spójności danych. Kluczowy aspekt dotyczy tego, że aby podjęta decyzja została uznana za ważną, musi dojść do konsensusu pomiędzy węzłami.
Blockchain jest niezmienny. Ze względu na łańcuchową strukturę bazy danych istnieje tylko możliwość dodawania nowych bloków, nie można zaś cofać wprowadzanych zmian. Każdy nowy blok jest połączony z poprzednim istniejącym blokiem w łańcuchu, więc nowe transakcje zależą od wcześniejszych. Zmiana jednej informacji w środku bloku wymagałaby przeliczenia każdego kolejnego bloku. Jest to prawie niemożliwe. Gdyby było, prowadziłoby do wielu błędów i oszustw. Raz wykonana transakcja nie może zostać usunięta ani zmodyfikowana.
Inteligentne kontrakty… czy naprawdę są inteligentne?
Blockchain jest kojarzony głównie z kryptowalutami, ale nie ogranicza się jedynie do transferów pieniężnych. Kolejną cechą czyniącą ten rodzaj bazy danych bardziej interesującym są inteligentne kontrakty.
Pozwalają one użytkownikom tworzyć własne zasady, automatyzować operacje, a nawet budować systemy w ramach blockchaina. To jak programowanie bazy danych. Ważne jest to, że po wdrożeniu kontraktu zostaje on udostępniony użytkownikom i nie można go zmienić (jest to wynik niezmienności blockchaina). Jeśli w kodzie pojawi się błąd, będzie on działać z tym błędem już zawsze. Nie ma możliwości modyfikacji, usunięcia ani ponownego wdrożenia.
Kopanie
Proces kopania dotyczy tworzenia nowych bloków, nie zaś samej waluty. Stworzenie nowego bloku wymaga ogromnej mocy obliczeniowej do zbudowania drzewa Merkle’a, czyli drzewa skrótów. Jest to najbardziej energochłonny proces w całej idei blockchaina.
W przypadku publicznych blockchainów kryptowalutowych takich jak Bitcoin, wiele osób mylnie interpretuje ten proces jako „kopanie Bitcoinów”, jak gdyby chodziło o tworzenie nowych Bitcoinów. W rzeczywistości każdy użytkownik, który z powodzeniem coś wykopie (czyli najszybciej zapisze nowy blok) otrzymuje od systemu nagrodę oraz innych użytkowników dokonujących transakcji. Jest to zwyczajny proces otrzymywania wynagrodzenia za pracę.
Wynagrodzenie to łączy opłaty transakcyjne (opłacane przez użytkowników) oraz dodatkową nagrodę od systemu. Ta dodatkowa nagroda została ustanowiona w celu rozwoju blockchaina i zachęcenia kopiących do wsparcia jego infrastruktury. Niektóre publiczne blockchainy, takie jak Bitcoin, przestaną przyznawać nagrody w momencie, gdy osiągną limit emisji waluty (ponieważ z góry ustalono, że waluta ta będzie ograniczona).
Czym jest blockchain i jakie są jego zalety?
Niezmienność. Wyobraź sobie dokument, który został wygenerowany 12.12.2012, a Ty czytasz go trzy lata później. Jak możesz sprawdzić, czy to prawda i czy nie został on już potem zmodyfikowany? Po wygenerowaniu dokumentu, jego suma kontrolna może zostać zapisana w blockchainie. Po pewnym czasie możesz ponownie obliczyć sumę kontrolną i porównać ją z tą zapisaną w bazie danych. Jeśli obie są takie same, masz pewność, że nie dokonano żadnych zmian. W żadnej innej bazie danych nie ma takiej gwarancji, ponieważ można zmodyfikować sumę kontrolną i pozostawić datę wygenerowania bez zmian. Blockchain przechowuje każdą operację od początku swojego istnienia. Jeśli coś zostało tam zapisane, mamy pewność, że się wydarzyło i wpis nie został zmieniony.
Kod jest prawem. W blockchainie nie ma innych zasad niż kod. Nie ma wpływów z zewnętrznych źródeł. Nie ma zewnętrznej władzy. Tylko kod.
Bezpieczeństwo. Po pierwsze, baza danych blockchain wykorzystuje silną kryptografię. Po drugie, zmiana czegokolwiek w łańcuchu jest trudna z powodu jego rozproszenia. Potencjalny haker potrzebowałby ogromnej mocy obliczeniowej lub przynajmniej 51% większości w sieci, aby oszukać system.
Każdy ma wpływ. Każdy może być częścią sieci. Nie tylko jako użytkownik bazy danych, ale także jako jej posiadacz lub operator. Każdy może tworzyć i zatwierdzać nowe bloki. Każdy może przechowywać łańcuch. Każdy może brać udział w akceptacji nowych bloków.
Decentralizacja. Nie ma możliwości zmiany czegokolwiek przy użyciu tylko jednego komputera. Dzięki rozproszeniu odpowiedzialności nie ma potrzeby istnienia jednej zaufanej instytucji, ponieważ tę rolę pełni kworum niezaufanych węzłów. Każda operacja musi być zatwierdzona przez kilka węzłów. To zapewnia uczciwość i stabilność.
Brak pojedynczego punktu awarii. Dzięki rozproszonej naturze blockchaina i liczbie węzłów biorących w nim udział nie ma ryzyka, że sieć przestanie działać, gdy jeden z węzłów stanie się niedostępny.
Transparentność. Każdy portfel (i jego saldo) oraz każda operacja są widoczne i publiczne, za to informacja o właścicielu portfela jest ukryta. Sieć blockchain działa na podstawie adresów i nie zna Twojej tożsamości.
Automatyzacja. Każdy proces może zostać zautomatyzowany dzięki inteligentnym kontraktom. Spłata zobowiązań, potwierdzanie umów, przesyłanie danych. Wszystko to, i wiele więcej, z gwarantowanym bezpieczeństwem i niezawodnością blockchaina.
Jakie są wady blockchain?
Zużycie energii. To główny problem blockchaina. Publiczne platformy blockchain zużywają ogromne ilości energii. Według statystyk zebranych przez digiconomist.net, Bitcoin (największy publiczny blockchain) zużywa tyle energii, co Kolumbia. Jego szacowane roczne zużycie energii wynosi 59,87 TWh, co powoduje emisję 29 334 kt CO2 rocznie.
Druga co do wielkości publiczna platforma, Ethereum, zużywa ilość energii porównywalną z Kubą, z szacowanym rocznym zużyciem wynoszącym 17,06 TWh.
Marnuje się ogromne ilości energii ze względu na konkurencję między osobami wykopującymi. Ponieważ wygrać może tylko jeden z nich, praca pozostałych to w pewnym sensie stratą czasu i energii. Jest to część koncepcji blockchaina.
Te liczby są zdecydowanie zbyt duże i stanowią poważny, globalny problem. Na szczęście pojawia się światełko w tunelu – według zapowiedzi inżynierowie pracują nad zmniejszeniem zużycia energii.
Kod jest prawem. Kiedy wdrożysz kontrakt z błędami, zostanie on wdrożony. Nie ma możliwości jego usunięcia. Stanowi to głównie trudność dla programistów, ponieważ wymaga dużej precyzji, aby dostarczyć bezbłędny i rozbudowany kod.
Decentralizacja. Po pierwsze, blockchain wymaga bardziej złożonej infrastruktury. Istnieje kilka ról, które muszą odgrywać wszyscy użytkownicy sieci. Więcej sprzętu, więcej administratorów, więcej kosztów. Po drugie, nie ma centralnej instytucji, która mogłaby rozwiązywać konflikty. Dobrym przykładem takiego konfliktu jest „hard fork” przeprowadzony w sieci Ethereum w 2016 roku. Nie wszyscy użytkownicy go zaakceptowali, w wyniku czego istnieją teraz dwie ważne i działające sieci Ethereum – ETH i ETC.
Czy mogę używać blockchaina do celów firmowych?
Tak. Blockchain zyskał popularność dzięki publicznym łańcuchom kryptowalutowym, ale istnieje możliwość uruchomienia własnego, prywatnego łańcucha. Taka baza danych może ograniczać dostęp i wpuszczać tylko Ciebie, Twoich partnerów biznesowych lub nawet tylko Twoją firmę.
Prywatne blockchainy zużywają mniej energii i nie wymagają tak ogromnej infrastruktury, jak w przypadku publicznych platform. Co więcej, tego rodzaju baza danych może być częścią innych aplikacji, np. napisanych w Javie, Scali, PHP czy Pythonie.
Biorąc pod uwagę wszystkie plusy i minusy, manifest blockchaina definiuje go jako bardzo bezpieczny, uczciwy i niezawodny – i w rzeczywistości taki jest. Z drugiej strony, obecnie problemem jest zużycie energii, które zwiększy Twoje rachunki i sprawi, że Twoja infrastruktura nie będzie przyjazna dla środowiska.