Czym jest blockchain (łańcuch bloków)?
Sposób, w jaki zbudowana jest zdecentralizowana i rozproszona sieć peer-to-peer takich systemów jak Bitcoin, gdzie każdy uczestnik jest w tym samym czasie zarówno jej klientem oraz serwerem, umożliwia bezprecedensowy wzrost bezpieczeństwa i odporności tejże sieci w porównaniu do tradycyjnych scentralizowanych rozwiązań.
W starszych tradycyjnych systemach, w których cała sieć jest obsługiwana przez pojedynczy serwer, występuje wiele zagrożeń wynikających z centralizacji sieci, które mogą zostać wykorzystane przez potencjalnych włamywaczy lub mogą być przyczyną wielu przerw w funkcjonowaniu systemów opartych o tego typu rozwiązania.
Cechy zdecentralizowanych sieci:
- bardzo duża odporność na ataki hakerów;
- brak przestojów w pracy sieci, nawet w momencie gdy niektóre węzły/instancje są odłączone;
- nie są prowadzone przez określoną i ograniczoną liczbę osób (odpowiedzialne osoby lub podmioty mogą powodować dodatkowe problemy zarówno umyślnie, jak i nieumyślnie, ze względu na czynnik ludzki).
Oprócz tych wszystkich istotnych cech, jedną z najważniejszych zalet sieci blockchain i tym samym Bitcoin jest integralność danych.
Te zalety są niezmiernie istotne w przypadku funkcjonowania protokołu płatności, jednak programiści szybko zdali sobie sprawę, że możliwości jakie daje technologia blockchain nie ograniczają się do jednego prostego przypadku jej wykorzystania.
Zasadniczo, każde rozwiązanie, w którym trzeba zachować integralny rejestr pewnych danych, może być bardziej bezpieczne i skuteczne przy wykorzystaniu blockchain:
- nazwy domen;
- rejestry własności;
- umowy handlowe itp.
Problem
Do tej pory programiści starali się tworzyć nowe aplikacje w oparciu o blockchain na dwa różne sposoby, z których każdy okazywał się być nieskuteczny.
Pierwszym rozwiązaniem była budowa aplikacji niejako nadbudowanej na istniejącym protokole Bitcoin. Jednak skrypt Bitcoin nie wykazuje tzw. kompletności Turinga, tzn. nie może rozwiązać problemów, które można w łatwy sposób rozwiązać przez niektóre znane języki programowania, na przykład C ++. Jest to związane ze znacznymi komplikacjami technicznymi i wymaga od programistów zastosowania wielu wspomagających zabiegów, aby można było wdrożyć rozwiązania, które w rzeczywistości mogłyby być osiągnięte w znacznie mniej skomplikowany sposób.
Innym rozwiązaniem było opracowanie, uruchomienie i wypromowanie własnego alternatywnego blockchain, pozbawiając się przy tym możliwości wykorzystania ogromnej mocy obliczeniowej całej sieci Bitcoin. Wiąże się to z koniecznością uruchomienia własnego blockchain, co związane jest z wysokimi kosztami, które nie mogą być uzasadnione w przypadku każdej aplikacji.
Rozwiązanie
Ethereum po raz pierwszy rozwiązało tę rozbieżność, integrując odpowiedni uniwersalny język programowania z własnym blockchain.
Dzięki temu rozwiązaniu obecnie każdy może zaprojektować dowolną aplikację, a następnie w łatwy sposób ją zaprogramować i zaoferować sieci ETH jej propagację i autoryzację.
Najprościej mówiąc, Ethereum jest obecnie zdecentralizowanym i rozproszonym na całym świecie komputerem o teoretycznie nieograniczonej mocy.
Programista programuje określone rozwiązanie i umieszcza je w sieci Ethereum, następnie sieć je samodzielnie wykonuje i propaguje, po czym sprawdza dane wyjściowe i odpowiednio dystrybuuje wartość pomiędzy jego uczestnikami.
Aplikacje są prowadzone w sposób całkowicie przejrzysty, bez udziału scentralizowanych podmiotów, a wszystko to dzięki inteligentnym umowom (smart contract).
Co istotne, moc sieci jest ograniczona tylko liczbą i mocą komputerów, które są do niej podłączone.
Światowy superkomputer
Potencjalne zastosowania takiego systemu są naprawdę nieograniczone.
Jedną z bardziej oczywistych możliwości jest utworzenie nowej kryptowaluty mieszczącej się zaledwie w kilkudziesięciu wierszach kodu, a następnie jej natychmiastowe uruchomienie w ramach blockchain Ethereum;
W ten sam sposób przedstawić można dowolnie wybrane aktywa lub nieruchomości, np. samochód lub dom, a następnie przetransferować w postaci odpowiadającego im tokena w ramach blockchain.
Bardziej złożone rozwiązania obejmują dezintermediację/odpośredniczenie (a tym samym wyeliminowanie opłat pośrednika) niektórych z istniejących rynków, takich jak Facebook Advertising i Google AdWords. Można to osiągnąć poprzez utworzenie inteligentnych kontraktów (smart contract) wszystkich procesów biznesowych, które oferują te firmy i umieszczenie ich w blockchain.
Innym potencjalnym zastosowaniem Ethereum są programistyczne rozwiązania dedykowane złożonym procesom naukowym do których należą m.in. rozproszone obliczenia astrofizyczne lub zwijanie/fałdowanie białek dla firm farmaceutycznych.
Takie aplikacje miałyby teoretycznie nieograniczoną moc obliczeniową sieci, nieosiągalną nawet przez najbardziej zaawansowane superkomputery.