Nowa rewolucja puka do naszych drzwi. Blockchain zmieni sposób prowadzenia biznesu oraz wpłynie na Twoje życie.
XVIII i XIX wiek: rewolucja przemysłowa.
XX wiek: Internet.
XXI wiek: blockchain.
Czy blockchain rzeczywiście może mieć aż tak duży wpływ na nasze życie i czy stawianie go w jednym szeregu z tak przełomowymi wydarzeniami jak te powyżej jest uzasadnione?
Kilkanaście miesięcy temu miałem przyjemność rozmawiać z jednym z wizjonerów IT - Tony Reidem. Rozmawialiśmy między innymi na temat tego, co się dzieje na rynkach finansowych. Oczywiście z technologicznego punktu widzenia. W gronie wymienionych wówczas inicjatyw, takich jak Regtech, Fintech, API i otwarta bankowość, analityka dużych zbiorów danych (big data), sztuczna inteligencja (AI) i uczenie maszynowe (ML) pojawił się również blokchain. Technologia ta zainteresowała mnie na tyle, że postanowiłem powęszyć wokół tego tematu. A efektem tego „węszenia” jest między innymi niniejszy artykuł.
Dzisiaj widzę, że coraz więcej osób zaczyna zgadzać się z wizjonerami takimi jak Tony. A my mamy niesamowitą możliwość być naocznymi świadkami tego, czy wszystkie te prognozy rzeczywiście się sprawdzą i czy blockchain naprawdę będzie miał aż tak duże oddziaływanie na sposób prowadzenia biznesu oraz nasze codzienne życie.
Sam jestem ciekawy jak bardzo aktualny / nieaktualny* [niepotrzebne skreślić] będzie ten tekst za trzy, pięć i dziesięć lat. Wtedy na pewno wrócę do tego artykułu, aby skonfrontować jego treść z ówczesną rzeczywistością .
Wystarczy. O tym jaką przyszłość szykuje nam blockchain oraz czy Bitcoin jest kolejną bańką spekulacyjną przeczytasz w wielu artykułach w Internecie. Ja natomiast tutaj chcę w „żołnierskich słowach” opowiedzieć Ci o tym (1) co to jest blockchain, (2) jakie są jego rodzaje implementacji oraz (3) jak mogą wyglądać scenariusze jego wykorzystania.
Distributed Ledger Technlogy. Blockchain. Bitcoin.
Jak się w tym wszystkim nie pogubić? Po kolei.
Bitcoin jest jedną z wielu sieci zbudowanych w oparciu o technologię blockchain. W sieci tej przeprowadzane są transakcje walutą kryptograficzną o tej samej nazwie.
Blockchain to jeden z najpopularniejszych typów technologii określanej mianem Distributed Ledger Technology (DLT). Istnieje wiele projektów skupionych wokół różnych obszarów związanych z blockchainem. Projekty te dostarczają programistom narzędzi, gotowych bloków i całych „frameworków”, które są wykorzystywane do budowania zdecentralizowanych aplikacji. Ten ekosystem projektów i narzędzi może nie jest jeszcze aż tak ogromny jak w przypadku środowisk big data, ale rośnie w dość imponującym tempie. Oto kilka przykładów takich projektów:
- w obszarze smart kontraktów (nie martw się, w dalszej części wyjaśnię co to jest smart kontrakt): Hyperledger, Ethereum, EOS
- w obszarze skalowania: TrueBit, IPFS
- w obszarze bezpieczeństwa: Gladius, Zeppelin
- i wiele, wiele innych.
Spośród wszystkich tych projektów wybrałem dwa: Ethereum i Hyperledger. I o nich opowiem Ci w dalszej części artykułu. A dla porządku, porównam je również z Bitcoinem.
Distributed Ledger Technlogy (DLT) jest technologią rozproszonych systemów rejestrów i odnosi się do protokołów i infrastruktury, która pozwala komputerom w różnych lokalizacjach realizować transakcje pomiędzy sobą bez udziału centralnego rejestru (centralnego notariusza).
Czy blockchain to baza danych?
W dużym uproszczeniu – tak. Podobnie jak w przypadku bazy danych, blockchain (łańcuch bloków) musi być skonfigurowany w taki sposób, aby wspierać rodzaj przechowywanych w nim danych oraz typ wykonywanych na tych danych transakcji. Istnieje jednak sporo różnic pomiędzy bazą danych a łańcuchem bloków.
Bloki w łańcuchu są odpowiednikami rekordów w bazie danych. W rekordach przechowujemy jednak tylko jedną transakcję. W bloku łańcucha tych transakcji jest zazwyczaj wiele.
Każdy rekord w bazie danych ma swój identyfikator. W przypadku bloków takim identyfikatorem jest klucz hash, czyli unikalny podpis kryptograficzny, który:
- jest generowany w oparciu o dane przechowywane w danym bloku,
- jest przechowywany wraz z transakcjami w następnym bloku łańcucha (to przez to powiązanie tworzony jest nasz tytułowy łańcuch).
Na powyższym rysunku klucz hash dla bloku drugiego (#2) jest liczony na podstawie przechowywanych w tym bloku transakcji oraz klucza hash bloku pierwszego (#1). Klucz hash dla bloku trzeciego (#3) jest liczony na podstawie przechowywanych w tym bloku transakcji oraz klucza hash bloku drugiego (#2). I tak dalej, i tak dalej.
Podpis kryptograficzny jest unikalny dla danych, dla których został wygenerowany. Inaczej mówiąc, przy założeniu wykorzystania tego samego algorytmu „haszującego” (np. SHA256) niezależne systemy zawsze wygenerują taką samą wartość klucza dla tego samego zestawu danych. Zmiana danych w jakimkolwiek bloku spowoduje, że zmieni się podpis tego bloku. Klucze hash przestaną się zgadzać. Zerwany zostanie konsensus pomiędzy węzłami w sieci, a wszyscy uczestnicy sieci zostaną poinformowani o zmianie. To właśnie w oparciu o ten mechanizm technologia blockchain jest w stanie zagwarantować niezmienność danych przechowywanych w blokach łańcucha. Nie uda się zhakować łańcucha, dopóki ktoś nie przejmie większości mocy obliczeniowej w sieci. I o ile w przypadku dużych sieci jest to raczej niemożliwe (nieopłacalne z ekonomicznego punktu widzenia), to już dla sieci z relatywnie niewielką ilością węzłów może okazać się prawdopodobne.
Tym samym dochodzimy do kolejnej różnicy pomiędzy blockchainem a bazą danych. Blockchain jest siecią rozproszoną bardzo podobną do sieci peer-to-peer. Baza danych ma charakter scentralizowany i ma swojego administratora i właściciela. Jej właścicielem jest na przykład firma albo instytucja zaufania publicznego, która między innymi swoim autorytetem potwierdza poprawność transakcji wykonywanych w bazie danych. W przypadku blockchaina, to jego bloki pełnią funkcję notariusza, a dzięki kryptografii, algorytmom matematycznym oraz teorii gier, w blockchainie nie ma konieczności powoływania centralnego kontrolera. Dla przykładu, sieci Ethereum i Bitcoin nie mają administratora. Każdy uczestnik tych sieci ma takie same uprawnienia.
I został nam jeszcze na koniec smart kontrakt. W smart kontrakcie za pomocą funkcji pisanych w języku podobnym do Java Script opisujemy logikę biznesową procesu, który chcemy zaimplementować za pomocą technologii blockchain. Funkcja opisana w kontrakcie jest wykonywana w przypadku, gdy spełnione zostaną zapisane w nim warunki. Na przykład, należy wykonać określoną transakcję, jeżeli spełniony zostanie dany benchmark finansowy.
Jak działa blockchain?
A to zależy od projektu. Inaczej będzie działać sieć zbudowana w oparciu o projekt Ethereum. A inaczej ta, która funkcjonuje na bazie projektu Hyperledger. I ponieważ inicjatyw związanych z blockchainem jest bardzo dużo, a ja nie mam zamiaru pisać na ten temat doktoratu (przynajmniej na razie), dlatego dalej skupię się na tych dwóch przykładach implementacji.
Podobieństwa.
- W każdym z tych projektów łańcuch bloków budujemy w sieci (rozproszonych) węzłów.
- Każdy nowy blok w sieci jest propagowany do wszystkich węzłów.
- Każdy węzeł może (niekoniecznie musi; to zależy od implementacji i konfiguracji) przechowywać pełną kopię wszystkich bloków rejestru.
- Węzły w sieci muszą pomiędzy sobą utrzymać konsensus – zgodzić się na „tę samą prawdę” o tym, co jest przechowywane w blokach. Przed zapisem bloku do łańcucha węzły muszą zgodzić się, że dane w bloku są prawidłowe, a po ich zapisaniu, że nie zostały zmienione. Wykorzystywany jest w tym celu już wcześniej opisany podpis kryptograficzny.
Różnice.
Rodzaj węzłów sieci. Pojęcie węzeł publiczny i węzeł prywatny odnosi się tutaj do tego, kto może uruchamiać węzły w sieci. |
Węzły w sieci są publiczne (Bitcoin, Ethereum). |
Węzły w sieci są prywatne (Hyperledger, Enterprise Ethereum). |
Kto akceptuje transakcję? |
Transakcje są akceptowane przez wszystkie węzły w sieci. (Bitcoin, Ethereum). |
Transakcje są akceptowane tylko przez uczestników danej transakcji (Hyperledger). W Hyperledger istnieje pojęcie kanałów. Tymi kanałami wysyłane są informacje na temat transakcji tylko do zainteresowanych podmiotów. Możesz skorzystać z tej funkcji, jeżeli transakcja jest poufna i nie chcesz, aby wszyscy w sieci znali jej szczegóły. Komplet informacji wymieniany jest pomiędzy uczestnikami transakcji. Do pozostałych uczestników sieci wysyłasz tyko metadane, które reprezentują tę transakcję. Wszyscy wiedzą, że transakcja miała miejsce, ale tylko jej uczestnicy znają szczegóły. Dla porównania, w sieci Bitcoin wszystkie transakcje są publicznie dostępne i audytowalne. |
Model operacyjny. |
Sieć działa w oparciu o kryptowalutę (Bitcoin, Ethereum). Sieci Ethereum i Bitcoin działają dodatkowo w oparciu o tzw. Proof of Work. Inaczej mówiąc, musisz udowodnić, że wykonałeś jakąś pracę, czyli rozwiązałeś zagadkę kryptograficzną (metodą podstawień policzyłeś właściwy klucz hash dla danego bloku). |
Sieć nie posiada warstwy obsługi kryptowaluty (Hyperledger). Hyperledger wykorzystuje smart kontrakty i nie posiada warstwy związanej z kryptowalutą, dlatego jest zdecydowanie szybszy:
|
Smart kontrakty. |
Sieć nie wspiera smart kontraktów. (Bitcoin - istnieje obejście, aby je wykorzystać). |
Sieć wspiera smart kontrakty. (Hyperleadger – ten projekt powstał w oparciu o koncepcję smart kontraktów, Ethereum – model smart kontraktów został zaadoptowany w tym projekcie). |
Zmiana rozmiaru bloku. | Nie wspierana w Ethereum i Bitcoin. | Wspierana w Hyperledger. |
Szyfrowanie. | Nie wspierana w Ethereum i Bitcoin. | Na roadmapie w Hyperledger. |
Replikacja. | Nie wspierana w Ethereum i Bitcoin. | Wspierana w Hyperledger. |
Uwaga:
Ponieważ blockchain i poszczególne projekty rozwijane są na bieżąco w zastraszającym tempie, dlatego w jakimś punkcie w czasie powyższe porównanie może przestać być aktualne.
Pytania, które warto sobie zadać przed wyborem rozwiązania.
- Jaki jest zakres projektu?
- Jakie procesy biznesowe zostaną zmienione? [wdrażam blockchaina, aby zmienić istniejący lub uruchomić nowy proces biznesowy]
- Ile podmiotów jest zaangażowanych w projekt? [im więcej podmiotów, które biorą udział w projekcie, tym bardziej skomplikowany projekt]
- Czy wdrożenie blokchaina zredukuje ilość systemów, które aktualnie obsługują dany proces? [jak będzie wyglądać ROI?]
- Czy poprawię płynność transakcji poprzez wyeliminowanie centralnego notariusza? [na przykład nie muszę czekać na potwierdzenie transakcji przez notariusza, pieniądze nie są zamrożone]
- Czy będę w zgodzie z regulacjami prawnymi, które muszę uwzględnić dla mojego procesu biznesowego?
- Czy uda mi się zredukować ryzyko operacyjne?
- Czy węzły w sieci mają być prywatne, czy publiczne?
- Jakiej wydajności oczekuję od swojej sieci?
- Jakich funkcjonalności będę chciał używać?
- Z ilu węzłów będzie zbudowane środowisko?
- Czy znajdę developerów i architektów dla swojego projektu?
- Jak dojrzały jest framework i narzędzia, w oparciu o które będę budował swoją sieć?
- Czy jeżeli muszę zaimplementować jakiś proces w określonym terminie, to czy, mając na uwadze wszystko powyższe, zdążę wykonać całą pracę na czas?
- ...
Oczywiście powyższa lista pytań nie jest skończona. Jest to tylko czubek góry lodowej. Gdy będziesz jednak sobie na nie odpowiadał pamiętaj, że blockchain nie jest gotowym produktem, który kupisz w ładnie zapakowanym pudełku i wdrożysz w ciągu kilku tygodni.
Hyperledger, czy Ethereum? A może jeszcze coś innego?
Casey Kuhlman, który jest członkiem obydwu tych projektów, powiedział kiedyś, że Enterprise Ethereum jest postrzegane bardziej jako ciało określające standardy, podczas gdy Hyperledger jest naturalnym miejscem (domem) implementacji tych standardów. Decyzja, który typ implementacji blockchaina wybrać tak naprawdę będzie w dużej mierze zależeć od potrzeb i wymagań związanych z procesem biznesowym, który chcemy zaimplementować, korzystając z tej technologii.
Obydwa projekty są projektami typu open source i zrzeszają firmy i organizacje, które partycypują w ich rozwoju (budowaniu narzędzi, rozwijaniu kodu).
W projekcie Hyperledger uczestniczą między innymi takie firmy jak (niektórzy członkowie typu Premier, wymienieni w kolejności alfabetycznej): Accenture, Airbus, American Express, Cisco, Daimler, Hitachi, IBM, Intel, JP Morgan, R3CEV (konsorcjum, które zrzesza kilkadziesiąt banków i instytucji finansowych), SAP.
Ciekawostka: w ostatnich latach największymi kontrybutorami projektu były firmy IBM oraz Hitachi.
Po co mi blockchain? Przykłady zastosowań.
Czy Tobie również w pierwszej kolejności przychodzą do głowy przykłady wykorzystania blockchaina na rynku usług finansowych? Rzeczywiście jest to chyba najbardziej naturalny kierunek. Okazuje się jednak, że zainteresowanie tą technologią jest coraz większe również w innych obszarach biznesu. Oto kilka przykładów:
- łańcuchy dostaw towarów z zapisem warunków transportu i danych z czujników IoT,
- śledzenie części i numerów seryjnych podzespołów,
- rejestry pacjentów w służbie zdrowia,
- marketplace dla energii, gazu, paliwa,
- handel nieruchomościami,
- notarialne potwierdzanie kontraktów prawnych,
- … [miejsce na Twoje pomysły].
I jeszcze z rynku usług finansowych:
- marketplace dla polis reasekuracyjnych,
- smart kontrakty pomiędzy dostawcami i odbiorcami usług ubezpieczeniowych,
- transfer funduszy pomiędzy klientami banku,
- transfer funduszy pomiędzy bankami z pominięciem izby rozliczeniowej,
- smart kontrakty dla pożyczek konsumenckich,
- handel papierami wartościowymi,
- … [miejsce na Twoje pomysły].
No wszystko fajnie, ale w jaki sposób ten cholerny blockchain może zmienić model prowadzenia biznesu?
Mam propozycję. Popłyńmy na chwilę razem w „siną dal” i zobaczmy na jednym konkretnym przykładzie, jak mogłoby w tej „sinej dali” wyglądać wykorzystanie blockchaina.
Na początek wersja tradycyjna, w oparciu o papierowe umowy pomiędzy uczestnikami transakcji:
- Importer w Europie kupuje towar od eksportera w Azji.
- Importer zleca przelew pieniędzy ze swojego banku do banku eksportera.
- Izba rozliczeniowa kontroluje transfer pieniędzy pomiędzy bankami importera i eksportera.
- Eksporter otrzymuje pieniądze ze swojego banku.
- Eksporter wynajmuje firmę transportową do przewiezienia towaru z Azji do Europy.
- Eksporter ubezpiecza towar w firmie ubezpieczeniowej.
- Firma transportowa dostarcza towar do importera.
- Kontrakt zrealizowany.
A teraz wersja z blockchainem. W smart kontrakcie definiujemy logikę biznesową procesu. Może to wyglądać na przykład w ten sposób: jeżeli zapłata z konta importera wpłynęła na konto eksportera, to wynajmij firmę transportową, która wyśle towar z Azji do Europy. Poszczególne transakcje dopisywane są do rejestru (do łańcucha bloków). Informacje o tych transakcjach propagowane są do wszystkich zainteresowanych stron. Rolę notariusza pełnią bloki w łańcuchu. Nie ma konieczności udziału w transakcji centralnego podmiotu kontrolnego. I to wszystko zautomatyzowane i działające w oparciu o proste zasady logiki zapisanej w smart kontraktach (logiki typu if <…> then <…>):
- Importer w Europie kupuje towar od eksportera w Azji.
- Transakcja 1: Umowa sprzedaży pomiędzy podmiotami wraz z ubezpieczeniem towaru.
- Transakcja 2: Bank importera przelewa pieniądze z konta importera do banku eksportera.
- Transakcja 3: Transfer pieniędzy między bankami (z pominięciem izby rozliczeniowej).
- Transakcja 4: Zasilenie konta eksportera.
- Transakcja 5: Firma transportowa odbiera towar od eksportera (tutaj dodatkowo na przykład śledzenie towaru w trakcie transportu i dopisywanie kolejnych transakcji do rejestru z informacjami m.in. z czujników IoT na temat warunków transportu).
- Transakcja 6: Firma transportowa dostarcza towar do importera.
- Kontrakt zrealizowany.
Tyle zmian w procesach. A to tylko jedna prosta transakcja zakupu i dostawy towaru. Pytanie, czy po tylu latach przyzwyczajeń, jesteśmy w stanie wyrzucić je do kosza i zacząć prowadzić nasze biznesy „nieco” inaczej. Myślę, że jeżeli tylko będą stały za tym oszczędności (które zwiększą naszą konkurencyjność na rynku) lub inne wymierne korzyści, takie jak na przykład poprawa płynności finansowej, to krok po kroku, powolutku będziemy zmierzać w kierunku coraz szerszego wykorzystania technologii blockchain.
Dodaj komentarz