Blockchain to jeden z najgorętszych technologicznych tematów – nad wykorzystaniem idei łańcucha bloków pracują zarówno wielkie banki, jak i tysiące start-upów. Jedni mówią, że zrewolucjonizuje świat, nie tylko w sferze finansów, inni, że jest „rozwiązaniem poszukującym problemu”.


Odpowiadając na zainteresowanie naszych czytelników tym tematem wyrażone w wynikach głosowania w sondzie #naBankiera, przyglądamy się idei blockchaina, jej podstawom i potencjalnym zastosowaniom.
Słowo „blockchain” (łańcuch bloków) powszechnie kojarzone jest z kryptowalutą bitcoin. To dzięki niej udało się po raz pierwszy w praktyce sprawdzić skuteczność idei, która ma swoje korzenie w koncepcjach tworzonych przez specjalistów od kryptografii od lat 70. XX w. Niezależnie od tego, jak ocenia się efektywność bitcoina jako narzędzia płatności i specyficznego typu pieniądza, można powiedzieć, że rejestr transakcji leżący u jego podstaw zdał egzamin – zapewnia bezpieczne funkcjonowanie schematu, który obywa się bez podmiotu pełniącego rolę centrum rozliczeniowego.
Wiele instytucji, z usług których korzystamy codziennie, nazwać można „strażnikami danych”. Przykładem może być bank przechowujący nasze pieniądze w bezgotówkowej formie. Powierzamy mu środki, ufając, że będzie on w stanie bezpiecznie i bezbłędnie rozliczać zlecane mu operacje. Bank prowadzi bazę danych, do której dostęp ma tylko on. Ilekroć płacimy kartą, bank zajmuje się całym procesem wymiany informacji z innymi instytucjami – organizacjami kartowymi, agentami rozliczeniowymi itp. Cały schemat bazuje na ograniczonym zaufaniu, a bazy danych (np. transakcji) są zamknięte, strzeżone przed dostępem z zewnątrz. „Strażnicy” w takim schemacie cieszą się szczególną pozycją, stają się monopolistami czerpiącymi korzyści z zaufania, którym obdarzają ich klienci lub wyjątkowego położenia wynikającego z przepisów prawa (jak jest w przypadku chociażby rejestrów prowadzonych przez bazy informacji kredytowej).
Łańcuch bloków to specyficzny sposób zapisu danych – w odróżnieniu od „klasycznych” baz danych ma rozproszony charakter (nie jest kontrolowany przez jednego „strażnika”) i zapewnia niezmienność raz wprowadzonych informacji oraz mechanizm walidacji (sprawdzenia) dodawanych danych wraz ze sposobem osiągnięcia konsensusu, gdy pojawia się kilka niespójnych ze sobą zapisów. Zasadę jego działania można przedstawić, w uproszczeniu, na najstarszym przykładzie – schemacie Bitcoin.
Jak działa blockchain Bitcoina?
Blockchain systemu Bitcoin jest rejestrem transakcji, w którym odnotowuje się przypisanie jednostek kryptowaluty do poszczególnych adresów (kont użytkowników, „portfeli”), wydanie ich, transakcje wygenerowania nowych jednostek oraz opłaty pobierane przy transakcjach. Podstawową jednostką rejestru jest tzw. blok. Zawiera on zestaw danych o transakcjach wykonanych od momentu wygenerowania poprzedniego bloku. Można go sobie zatem wyobrazić jako „porcję” danych.
Każdy z bloków zawiera unikalny znacznik (hash). Znacznik ten obliczany jest na podstawie wszystkich transakcji, które weszły w skład bloku, a także znacznika poprzedniego bloku w historii. Dzięki temu powstaje łańcuch – każdy blok odwołuje się do swojego poprzednika.
Rejestr Bitcoina ma rozproszony charakter – użytkownicy sieci mają kopie bazy, a nowe transakcje „rozgłaszane” są w sieci, gdzie poszczególne węzły weryfikują ich poprawność, a następnie pracują nad wygenerowaniem kolejnego bloku. Podwójne wydanie jednostki pieniądza zostanie dzięki temu dostrzeżone przez inne węzły w sieci sprawdzające dokonywane transakcje.
Teoretycznie możliwe byłoby podwójne wydanie jednostki pieniądza przez nieuczciwego użytkownika zanim pozostałe węzły w sieci otrzymają informację o poprzedniej transakcji i zaktualizują swoją wersję historii operacji. W systemie Bitcoin problem ten rozwiązano poprzez opóźnienie realizacji transakcji. Kolejne „porcje” informacji o transakcjach włączane są do łańcucha bloków nie w czasie rzeczywistym, ale po kilkunastu minutach potrzebnych na wygenerowanie bloku. Dodatkowo przed próbą dokonania nieuczciwej transakcji chroni kolejny mechanizm – tzw. proof of work (dowód wykonanej pracy). Wygenerowanie kolejnego bloku wymaga nie tylko sprawdzenia transakcji, które mają wchodzić w jego skład, ale również zaangażowania znaczącej mocy obliczeniowej.
W uproszczeniu węzeł w sieci, który chce stworzyć nowy blok, musi wykonać następujące czynności:
- Zebrać z sieci informacje o transakcjach, które zostały wykonane od momentu wygenerowania poprzedniego bloku. Wysyłający do sieci swoje transakcje oferują opłaty transakcyjne dla „górników” (tak nazywa się węzły „wydobywające” bloki) tak, aby ci mieli motywację, by jak najszybciej potwierdzić je i ująć w kolejnym bloku. Blok ma określoną pojemność, dlatego węzeł może nadać priorytet transakcjom, gdzie zadeklarowano wyższe opłaty, a pozostałe pozostawić do potwierdzenia później.
- Zweryfikować transakcje zgodnie z wymaganiami protokołu schematu Bitcoin, m.in. pod kątem podwójnego wydania.
- Wygenerować tzw. hash bloku. Wartość ta to wynik jednokierunkowej funkcji skrótu, która ma specyficzne właściwości. Wynik tej funkcji to ciąg znaków o określonej długości, pozornie losowy. Nawet niewielka zmiana jednego z argumentów funkcji daje w wyniku zupełnie inny hash. Spójrzmy na uproszczony przykład: jeśli przez algorytm hashujący MD5 (jeden z wielu o takich właściwościach) przepuścimy następujące zdanie „dziś jest 1 sierpnia”, to otrzymamy hash „0410c3766c8c6545d4ab2ebe25574924”. Natomiast hash zdania „dziś jest 2 sierpnia” ma postać „2f69dea8f0c6843c40f1ded2dac82a4d”. Zmiana jednego znaku powoduje, że wynik jest zupełnie inny. Istotne jest, że z wyniku funkcji hashującej nie da się „odzyskać” jej argumentów w inny sposób niż poprzez sprawdzenie różnych kombinacji znaków.
- Hash bloku generowany jest na podstawie m.in. transakcji zawartych w bloku, hasha poprzedniego bloku w historii oraz dodatkowego elementu, tzw. nonce. Aby hash mógł zostać przyjęty przez pozostałe węzły w sieci Bitcoin (być „pieczęcią” zamykającą blok), musi on spełnić ważne wymaganie – posiadać odpowiednią ilość zer na początku. Górnik musi zatem próbować kolejno różnych wartości nonce i sprawdzać, czy otrzymany hash spełnia warunek. Jeśli nie, operację się powtarza. W praktyce zadanie to wymaga wykorzystania znaczącej mocy obliczeniowej, a poziom trudności zadania algorytm generowania bloków dopasowuje okresowo do mocy, którą dysponują wszystkie węzły tak, aby nowy blok był generowany mniej więcej co 10 minut.
- Po wygenerowaniu hasha spełniającego wymagania rozsyła nowy blok do pozostałych węzłów, podając wartość nonce. Każdy z górników może łatwo sprawdzić, czy rzeczywiście pracochłonne zadanie zostało wykonane, samodzielnie wyliczając hash.
Generowanie kolejnych bloków jest zadaniem, przy realizacji którego poszczególne węzły w sieci konkurują ze sobą. Stworzenie bloku nagradzane jest przypisaniem „górnikowi” nagrody w postaci określonej liczby bitcoinów. Ten mechanizm odpowiada za podaż nowych bitcoinów, a wielkość nagrody maleje wraz z upływem czasu – co kilka lat zostaje zmniejszona o połowę. Zwycięski węzeł otrzymuje dodatkowo wpływy z opłat od transakcji. System ten tworzy zatem ekonomiczny bodziec zachęcający do utrzymywania współdzielonej historii transakcji i uczestniczenia w dodawaniu kolejnych porcji transakcji.
Warto zauważyć, że generowanie hasha bloku z użyciem hasha poprzedniego bloku w historii powoduje, że bloki tworzą łańcuch, którego nie da się łatwo zmodyfikować. Można wyobrazić sobie, że nieuczciwy użytkownik zechce zmienić jakąś transakcję z przeszłości, np. aby przypisać sobie bitcoiny innego posiadacza. Sfałszowanie historii wymagałoby nie tylko wygenerowania od nowa bloku, w którym zawarta jest podrabiana przez oszusta transakcja, ale również wszystkich kolejnych bloków następujących po nim. Przypomnijmy, że nawet niewielka zmiana na wejściu algorytmu hashującego powoduje nieprzewidywalną zmianę hasha i w efekcie „unieważnia” hashe bloków, które są następne w historii. W tym czasie „uczciwe” węzły nadal nieprzerwanie pracują nad generowaniem kolejnych bloków. Atakujący musiałby zatem dysponować większą mocą obliczeniową niż pozostałe węzły łącznie.
Od blockchaina do DLT
Bitcoinowy łańcuch bloków jest specyficznym rodzajem technologii określanej mianem rozproszonego rejestru transakcji (DLT – Distributed Ledger Technology). Pojęcie to można zdefiniować jako zestaw rozwiązań technologicznych, który umożliwia zestandaryzowane, zabezpieczone kryptograficznie zapisywanie aktywności, rozprowadzane i wykorzystywane przez sieć zróżnicowanych podmiotów. Zapisy w takiej bazie danych mogą dotyczyć nie tylko transakcji finansowych, ale także np. posiadania lub tożsamości.
Rozproszone rejestry transakcji mogą przyjąć kilka modeli działania:
- Publiczne DLT są w pełni przejrzyste dla użytkowników – każdy może śledzić zapisy oraz proces dodawania i edytowania transakcji (podobnie jak w sieci Bitcoin).
- Prywatne DLT ograniczają dostęp do historii transakcji do wyselekcjonowanego grona – np. tylko banków-uczestników.
- DLT typu permissioned składają się z dwóch typów użytkowników – mających prawo dokonywania zmian w rejestrze transakcji i pozostałych.
- DLT typu unpermissioned zakładają, że każdy węzeł w sieci może weryfikować transakcje i dodawać je do wspólnie utrzymywanego rejestru.
DLT zakłada równoczesny dostęp wielu uczestników i zabezpieczoną mechanizmami kryptograficznymi przejrzystość procesu odnotowywania kolejnych zapisów. Koncepcja rozproszonego rejestru pozwala na dokonywanie transakcji w środowisku elektronicznym stronom, które nie mają do siebie zaufania, przy zachowaniu pełnej przejrzystości operacji. Stąd biorą się nadzieje, że wprowadzenie DLT pozwoli uprościć wiele procesów, które do tej pory opierały się na wykorzystaniu zaufanej trzeciej strony, pośrednika zapewniającego poufność i finalizację operacji. Jednym z najgłośniejszych przykładów jest fenomen ICO, gdzie idea społecznościowych zbiórek łączy się z mechanizmem pierwotnej oferty publicznej akcji.
Finansiści w awangardzie
Mogłoby się wydawać, że instytucje finansowe zechcą wykorzystać nową technologię przede wszystkim w obsłudze płatności. Jednym z obiecujących zastosowań DLT są międzybankowe rozliczenia transgraniczne. Przykładem specyficznego typu kryptowaluty przygotowanej z myślą o tego rodzaju użyciu jest Ripple, system rozwijany przez Ripple Labs. Schemat opiera się na rozproszonym rejestrze transakcji typu publicznego i ograniczonego (permissioned).
Kryptowaluta XRP, działająca w ramach schematu Ripple, może służyć jako „pomost” pomiędzy oficjalnymi walutami, które przekazują między sobą uczestnicy. Zamiast korzystać ze skomplikowanego systemu pośredników w ramach bankowości korespondenckiej, uczestnik-bank może zamienić środki na kryptowalutę, przesłać je do partnera transakcji korzystając z rozproszonego rejestru transakcji Ripple, a odbiorca ponownie zamieni XRP na docelową oficjalną walutę. System umożliwia również dokonywanie transakcji denominowanych w dowolnej walucie, co wymaga nawiązania „relacji zaufania” z innym użytkownikiem i zdefiniowania limitów kwotowych operacji. Podczas przetwarzania transakcji sieć wyszukuje drogę pomiędzy nadawcą a odbiorcą środków opierając się na zdefiniowanych relacjach, co w pewnej mierze przypomina nieformalny schemat transferów pieniężnych hawala.
Wdrożenie technologii rozproszonego rejestru transakcji mogłoby zagrozić pozycji m.in. organizacji SWIFT. Ten operator „finansowego internetu” stoi w obliczu utraty unikalnej pozycji pośrednika w transferze informacji pomiędzy bankami. Instytucja początkowo wypowiadała się sceptycznie o przyszłości blockchaina w globalnych rozliczeniach, ale teraz testuje wraz z kilkoma bankami schemat opierający się na platformie Hyperledger. Podobne obawy mogą mieć najwięksi operatorzy globalnych przekazów pieniężnych (jak np. Western Union), ale oni również nie tracą czasu i badają potencjał DLT. Również ubezpieczyciele mają już za sobą pierwsze testy produktów, w których sięgnięto po łańcuch bloków i inteligentne kontrakty.
Wiele instytucji finansowych tworzy własne schematy DLT i testuje ich zastosowania w dziedzinach nie związanych bezpośrednio z płatnościami. Przykładem może być konsorcjum R3. W rozproszonych rejestrach pokłada się nadzieję na obniżenie kosztów związanych z procesami obiegu dokumentacji, rozliczeń na rynku kapitałowym, transakcji wewnątrz międzynarodowych grup itp. Wyzwaniem dla instytucji finansowych jest jednak kwestia przejrzystości informacji gromadzonych w rozproszonych rejestrach – nie zawsze jest ona pożądana. Dlatego dominuje podejście bazujące na prywatnych DLT typu permissioned.
Rozproszone rejestry poza finansami
Technologia DLT teoretycznie mogłaby znaleźć zastosowanie wszędzie tam, gdzie dziś niepodzielnie panują wyspecjalizowani „strażnicy informacji”. Ma ona potencjał by dać użytkownikom dostęp do wiarygodnych danych, utrudniając fałszowanie zapisów i likwidując pośredników, którzy odgrywają rolę zaufanej trzeciej strony.
Wśród testowanych zastosowań DLT wymienić można co najmniej kilkanaście obszarów, z których za najbardziej obiecujące uznać wypada:
- Tworzenie platform umożliwiających bezpieczną identyfikację osób w cyfrowym świecie, w tym obsługę procesów uwierzytelniania w różnego rodzaju usługach sieciowych (np. Cryptid).
- Weryfikację autentyczności produktów fizycznych i informacyjnych – rozproszona baza może przechowywać dane o posiadaczach poszczególnych egzemplarzy i pozwalać na ich weryfikację (przykład – Blockverify).
- Obsługę systemów głosowania – śledzenie oddanych głosów wraz z opartą na kryptografii weryfikacją tożsamości uczestników procesu (np. Followmyvote).
- Zarządzanie urządzeniami „internet of things” – rozproszony rejestr umożliwić ma bezpieczną komunikację pomiędzy autonomicznymi przedmiotami (np. Filament).
- Zarządzanie łańcuchem dostaw w rozbudowanych sieciach dostawców i poddostawców (np. SKUchain).
- Tworzenie repozytoriów dokumentów z kryptograficzną weryfikacją stron kontraktów, co w przyszłości może doprowadzić do pojawienia się w pełni elektronicznych „biur notarialnych”.
- Budowanie schematów escrow w handlu elektronicznym, gdzie np. inteligentne kontrakty pozwolą na sfinalizowanie płatności po potwierdzeniu odbioru towaru przez nabywcę.
- Weryfikację autentyczności pochodzenia modułów oprogramowania, gdzie rejestr utrudnić może zadanie cyberprzestępcom przygotowującym złośliwe podróbki.
- Budowanie rejestrów praw własności intelektualnej, przypisywanie autorstwa treści – od rejestrów patentowych do zastosowania w bazach publikacji naukowych (przykład – Binded.com).
- Tworzenie schematów e-biletów zapewniających przejrzystość dystrybucji i eliminację fałszywek oraz handlu realizowanego przez „koników”.
- Obsługę gier losowych online, zakładów w e-sportach opartych na inteligentnych kontraktach i zaufanych trzecich stronach publikujących wyniki (tzw. wyroczniach, oracles, np. Firstblood).
- Wsparcie funkcjonowania organizacji non-profit i charytatywnych poprzez tworzenie przejrzystych rejestrów darczyńców i beneficjentów.
Jak zwykle nowa technologia o rewolucyjnym potencjale budzi skrajne reakcje. Entuzjaści widzą możliwe zastosowania w niemal każdym rodzaju ludzkiej aktywności. Mówiąc nieco z przymrużeniem oka, blockchain miałby załatwić zarówno problem braku wody pitnej w Afryce, jak i cyberprzestępczości, a decentralizacja dostępu do informacji zupełnie zmienić współczesne społeczeństwa.
Sceptycy wskazują, że łańcuch bloków to niewiele więcej niż tylko nowy sposób odwzorowania danych, w wielu przypadkach mniej efektywny niż istniejące rozwiązania. W dodatku wymaga on odpowiedniego środowiska – blockchain sam z siebie nie pozbawi pracy notariuszy czy pośredników w handlu nieruchomościami, tak jak bitcoin nie sprawił, że z powierzchni ziemi zniknęły banki centralne.
Można postawić tezę, że i jedni i drudzy mają rację. Dzisiejsze schematy bazujące na blockchainie to dopiero początek – można je porównać z pierwszymi bazami danych z lat 60. zeszłego wieku. Jeśli historia poprzednika łańcucha bloków miałaby się powtórzyć, to czeka nas gwałtowny rozwój kolejnych udoskonalonych odmian DLT oraz towarzyszących im narzędzi. Na razie jesteśmy świadkami etapu eksperymentów, z których zapewne wyłoni się co najmniej kilka obiecujących nowych idei.