Blockchain okiem realisty

Wraz z Ivo Zielińskim z GFT Łódź zapraszamy do serii artykułów, w której weźmiemy pod lupę najciekawsze aspekty blockchaina. Jest to bez wątpienia jedna z najbardziej obiecujących technologii ostatnich lat, musimy jednak pamiętać, że wiążą się z nią bardzo trudne (a zarazem ciekawe) wyzwania. W związku z tym, w naszej pierwszej rozmowie postaramy się spojrzeć na blockchain chłodnym okiem – nie zapominając oczywiście o jego ogromnych możliwościach. Miłej lektury!

W GFT pracujecie nad rozwiązaniami opartymi na blockchainie. Wasz pierwszy projekt dotyczył dość niecodziennego zastosowania tej technologii – na czym polegał?

Ivo Zieliński: Tak, chodzi o projekt Jupiter, który zrealizowaliśmy w ramach pracy w GFT Applied Technologies. Mieliśmy opracować proof of concept z wykorzystaniem blockchaina do śledzenia fizycznych obiektów. Nasz scenariusz dotyczył sektora handlu metalami: sytuacja wyglądała tak, że bank udzielił kredytu zabezpieczonego dużym ładunkiem metalu – kontenery setek, jeśli nie tysięcy ton surowca. Niestety kredytobiorca nie spłacił kredytu i bank chciał odzyskać pieniądze. Tymczasem okazało się, że metal został już sprzedany – właściciel magazynu został przekupiony i prowadził podwójne księgi.

Konrad Kozioł: Obracał tym samym materiałem kilka razy.

Ivo: Tak, i aby uniemożliwić tego typu zdarzenia, chcieliśmy śledzić własność i fizyczną lokalizację takich wielkich ładunków metalu, właśnie za pomocą blockchaina.

Na czym polegała Wasza implementacja?

Konrad: Była to aplikacja webowa, z możliwością weryfikacji smartfonem. Opracowaliśmy interfejs z listą metali obecnych w magazynach, i za pomocą aplikacji mobilnej użytkownik mógł wybrać paczkę metalu do transportu, np. z Japonii do Włoch. Po dokonaniu określonych procedur w aplikacji webowej oraz uwierzytelnienia przy pomocy telefonu, można było sprawdzić i zweryfikować kto podpisał się pod daną transakcją. Zastosowanie blockchaina gwarantowało, że zapis jest wiarygodny i nienaruszalny – eliminując ryzyko nadużyć, do których doszło wcześniej. Wszystko to działało na bazie frameworku Ethereum i ostatecznie okazało się sporym sukcesem.

O blockchainie słyszy się głównie w kontekście sfery finansowej, przede wszystkim kryptowalut bitcoin, ale tutaj mamy przykład na to, że można go użyć do rozwiązywania bardziej tradycyjnych problemów.

Konrad: Dokładnie. Niektórzy próbują też zaimplementować blockchain w obrębie Internet of Things – tzw. Blockchain of Things. Można go stosować w najróżniejszych sytuacjach, nawet w urządzeniach codziennego użytku.

Jeśli chodzi o zastosowania blockchain bliższe rynkom finansowym, braliście udział w projekcie Emerald dla Royal Bank of Scotland.

emerald-platform.gitlab.io

Ivo: Tak, w ramach Emerald, RBS opracował własną aplikację blockchainową, dzięki której banki mogły dokonywać transferów kredytu i ustawiać tzw. trust line’y. System służył do monitorowania tych trust line’ów i przelewów. Miało to spełniać taką funkcję jak SEPA, czyli system międzynarodowych wymian bankowych obowiązujący w Unii Europejskiej. RBS chciał zweryfikować zewnętrznie czy ma to sens biznesowy i czy system będzie w stanie poradzić sobie z większą ilością danych. Cel był taki, żeby obsługiwać 100 transakcji na sekundę. My jako GFT wykorzystaliśmy narzędzia cloudowe Google i zaprojektowaliśmy testy dużych sieci opartych na blockchainie Ethereum, które były zautomatyzowane w taki sposób, żeby monitorować duże wolumeny transakcji. Nasz system śledził każdą z nich i sprawdzał czy spełniane są wszystkie kryteria – przede wszystkim czy każda transakcja zajmuje mniej niż 8 sekund – co jest wymogiem podyktowanym prawnie. Aby tego dokonać musieliśmy nieco zmodyfikować kod źródłowy Ethereum i ostatecznie odnieśliśmy sukces.

I tu właśnie natknęliśmy się na pierwszą istotną rozbieżność między „prawdziwym światem”, a tym jak działa blockchain. Otóż wszystko w blockhainie trwa bardzo długo – przykładowo w bitcoinie, każda modyfikacja, każda najmniejsza operacja, zajmuje ok. 10 minut – a trzeba jeszcze czekać do godziny żeby upewnić się, czy transakcja nie zostanie gdzieś po drodze odrzucona. W Ethereum wynik ten jest znacznie lepszy – wynosi 13 sekund – ale to wciąż za mało jak na potrzeby rynku finansowego. Dlatego też musieliśmy dostosować tę technologię do własnych potrzeb. Ale udało się.

» Pobierz artykuł techniczny o rozwiązaniu Emerald, którego współautorem jest Ivo Zieliński.

Jak wygląda obecnie sytuacja na linii blockchain a wspomniany przez Ciebie „prawdziwy świat”?

Ivo: Zacznijmy od tego, że środowisko ludzi związanych z blockchainem – ludzi, którzy rozwijają te wszystkie platformy – to są głównie młodzi idealiści i rewolucjoniści, którzy nie patrzą na to, jak dostosować technologię do przemysłu, tylko jak zastąpić rządy I instytucje zdecentralizowanymi systemami blockchainowymi.

Konrad: Tak, i zazwyczaj w takim przypadku wady blockchaina próbuje się przesłonić jego niewątpliwymi zaletami – ale jednak te wady istnieją i należy o nich pamiętać. Tym nie mniej blockchain daje wysoki poziom bezpieczeństwa transakcji i to w dużym stopniu stanowi o jego atrakcyjności.

Ivo: Zasadniczą zaletą jest rozproszony charakter tej sieci: nie ma tu jednego, centralnego punktu z danymi, nie ma jednej osoby bądź instytucji, która decydowałaby co trafia do blockchaina, a co nie. Każda modyfikacja w warstwie danych musi być zaakceptowana przez wszystkich użytkowników sieci.

Konrad: I to właśnie okazało się bardzo korzystne w kontekście naszego projektu Jupiter i use case’u z handlem metalem – mechanizmy „automatyzacji zaufania”, które oferuje blockchain skutecznie zapobiegają nieuczciwym operacjom.

 

 

Blockchain oferuje więc nie tylko mechanizm zapobiegający nadużyciom ze strony jednostki zarządzającej siecią, ale też chroni przed efektami ewentualnych ataków na taką jednostkę, np. ataków hackerskich.

Konrad: Dokładnie.

Ivo: Zgadza się, choć warto zaznaczyć, że ceną tego jest jawność danych – są one publicznie dostępne dla wszystkich użytkowników sieci.

Konrad: Oczywiście można zaimplementować pewne mechanizmy na wyższym poziomie, służące szyfrowaniu danych, ale to z kolei odbije się na ogólnej szybkości działania.

Ivo: Do tego w momencie, gdy zaczynamy szyfrować nasze zmiany czy transakcje, to w zasadzie tracimy korzyść wynikającą z weryfikacji danych.

Konrad: Coś za coś.

Ivo: Tak jest. Ale właśnie w kontekście projektu Emerald dla RBSu – to nie miała być sieć jak w bitcoinie, tylko sieć dla wąskiej grupy uczestników – ośmiu czy dziesięciu banków. Nikt inny nie ma dostępu do tych danych. Takie prywatne zastosowanie blockchaina to też w zasadzie jedyna opcja dla rządów – jeśli administracja państwa chciałaby go używać do obsługi systemu opodatkowania, to te dane na pewno nie mogłyby być jawne – mamy w końcu prawo o ochronie danych osobowych. A to technologia musi dostosować się do prawa, nie odwrotnie.

Jakie realne korzyści dla sektora finansowego niesie blockchain?

Przykłady zastosowań blockchaina

Ivo: Na pewno elementarnym aspektem tego rynku jest ryzyko. Każda transakcja się z nim wiąże: im dłuższy jest łańcuch pośredników, tym większe ryzyko, że któryś z nich zawiedzie – okaże się niewypłacalny lub nieuczciwy. Mamy do czynienia z asymetrią informacji – nie wiadomo komu ufać. W momencie gdy używamy blockchaina, eliminujemy ryzyko związane z istnieniem pośredników.

Blockchain znajduje też zastosowanie jeśli chodzi o giełdę, czyli centralny punkt wymiany papierów wartościowych, który dba o legalność wszystkich transakcji. Dzięki tak zwanym smart contracts, możemy zautomatyzować proces weryfikacji i egzekwowania przepisów – procedury i przepisy regulujące aktualizację danych można zakodować bezpośrednio w blockchainie. W tym momencie część procesów dokonywanych na giełdzie staje się zbędna i tym samym koszty transakcji ulegają znacznemu obniżeniu.

Konrad: Blockchain daje wiele korzyści, ale to wszystko zależy od konkretnego przypadku – bo jednak czas dostępu do danych, a także ich publiczny charakter, stanowią sporą przeszkodę. Czy jego implementacja w każdej sytuacji ma sens? Trudno powiedzieć, ale na pewno mamy mnóstwo przykładów, które wydają się racjonalne. Przykładowo, mieliśmy przyjemność uczestniczyć w hackathonie blockchainowym w Madrycie. Rywalizowaliśmy z wieloma zespołami w zakresie opracowania pomysłu na implementację blockchaina. Nasz polegał na stworzeniu blockchainowego paszportu.

Ivo: Był to system ogólnego użytku do zarządzania tożsamością dla firm i rządów, w którym tożsamość danej osoby i jej dane biometryczne przechowywane są w prywatnym blockchainie. Użytkownik potwierdza użycie takiego paszportu przy pomocy aplikacji mobilnej i decyduje kto ma do niego dostęp. Przykładowo, w momencie gdy przechodzimy przez granicę, otrzymujemy na smartfonie powiadomienie, że strażnik chce spojrzeć na nasz paszport. W momencie akceptacji, nasz system automatycznie pobiera hash naszego zdjęcia z blockchaina (bo samo zdjęcie jest przechowywane gdzie indziej), i wówczas strażnik uzyskuje dostęp do zdjęcia i danych, może je zweryfikować i zaakceptować tożsamość. Poza zapewnieniem wiarygodności danych, która wynika ze specyfiki blockchaina, nie ma już konieczności posiadania fizycznego dokumentu, który jest drogi w produkcji i można go zwyczajnie zgubić.

Konrad: Pomysł powstał z inspiracji sytuacją, kiedy ktoś mając nasz dokument tożsamości może np. wziąć kredyt na nasze nazwisko – nasz system eliminuje takie ryzyko.

Konrad Kozioł i Ivo Zieliński z GFT Łódź

Jak oceniacie ogromny entuzjazm jaki blockchain wywołuje w wielu kręgach, nie tylko tych związanych stricte z IT bądź sektorem finansowym? Być może część entuzjastów blockchaina nie zdaje sobie sprawy z pewnych ograniczeń technicznych?

Ivo: Według mnie z prawie każdą innowacyjną technologią jest tak, że część osób twierdzi, że oto nadchodzi przysłowiowy mesjasz i nic już nie będzie takie samo. „Od dziś róbmy wszystko w blockchainie!” Ale tak nie jest – musimy na to patrzeć jak na narzędzie, które ma pewne wady i zalety. Zaletą jest przede wszystkim bezpieczeństwo i brak centralizacji danych – ale jest też wiele wad. Wspomniana jawność danych, powolność, i ogólnie zdecydowanie gorsza wydajność niż w przypadku klasycznych baz relacyjnych. Nie można tez w blockchainie trzymać dużych danych, on się po prostu do tego nie nadaje. Każda operacja wymaga bardzo wielu obliczeń kryptograficznych. Blockchain jest też tak naprawdę bardzo trudny do zaimplementowania – systemy rozproszone mają to do siebie, że dają mnóstwo korzyści, ale są też o wiele bardziej skomplikowane. O wiele bardziej złożone są błędy jakie mogą w nich wystąpić, mamy znacznie więcej scenariuszy, musimy wziąć pod uwagę, że do niektórych węzłów systemu niektóre transakcje nie docierają  …i co wtedy? No i jest mechanizm oczekiwania na wszystko – czekasz 13 sekund zanim transakcja zostanie przetworzona.

I jest jeszcze jedna zasadnicza wada – jeśli popełnisz błąd i wprowadzisz go do blockchaina, to już nie ma odwrotu. Słyszałem o takim przypadku, że ktoś zwyczajnie pomylił pola w transakcji – przy transakcji bitcoinowej mamy pole napiwku, jest to premia, jakiej można udzielić minerowi. Nieszczęśnik pomylił pola kwoty transakcji i napiwku – przelał 2 centy i udzielił pół miliona dolarów napiwku. No i niestety – cluster miningowy dostał te pieniądze. Oczywiście je zwrócili, bo byli w porządku – ale nie musieli, i nic by ich do tego nie mogło zmusić.

Konrad: Z drugiej strony to samo może się stać przy konwencjonalnych systemach. Chociaż rzeczywiście wycofanie takiej pomyłki w bitcoinie jest znacznie trudniejsze.

Ivo: Właśnie – w momencie gdy popełnisz błąd lub wyślesz pieniądze na istniejący adres – pomylisz „0” z „1”, nikt Ci nie pomoże.

W normalnym systemie bank może zainterweniować, tutaj nie.

Ivo: Dokładnie, administrator może ręcznie odwrócić transakcję, w bitcoinie jest to po prostu niemożliwe. Podobnie jeśli zgubisz swój klucz prywatny, to tracisz wszystko. Albo jeśli ktoś wykradnie taki klucz.

Jak oceniacie aktualny poziom dojrzałości technologii, na bazie których można używać blockchaina?

Ivo: Mamy obecnie całe mnóstwo startupów i firm, ale też dużych banków, które prowadzą własne inicjatywy związane z blockchainem. One wszystkie tworzą różne systemy, które tak naprawdę konkurują ze sobą. Nie wyłonił się do tej pory żaden lider, nie ma dominacji jednego rozwiązania. Jest oczywiście bitcoin, ale to jest blockchain bardzo ograniczonego zakresu, do transakcji pieniężnych. Warto też wymienić Ethereum, bo jest to bardzo szeroka platforma – można na niej programować, można implementować różnego rodzaju systemy. Istnieje kompletny język programowania z tym związany i wiele firm próbuje stworzyć własne implementacje różnych przeznaczeń.

Mimo to istnieją spore bariery – w mojej ocenie największą z nich jest obecnie prawo. Jeśli chcemy w finansach wykorzystywać blockchaina, to trzeba się zastanowić jak będzie wyglądała weryfikowalność zapisanych w nim danych – np. przed sądem. „OK, tu jest zapisany w blockchainie dowód na to, że przelałem pieniądze”. Ale sąd zapewne spojrzy na to i powie, że nie rozumie tych cyfr, że potrzebny jest podpis notariusza, a tak w ogóle to wszystko nie mieści się w prawie. To jest coś, co musi się zmienić nie tylko na poziomie technologicznym, ale też prawnym i społecznym.

Konrad: Zgadzam się, chociaż widzę tu pewien potencjał dla nowej grupy specjalistów – może pojawić się zapotrzebowanie na ludzi, którzy będą w stanie wytłumaczyć te wszystkie skomplikowane zagadnienia kryptograficzne i przełożyć je na język prawa czy, ogólnie rzecz biorąc, życia codziennego. A to nie jest wcale takie proste.

Ivo: Wracając do kwestii dojrzałości blockchaina: tak jak wspominaliśmy, technologia ta jest strasznie powolna i zobaczymy jeszcze jak to będzie rozwiązane – o ile w ogóle. Poza tym, dla zwyczajnych „śmiertelników” korzystanie z tego jest naprawdę trudne. Dajmy na to aplikacje działające na wspomnianym Ethereum: mimo, że jest to relatywnie popularna platforma, to używanie ich nie będąc programistą to tak naprawdę koszmar. Trzeba być pasjonatem albo mieć bardzo dużo determinacji.

Czyli dla szarego użytkownika w tym momencie pozostaje bitcoin?

Ivo: Tak, bitcoin jest prosty w obsłudze, są też różne inne waluty alternatywne. Ale myślę, że najważniejszą rzeczą jaka musi wyewoluować w świecie blockchaina to nasze zrozumienie tej technologii. Trzeba zrozumieć, ze ona niekoniecznie zmieni cały świat, i że ma istotne zalety, które nie polegają wcale na odwracaniu wszystkiego do góry nogami. A sam bitcoin istnieje przecież od wielu lat, i w zasadzie nic wielkiego się nie stało. Kryptowaluty funkcjonują, rządy próbują je regulować czy nawet opodatkować – jest ogólnie rzecz biorąc spory bałagan prawny. A świat bitcoinowy sobie istnieje mimo tego wszystkiego. To jest trochę jak z torrentem, który też jest rozproszoną siecią – nie da się kontrolować torrenta, tak jak nie da się kontrolować bitcoina.

Wiele z Waszych spostrzeżeń to przysłowiowy kubeł zimnej wody w kontekście hiperetuzjastycznych opinii na temat blockchaina, które zdają się dominować w sieci. Jak w tym świetle oceniacie realne szanse na rozpowszechnienie tej technologii poza obszar transakcji pieniężnych czy też rozwiązań natury R&D?

Blockchain w pigułce – kliknij, aby powiększyć

Ivo: Tak naprawdę wszystko zależy od narzędzi. My głównie używaliśmy Ethereum. Jest to platforma, która rozwija się z dnia na dzień – ciągle coś się zmienia, pojawiają się nowe wersje, stare przestają działać. Żeby pojawiło się biznesowe wykorzystanie w produkcji, musimy mieć stabilną platformę – a takiej aktualnie po prostu nie ma. Czyli w momencie, gdy firmy będą chciały zredukować koszty, zająć się jakimś realnym procesem biznesowym – mowa np. o audytach , pośrednikach, księgowości etc. – słowem gdy firmy znajdą realną potrzebę stosowania blockchaina i pojawi się stabilne narzędzie, stabilna platforma – wtedy zaczniemy mówić o zastosowaniach produkcyjnych dużego kalibru. Na razie to, co istnieje na rynku, to są głównie startupy z pomysłami opartymi na globalnym blockchainie Ethereum, w którym implementują przeróżne globalne systemy – loterie, wypożyczalnie samochodów, ubezpieczenia – cały przekrój. Ale firmy nie będą chciały używać globalnego blockchaina, tylko będą chciały mieć własne, w pełni kontrolowane sieci, w których będą mogły działać wewnętrznie lub z innymi firmami. Musi to być certyfikowane – jak MS SQL, Java, Oracle – przetestowane, przeanalizowane, stabilne. W tym kierunku zmierza Hyperledger – jest to inicjatywa Linux Foundation, która skupia inicjatywy blockchainowe gigantów IT takich jak IBM czy Intel, a także banków i innych dużych instytucji. Tym niemniej każdy wielki gracz próbuje coś tam wcisnąć i ogólnie rzecz biorąc jest to nadal dość chaotyczne.

Na koniec, pytanie natury praktycznej. Rynek pracy IT w Polsce jest przesycony ofertami wymagającymi najpowszechniejszych umiejętności o niewielkiej specjalizacji, takimi jak “Programista Java”, czy “Programista baz danych”. Czy według Was w kontekście blockchaina pojawi się zapotrzebowanie na „Specjalistów blockchain + Java”, w miejsce tradycyjnych specjalistów Java? Czy to tak naprawdę to samo?

Ivo: W świecie blockchaina jest wiele różnych systemów z bibliotekami i API różnej maści, większość start-upów pisze swoje pierwsze biblioteki klienckie jako moduły do node.js. Wraz z rozwojem dochodzą biblioteki w innych językach (Java, ruby etc.). A blockchain nie jest tak naprawdę ściśle związany z jakimkolwiek językiem programowania, bardziej liczy się samo zrozumienie jego idei i problemów związanych z systemami tego typu – rozproszenie systemu, opóźnienia, odrzucenie transakcji, fault tolerance, uprawniania, mining itd.

Ostatecznie to głównie architekci będą musieli w pełni pojąć blockchaina, natomiast developerzy będą używać tylko innej biblioteki. Developer ma tu o wiele mniejsze pole do popisu niż w przypadku relacyjnych baz danych, gdzie musimy dbać o ACID i security – wszystko to już jest wbudowane w bazę blockchain. Developer tylko montuje transakcje, wrzuca ją do sieci i czeka na jej powodzenie lub odrzucenie.

Na pewno pojawią się specjaliści od konkretnych technologii blockchainowej np. Ethereum specialist albo Sawtooth Lake expert potrafiący sprawnie pracować z ich API i znający ich specyfikę. Ale, tak jak wspomnieliśmy wcześniej, póki co wszystkie te technologie są w tak wczesnej fazie rozwoju, że trudno mówić tu o jakichkolwiek standardach i stabilnych bibliotekach.