AplikacjeCDOPolecane tematy

Blockchain – Transparentny i bezpieczny fundament aplikacji

Protokół Blockchain może być podstawą dla stworzenia rozproszonego środowiska prostych aplikacji, które idealnie wpisują się w potrzeby typowe dla cyfrowej transformacji i gospodarki opartej na zaufaniu. W rozwój implementacji Blockchain – znoszącej typowe ograniczenia tego protokołu – angażują się inżynierowie IBM.

Blockchain wywodzi się – ze stworzonej przez firmę Gold & Silver Reserve – koncepcji przesyłania wirtualnej waluty pomiędzy użytkownikami jednej, rozproszonej usługi. System transakcyjny waluty znanej jako e-gold został uruchomiony w 1996 roku i funkcjonował do 2009 roku. Doświadczenia związane z walutą e-gold były jedną z najbardziej udanych prób stworzenia wirtualnego pieniądza. Stały się też fundamentem do powstania protokołu Blockchain, jako rozwiązania pozwalającego na przesyłanie środków walutowych pomiędzy użytkownikami jednej, wysoce rozproszonej sieci.

Transparentność wpisana w DNA Blockchain

Blockchain spełnia trzy główne założenia: pozwala na tworzenie sieci w pełni rozproszonych i opartych na bezpośredniej komunikacji pomiędzy węzłami (P2P), a także opiera się na mechanizmach autoryzacji transakcji wykluczających konieczność wykorzystania zaufanego systemu strony trzeciej (Trusted Third Party). Najważniejszy okazuje się tu fakt wyeliminowania systemu dedykowanego do potwierdzania tożsamości użytkowników.

Generalnie jako użytkownicy zdecydowanej większości usług internetowych, mamy do czynienia z sytuacją, gdzie podajemy nasze dane dostępowe, które są następnie porównywane z jakąś bazą danych. Oznacza to, że w ramach infrastruktury odpowiedzialnej za realizację konkretnej usługi zawsze istnieje proces mapowania danych dostępowych z konkretnym ID użytkownika. Koncepcja trustless opiera się na podejściu pozbawionym takiej bazy. Powoduje to, że świadczone usługi mogą stać się niezależne od jakichkolwiek instytucji czy podmiotów zewnętrznych, które jednocześnie mogłyby mieć własny interes w kontrolowaniu dostępu do takich usług. Efektem tego rodzaju uniezależnienia protokołu Blockchain od zewnętrznej infrastruktury jest podniesienie bezpieczeństwa transakcji. W jaki sposób odbywa się zatem niezbędna weryfikacja?

Przeczytaj raport ITwiz nt. biznesowych aspektów wykorzystania technologii Blockchain.

W raporcie omawiamy m.in.:
• Główne aspekty, na które należy zwrócić uwagę w kontekście biznesowych zastosowań technologii blockchain
• Praktyczne zastosowania technologii blokchain w poszczególnych sektorach
• Zagrożenia i wyzwania związane z technologią blockchain
• Mapę drogową najważniejszych zagadnień prawnych związanych z blockchain

Raport można bezpłatnie pobrać z serwisu ITwiz.

Nieodwracalność zapisu i bezpieczeństwo danych

W transakcji nie uczestniczy żaden zewnętrzny serwer, a algorytmy sprawdzające wykonywane są jednocześnie przez wiele węzłów – komputerów – sieci Blockchain. Oznacza to, że kilka maszyn innych użytkowników sieci poświęca swoją moc obliczeniową, aby zweryfikować czy dana transakcja może mieć miejsce, a obie zaangażowane w nią strony są do tego uprawnione. Jeśli wynik działania kilku równoległych iteracji algorytmów sprawdzających jest pozytywny – transakcja jest realizowana. Jej log jest szyfrowany algorytmem SHA3 i trafia co centralnego rejestru.

Tak zaszyfrowane transakcje w skali całej sieci układają się w pewien ciąg, w funkcji czasu tworząc w rejestrze Blockchain pojedynczy, zamknięty blok. Każdy taki blok jest szyfrowany kluczem SHA256, a następnie w rejestrze zakładany jest kolejny blok, przy czym blok poprzedni – sprowadzony do ciągu 265 znaków – jest wskaźnikiem do kolejnego. Wynika to ze specyficznej implementacji algorytmu szyfrowania SHA265, który zamienia praktycznie dowolny zbiór danych w klucz o długości 256 znaków. Każdy taki klucz jest efektem wielokrotnych iteracji przetwarzania danych podzielonych na bloki (ciągi znaków), gdzie wynik przetwarzania jednego bloku jest jedną z danych wejściowych dla operacji na kolejnym bloku. Jest to ważne, ponieważ w uproszczeniu oznacza, że o ile proces szyfrowania opiera się na prostych matematycznie operacjach, to operacja odwrotna jest bardzo wymagająca obliczeniowo. Stąd wynika też nazwa protokołu – łańcuch bloków, czyli Blockchain – stanowiący pewien log transakcji zachodzących w całej sieci.

Co ważne, w sieci widać wszystkie transakcje, ale informacje o tym, jakich węzłów dotyczą są już zapisane w logu i widoczne tylko dla zaangażowanych stron. W praktyce oznacza to, że w toku realizacji transakcji opartych na protokole Blockchain powstanie rejestr – pewna baza danych, która jest propagowana w całej sieci, we wszystkich jej węzłach. Identyfikacja transakcji jest oczywiście możliwa. Rejestr Blockchain jest więc formą uproszczonej bazy, którą cechuje nieodwracalność zapisu i bezpieczeństwo danych. Jest to jednak środowisko dalekie od typowej bazy relacyjnej.

Od waluty Bitcoin do cyfrowych kontraktów w Ethereum

Bitcoin – jako implementacja protokołu Blockchain – stał się przełomem, ponieważ funkcjonalność przesyłania środków realizuje na rozproszonym środowisku, opartym na komunikacji P2P i bez centralnego serwera autoryzującego. Zapewnia jednocześnie nieusuwalność logów transakcji. Niestety z biznesowego punktu widzenia, do efektywnego działania sieci opartej na tej implementacji niezbędne jest zbudowanie infrastruktury złożonej z setek tysięcy węzłów.

Kolejnym etapem rozwoju Blockchain stał się projekt Ethereum. Zakłada on wykorzystanie protokołu Blockchain i opartej na nim sieci na potrzeby czegoś więcej niż tylko wymiany wirtualnego pieniądza. W ramach tej implementacji protokołu Blockchain, obok logów transakcji do rejestru możliwe jest wstawianie prostego kodu aplikacyjnego. Pełniąc rolę swoistego kontraktu, kod ten jest w sposób nieusuwalny zapisany w łańcuchu Blockchain i może być zrealizowany przez sieć automatycznie, po spełnieniu określonych warunków. Możliwe jest oczywiście połączenie kontraktu z zewnętrzną aplikacją, która będzie weryfikowała, czy określone warunki zostały spełnione i czy zapisana w kodzie aplikacji operacja ma być wykonana.

Globalna maszyna obliczeniowa

Projekt Ethereum można traktować jako pewnego rodzaju globalny, bardzo powolny komputer, który wykonuje lekkie funkcje obliczeniowe. I tu zbliżamy się do potencjalnie najbardziej efektywnych obecnie zastosowań protokołu Blockchain w biznesie. Co jednak ważne, w miarę jak ilość transakcji – bardziej złożonych przecież niż w przypadku Bitcoina – w sieci Ethereum rośnie, ten globalny komputer staje się coraz wolniejszy i stale się rozrasta. W ogromnym tempie rośnie też poziom złożoności łańcucha transakcji. Podobnie rośnie skala ryzyka w zakresie dostępu do danych. Jeśli taka aplikacja stanowiąca część rejestru Ethereum napisana jest z błędem, to otwiera drogę do pewnych nadużyć, których źródeł nie da się wyeliminować przez wzgląd na nieusuwalność danych raz zapisanych.

Najgłośniejszym chyba przykładem wykorzystania takiej luki jest zanotowana w czerwcu 2016 roku sytuacja nieuprawnionego wycieku środków z opartej na protokole Ethereum sieci pełniącej rolę organizacji inwestycyjnej The DAO. W efekcie, chcąc uniknąć podobnych prób wykorzystania podatności w łańcuchu Ethereum, podjęto decyzję o cofnięciu się w łańcuchu transakcji Blockchain do nieuczciwej lub stworzonej z błędem transakcji (aplikacji), usunięcia jej, a w efekcie anulowania wszystkich transakcji, które nastąpiły po niej. Pokazuje to, że pomimo ogromnych kompetencji osób zaangażowanych w rozwój i zabezpieczenie globalnych implementacji protokołu Blochchain, ich poziom złożoności jest na tyle wysoka, że zawsze znajduje się miejsce dla hakerów.

Blockchain w zastosowaniach biznesowych

Ethereum to sieć Blockchain, która pozwala na tworzenie reguł biznesowych i może pełnić rolę platformy dla różnych aplikacji. Takich implementacji już dziś pojawia się więcej. IBM uczestniczy w rewolucji Ethereum z projektem HyperLedger Fabric. Inicjatywa ta ma na celu wyeliminowanie pewnych, istotnych biznesowo, ograniczeń protokołu Blockchain. HyperLedger Fabric używa serwera certyfikacji i identyfikacji. Dzięki temu znosi konieczność tworzenia globalnej infrastruktury pozwalając na tworzenie niewielkich sieci Blockchain. Do uruchomienia takiej sieci potrzebne są jedynie 4 węzły. Takie podejście skraca drogę do biznesowego wykorzystania potencjału Blockchain i koncepcji Ethereum.

I tak, w oparciu o jedną sieć możliwe jest stworzenie jednej aplikacji, realizującej jedną, określoną funkcjonalność. Modelowym sposobem wykorzystania takich aplikacji jest rozszerzenie możliwości – opartych być może na starszych technologiach – systemów o kluczowym znaczeniu biznesowym o wysoce stabilne i bezpieczne rozwiązania odpowiadające na nowe potrzeby np. użytkowników. Możliwe jest też budowanie samodzielnych, zwinnych środowisk warstwy użytkownika, w tym rozwiązań mobilnych czy WWW. Dostępne są m.in. interfejsy API pozwalające na bezpieczne integrowanie kontraktów działających na bazie HyperLedger Fabric z krytycznymi systemami biznesowymi.

HyperLedger Fabric – dzięki wprowadzonym przez IBM zmianom względem pierwotnej implementacji Blockchain – zapewnia wysoką wydajność. Najwyższa efektywność przetwarzania w sieci HyperLedger Fabric jest osiągalna w środowisku LinuxOne uruchomionym na maszynach mainframe. Środowisko HyperLedger Fabric jest też dostępne w platformie chmurowej IBM Bluemix. Zaangażowanie IBM oznacza też, że na platformie IBM mainframe możliwe stanie się łatwe i relatywnie szybkie tworzenie rozwiązań wykorzystujących koncepcję Blockchain przy zapewnieniu ogromnej skalowalności, wydajności i poziomu bezpieczeństwa. HyperLedger Fabric wykorzystuje też m.in. dostępne w architekturze mainframe sprzętowe koprocesory zwiększające wydajność algorytmów szyfrujących i funkcje wspierające obsługę kluczy szyfrujących.

Michał Kordyzon, inżynier technicznego wsparcia sprzedaży IBM System z w Polsce i Krajach Bałtyckich

Artykuł ukazał się na łamach opracowanego we współpracy z firmą IBM Raportu ITwiz: Cyfrowa gospodarka oparta na zaufaniu

Tagi

Podobne

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *