Kiedy słyszysz słowo \"blockchain\", pewnie myślisz od razu o kryptowalutach, takich jak np. Bitcoiny, które kupuje się i sprzedaje używając tego systemu. Blockchain dzięki swojemu bezpieczeństwu i innowacyjności ma jednak o wiele więcej zastosowań. Tworzeniem tego typu systemów dla różnych klientów zajmują się właśnie specjaliści tacy, jak ja. Nazwa “blockchain” oznacza po polsku łańcuch bloków, a sam system służy do przechowywania oraz przesyłania informacji ułożonych w następujące po sobie bloki danych.
Technologia blockchain dotyczy zawieranych transakcji, a opiera się na sieci peer-to-peer, czyli takiej, w której każdy komputer może jednocześnie pełnić funkcję klienta i serwera. Programuję dla moich klientów oparte na systemach blockchain aplikacje wykorzystywane do obsługi różnych transakcji, takich jak handel towarami, wymiana walut, kupno i sprzedaż papierów wartościowych, jako księga rachunkowa w bankowości, systemy uwierzytelniania dokumentów poprzez podpis cyfrowy w administracji państwowej, księgach notarialnych, do rozliczania transakcji kupna sprzedaży między małymi producentami energii, np. gospodarstwami domowymi, w których są wiatraki albo panele fotowoltaiczne, a odbiorcami nadwyżek wyprodukowanego prądu. Czasem zdarza się, że klienci zafascynowani panującą modą na blockchain chcą go używać, chociaż w zupełności wystarczy im porządnie zbudowana i administrowana baza danych.
Blockchain nie potrzebuje centralnych serwerów, systemów zarządzających ani weryfikujących transakcje. To w istocie wspólna i zbiorowa cyfrowa księga rachunkowa transakcji, rozproszona po całej sieci w takich samych kopiach. Dlatego systemy blockchain są świetnie zabezpieczone przed atakami hakerów. Nie można podrobić łańcucha bloków jako księgi rachunkowej transakcji, ze względu na moc obliczeniową komputerów – szacuje się, że do złamania sieci blockchain byłaby potrzebna moc obliczeniowa połowy internetu.
Transakcje zapisane w tym systemie się nieodwracalne, a próba zmiany jednego bloku powoduje zmianę całego następującego po nim łańcucha, więc węzły blockchain podczas autoryzacji odmówią uznania takiej transakcji. Stąd blockchain warto zastosować w przypadku, kiedy potrzebujemy wysokiego bezpieczeństwa przeprowadzanych transakcji i zapisu danych. Dlatego najpierw omawiam z klientem kwestię tego, czy naprawdę potrzebuje tego systemu oraz jakie informacje chce tam przechowywać.
Potem zabieram się za tworzenie zdecentralizowanych, czyli nieposiadających sterującego nimi głównego serwera, aplikacji wykorzystując do tego języki programowania, np. JavaScript, Ruby on Rails, NodeJS, C++, Java, C#, muszę więc mieć rozległą wiedzę z informatyki. Korzystając z platformy Ethereum umożliwiającej tworzenie takich aplikacji i testowanie ich w specjalnie do tego przygotowanym, testowym środowisku sprawdzam, czy wszystko działa poprawnie. To bardzo ważne, bo jeśli zrobię jakiś błąd, nie da się go naprawić, muszę pisać aplikację od nowa. Gdy już aplikacja działa jak należy, przychodzi czas na przeszkolenie klienta.
Co powinnam umieć?
Muszę dobrze znać matematykę, żeby móc tworzyć algorytmy używane do programowania aplikacji rozproszonych oraz znać się na kryptografii asymetrycznej, używanej do szyfrowania informacji wymienianych między użytkownikami systemu blockchain.
Jakie kompetencje miękkie są ważne w mojej pracy?
- spostrzegawczość,
- kreatywność,
- opanowanie,
- umiejętność pracy pod presją czasu,
- odporność na stres.
Gdzie mogę pracować?
Mogę znaleźć zatrudnienie w firmach tworzących aplikacje wykorzystujące system blockchain. Mogę też otworzyć własną działalność gospodarczą.