MENU

Blockchain – czyli stare technologie, nowe zastosowania

29 listopada 2017CIO

Podobno, gdy na początku lat 90. XX wieku Danny Hill pokazał wiceprezesowi American Telephone & Telegraph – zyskującą na popularności – sieć Internet, ten drugi miał odpowiedzieć: “’Oh, yes, we’ve had people look at the internet. We’ve decided if it turns out to be important we’ll just buy it.”. Cechą wspólną technologii, które nieodwracalnie zmieniają świat jest zazwyczaj początkowy brak zrozumienia mechanizmów ich działania oraz wyzwań i możliwości za nimi stojących. Czy Blockchain będzie wynalazkiem na miarę Internetu?

Dziś wiadomo już, że jest to jeden z najbardziej kontrowersyjnych tematów branży IT. Rynek kryptowalutowy – pomimo ogromnych wahań – stale rośnie. Rosja ogłasza, że być może wyemituje kryptowalutowy odpowiednik rubla. Z drugiej strony, przedsiębiorcy związani z kryptowalutami wciąż poruszają się w niepewnym regulacyjnie środowisku. Tylko w ostatnich 3 miesiącach pojawiło się kilka oficjalnych wypowiedzi regulatorów finansowych dotyczących niebezpieczeństw związanych z ICO (Initial Coin Offering), czyli “emisji” kryptowalut opartych na technologii blockchain. Równolegle intensywnie rozwijane są projekty badające wykorzystanie Blockchain – a dokładnie mechanizmów Distributed Ledger, które za nim stoją – w tradycyjnym biznesie i usługach publicznych.

W artykule postaramy się możliwie prosto wyjaśnić, czym jest technologia wywołująca tyle kontrowersji, a także przedstawić jej główne funkcjonalności biznesowe i związane z nimi możliwości.

Blockchain: o łańcuchu bloków w prostych słowach

Dyskusja na temat tego, czym jest blockchain przypomina nieco początkowe dyskusje dotyczące cloud computing. W obu przypadkach jest to kolaż kilku technologii, których zastosowanie w jednym rozwiązaniu daje unikalne możliwości. W przypadku chmury główną funkcjonalnością jest skalowalność na żądanie. Natomiast w przypadku Blockchain jest to wiarygodny, elektroniczny rejestr. Blockchain nie składa się z nieznanych do tej pory rozwiązań. Nowością jest natomiast ich niezwykle sprytne połączenie w jedno, spójne, funkcjonalnie rozwiązanie.

Baza danych

Pod pojęciem „Blockchain” rozumiemy zdecentralizowaną bazę danych, czyli rejestr (wspomniany już Distributed Ledger), którego identyczne kopie utrzymywane są i aktualizowane przez węzły (komputery) bezpośrednio połączone siecią P2P (Peer-to-Peer). W podstawowym znaczeniu Blockchain jest więc bazą danych, tak jak jest nią np. katalog biblioteczny w bibliotece uniwersyteckiej lub rejestr ksiąg wieczystych. Katalog biblioteczny na uniwersytecie jest katalogiem dostępnym wyłącznie dla zarejestrowanych czytelników (studentów), zaś rejestr ksiąg wieczystych pozostaje dostępny dla każdego. We wszystkich powyższych przypadkach zainteresowani mogą zapoznawać się ze stanem rejestru. Natomiast jakakolwiek jego zmiana odbywa się za pośrednictwem właściwej instytucji pośredniczącej. W podanych wyżej przykładach – odpowiednio biblioteki lub właściwych organów administracyjnych.

Nowością, jaką wprowadza Blockchain do technologii bazodanowych jest to, że pozwala wielu podmiotom nie tylko na odczyt zawartości bazy danych, ale też na wprowadzanie do niej zmian. W przypadku Blockchaina wiarygodność rejestru jest zapewniana przez technologię, a nie dzięki roli administratora, który czuwa nad jego bezpieczeństwem. Administrator staje się zbędny.

Ekonomicznych korzyści związanych z Blockchain w obszarze B2B upatruje się głównie w uproszczeniu procesu zawierania transakcji, poprzez eliminację podmiotów pośredniczących w rozliczeniach, a co za tym idzie oszczędności w kosztach transakcyjnych. Korzyści biznesowe związane są również związane z zapewnieniem wiarygodnego źródła informacji (funkcja “notariusza”).

Blockchain jako baza danych ma przy tym specyficzną strukturę, gdyż przechowuje dane o dokonywanych w niej transakcjach (zmianach stanu rejestru) w postaci bloków informacji. Każdy blok, oprócz informacji o transakcjach, zawiera kryptograficzne streszczenie zawartości bloku poprzedniego. Tak powiązane ze sobą bloki transakcji dodawane są kolejno do bazy danych. W ten sposób tworzą nierozerwalny „łańcuch bloków”. Stąd nazwa – „Blockchain”.

Obecnie największymi rozwiązaniami nazywanymi “blockchainami” są te działające u podstaw kryptowalut o globalnym zasięgu. Przykładowo, mówiąc „blockchain Bitcoina”, rozumiemy przez to rejestr jednostek kryptowaluty Bitcoin, a więc bazę danych opisującą zmiany stanu tych jednostek (przepływy z adresu A do adresu B, z B do C itd.). Co jednak równie istotne – jednocześnie pod hasłem “blockchain Bitcoina” wyobrażamy sobie sieć połączonych Internetem komputerów, które dbają o zgodność tego rejestru (bazy), zapisanego w ich pamięci.

Sieć peer-to-peer

Blockchain jest więc rejestrem, ale rejestrem umieszczonym w sieci peer-to-peer (P2P). Oznacza to, że kopia rejestru znajduje się w posiadaniu każdego z użytkowników (węzłów) sieci P2P. Skoro więc sieć P2P to w kontekście blockchaina sieć “równouprawnionych” komputerów, które mogą wprowadzać zmiany w rejestrze, to niezbędne jest przyjęcie przez nią wspólnych zasad dotyczących wprowadzania zmian do takiej bazy danych oraz weryfikacji ich poprawności. Zasady te określone są w protokole sieci P2P. Protokół określa i wymusza na użytkownikach (węzłach) sieci weryfikację transakcji w sposób ściśle w nim określony. Transakcja niezgodna z protokołem jest automatycznie odrzucana przez sieć i nigdy do rejestru nie trafia.

Nowością, jaką wprowadza Blockchain do technologii bazodanowych jest to, że pozwala wielu podmiotom nie tylko na odczyt zawartości bazy danych, ale też na wprowadzanie do niej zmian. W przypadku Blockchaina wiarygodność rejestru jest zapewniana przez technologię, a nie dzięki roli administratora, który czuwa nad jego bezpieczeństwem. Administrator staje się zbędny.

Przykładem sieci P2P jest Bittorent, popularny w pierwszej dekadzie XXI wieku protokół wymiany i współdzielenia plików, w którym użytkownicy udostępniali i pobierali pliki dostępne w sieci. Obrazowo porównując, Blockchain przypomina sieć Bittorent, tylko, że zajmującą się przechowywaniem, aktualizowaniem i weryfikowaniem danych zawartych we wspólnym rejestrze, a nie współdzieleniem plików. Cechą wspólną obu rozwiązań jest w tym przypadku otwartość. Każda osoba posiadająca dostęp do Internetu może ściągnąć klienta Bittorenta lub klienta sieci Bitcoina, zainstalować go i stać się użytkownikiem sieci.

W przypadku Blockchaina otwartość nie jest jednak absolutną regułą. Obecnie rozwijane są liczne projekty pozwalające na tworzenie rozwiązań o ograniczonym dostępie. Przykładowo kilka banków, w tym m.in. Credit Suisse, Barclays i HSBC, Deutsche Bank i UBS, tworzą własną kryptowalutę: Utility Settlement Coin (USC), która jest projektowana tak, aby służyła bankom do przeprowadzania między sobą transakcji (goo.gl/7iZNvC). Stąd coraz częściej mówi się o blockchainach zamkniętych (prywatnych) i otwartych (publicznych). W zamkniętych blockchainach nie zawsze musi być tak, że całość rejestru dostępna jest dla wszystkich użytkowników (jak np. w Bitcoinie, czy innych “kryptowalutowych” blockchainach). Zarządzanie dostępem i uprawnieniami w podzieleniu na grupy poszczególnych użytkowników wydaje się być istotnym kierunkiem rozwoju rozwiązań o charakterze zamkniętym. W tym zakresie intensywnie wykorzystuje się zaawansowane techniki kryptograficzne.

Kryptografia w blokach transakcji

Od czasów powstania prostych szyfrów pozwalających komunikować na odległość wiadomości za pomocą kresek i kropek – takich jak alfabet Morse’a – kryptografia posunęła się znacznie do przodu i dziś daje szereg nowych możliwości. Kryptografia jest kluczowym elementem technologii blockchain, zaraz obok pojęcia bazy danych i sieci P2P. Podobnie jak te rozwiązania, sama w sobie nie jest też nowością. W Blockchain kryptografia wykorzystywana jest przede wszystkim do łączenia danych w łańcuch powiązanych bloków (typowo funkcje haszujące), co pozwala stworzyć rejestr, który jest w zasadzie niemodyfikowalny.

Blockchain jako baza danych ma specyficzną strukturę, gdyż przechowuje dane o dokonywanych w niej transakcjach (zmianach stanu rejestru) w postaci bloków informacji. Każdy blok, oprócz informacji o transakcjach, zawiera kryptograficzne streszczenie zawartości bloku poprzedniego. Tak powiązane ze sobą bloki transakcji dodawane są kolejno do bazy danych. W ten sposób tworzą nierozerwalny „łańcuch bloków”. Stąd nazwa – „Blockchain”.

Drugim typowym zastosowaniem jest wykorzystanie szyfrowania jednostronnego (typowo infrastruktura klucza publicznego – PKI) do “przypisywania” rejestrowanych w bazie danych wartości (np. kryptowalut, czy informacji o utworach autorskich) do konkretnych kryptograficznych adresów w rejestrze. Transfer tak przypisanej wartości, np. przelew jednego Bitcoina, wymaga posłużenia się odpowiednią parą kluczy kryptograficznych. Pierwszym jest adres odbiorcy, czyli klucz publiczny, a drugim klucz prywatny nadawcy, umożliwiającym autoryzację transakcji. Kontrola nad daną wartością opisaną w blockchainowym rejestrze sprowadza się więc do kontroli nad poufnym kluczem prywatnym. Odnosząc się do przykładu Bitcoina, mówiąc, że ktoś ma “Bitcoiny”, rozumiemy przez to, że kontroluje klucz prywatny, który pozwala na dysponowanie środkami “przypisanymi” do odpowiadającego mu klucza publicznego. Zagadnienie kryptografii jest oczywiście o wiele bardziej skomplikowane niż zostało to ujęte powyżej, jednakże bardziej szczegółowy opis wykraczałby poza ramy niniejszego artykułu.

Blockchain jako gamechanger?

Opisana wyżej architektura blockchaina zapewnia niespotykane dotąd funkcjonalności. Rejestr transakcji jest w zasadzie niemodyfikowalny. Raz umieszczona w rejestrze transakcja jest w nim „zacementowana”, ponieważ matematyczny skrót zawierającego ją bloku jest umieszczony w treści następnego bloku. Następny blok także jest w postaci skrótu umieszczany w kolejnym, itd. Zmiana historycznie dodanego bloku wymaga więc zmiany wszystkich następnych po nim bloków. Zmiana w rejestrze (wprowadzenie transakcji) wymaga uzyskania akceptacji (konsensusu) sieci co do jej poprawności, osiąganej na zasadach określonych w protokole. W połączeniu ze strukturą łańcucha bloków zapewnia to blockchainowi wiarygodność przechowywanych w nim informacji. Niemodyfikowalność nie jest jednak absolutna. Kontrolę nad siecią sprawuje przecież realnie społeczność podmiotów posiadających fizyczne komputery-węzły. Jeżeli więc sieć zgodzi się na „cofnięcie” stanu rejestru, to nagle się okazuje, że Blockchain jednak jest „modyfikowalnym” rejestrem (świadczy o tym historia „The DAO”).

Niemodyfikowalność nie zawsze jest w 100% pożądana, stąd pojawiają się różne pomysły, w jaki sposób zapewnić kontrolowaną modyfikowalność rejestru, na wypadek potrzeby usunięcia pewnych informacji z bazy danych. Niemodyfikowalność jest również ciekawym zagadnieniem z prawnej perspektywy, choćby z perspektywy „prawa do bycia zapomnianym”.

Kilka banków, w tym m.in. Credit Suisse, Barclays i HSBC, Deutsche Bank i UBS, tworzą własną kryptowalutę: Utility Settlement Coin (USC), która jest projektowana tak, by służyła bankom do przeprowadzania między sobą transakcji. Stąd coraz częściej mówi się o blockchainach zamkniętych (prywatnych) i otwartych (publicznych). W zamkniętych blockchainach nie zawsze musi być tak, że całość rejestru dostępna jest dla wszystkich użytkowników. Zarządzanie dostępem i uprawnieniami w podzieleniu na grupy poszczególnych użytkowników wydaje się być istotnym kierunkiem rozwoju rozwiązań o charakterze zamkniętym. W tym zakresie intensywnie wykorzystuje się zaawansowane techniki kryptograficzne.

Niemodyfikowalność rozwiązuje donośny problem świata cyfrowego – tzw. problem double-spendingu. Jak celnie zauważył Kacper Wikieł w artykule poświęconym start-up’om, które opierają swoje usługi na kryptowalutach (goo.gl/7pEi2V), punktem zwrotnym jest właśnie to, że w ramach Blockchain rejestrowane są wartości cyfrowe, których nie można w prosty sposób skopiować. Oznacza to, że bez udziału arbitra jesteśmy dziś w stanie – za pomocą rozwiązań kryptograficznych – doprowadzić do sytuacji, w której mamy pewność, że gdy przekazujemy token/pieniądz od A do B, nie będzie on “kopiowalny” i łatwy do powtórnego przekazania dalej do podmiotu C, D i E. Właśnie ta specyfika umożliwiła powstanie wirtualnych walut i potencjalnie pozwala na zdigitalizowanie wielu innych procesów transferu wartości. Co istotne dotyczy to transferu, który odbywa się elektronicznie bezpośrednio między zainteresowanymi. Niemodyfikowalność zapewnia również dodatkowy, ciekawy aspekt – pewność co do istnienia określonych informacji w określonym czasie. Jest to swego rodzaju stempel z datą pewną, umożliwiający rozwiązaniom blockchainowym pełnienie funkcji elektronicznego “notariusza”.

Warto wspomnieć o szybko rozwijającym się obszarze tzw. smart contracts. Smart contracts stanowią kod oprogramowania zapisany w Blockchain, który uruchamia się automatycznie po otrzymaniu informacji wejściowej. W związku z tym, że jest zapisany w niemodyfikowalnym rejestrze, co do zasady nie da się go zmienić ani “odwołać”. Koncepcja smart contracts znajduje już pierwsze pilotażowe zastosowania w umowach ubezpieczeniowych (goo.gl/HvHEK2).

Natomiast prawdziwym „killer feature” Blockchain jest to, że taka baza danych nie posiada centralnego punktu ataku. Kopie rejestru rozproszone są bowiem na wszystkich komputerach stanowiących węzły sieci P2P. Są przy tym wiarygodne i jednolite, bo aktualizowane są automatycznie wedle zasad określonych w oprogramowaniu. Zdecentralizowane rozwiązanie – na straży którego na dodatek stoi kryptografia – rewolucjonizuje podejście do zagadnienia cybersecurity, stanowiącego jedno z największych wyzwań zarówno dla administracji państwowej, jak i korporacji, takich jak np. banki, operatorzy telekomów czy podmioty branża logistyczna.

Problemy z wydajnością, skalowalnością i migracją danych

Potencjał związany z tą technologią zdaje się przyćmiewać potencjalne problemy techniczne. Blockchain jest na wczesnym etapie rozwoju (porównuje się do Internetu z lat 90.) i nie jest pozbawiony wad. Przede wszystkim ze względu na swoją architekturę sprawia obecnie problemy ze skalowalnością i wydajnością. W kontekście biznesowych zastosowań wiele potencjalnych pytań budzą też kwestie związane z migracją danych z systemów legacy. Istotne ryzyko stanowią też aspekty prawne.

W ramach Blockchain rejestrowane są wartości cyfrowe, których nie można w prosty sposób skopiować. Oznacza to, że bez udziału arbitra jesteśmy dziś w stanie – za pomocą rozwiązań kryptograficznych – doprowadzić do sytuacji, w której mamy pewność, że gdy przekazujemy token/pieniądz od A do B, nie będzie on “kopiowalny” i łatwy do powtórnego przekazania dalej do podmiotu C, D i E. Właśnie ta specyfika umożliwiła powstanie wirtualnych walut i potencjalnie pozwala na zdigitalizowanie wielu innych procesów transferu wartości.

Ekonomicznych korzyści związanych z Blockchain w obszarze B2B upatruje się głównie w uproszczeniu procesu zawierania transakcji, poprzez eliminację podmiotów pośredniczących w rozliczeniach, a co za tym idzie oszczędności w kosztach transakcyjnych. Korzyści biznesowe związane są również związane z zapewnieniem wiarygodnego źródła informacji (funkcja “notariusza”).

O potencjalnych biznesowych zastosowaniach blockchain opowiemy szerzej w następnym artykule na łamach ITwiz, do którego lektury już teraz serdecznie zapraszamy.

Szymon Ciach, Piotr Gałka to prawnicy w kancelarii Maruta Wachta

 

O czym warto więc pamiętać w kontekście Blockchain?
  • ·      Blockchain to technologia stojąca za kryptowalutami, takimi jak Bitcoin, mająca jednakże znacznie szersze zastosowanie niż sam tylko system elektronicznych walut.
  • ·      Blockchain to kolaż technologii takich jak bazy danych, sieci p2p oraz szyfrowanie, znanych już wcześniej, które po połączeniu tworzą rewolucyjne rozwiązanie.
  • ·      Blockchain to technologia, która zapewnia możliwość korzystania przez wiele podmiotów ze wspólnej, transparentnej i wiarygodnej bazy danych, w której zmiany bezpośrednio mogą wprowadzać zainteresowane strony, a która przy tym jest relatywnie bezpieczna dzięki swej decentralizacji.

Podobne tematy:

Dodaj komentarz

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

« »