Czym jest blockchain?
Nie kryptowalutą.
Nie językiem programowania.
Nie jest to wcale oczywiste, bo chociaż wiele z nas niejednokrotnie słyszało tę nazwę, zdarza się nam – zwłaszcza młodym adeptom_tkom szeroko pojętego IT, ale nie tylko – błędnie ją interpretować.Dlatego dzisiaj porozmawiamy sobie o tym, co sprawia, że ta technologia jest przełomowa.
Bo blockchain to de facto technologia, sposób na przechowywanie niezmienialnych informacji. Informacje te zapisywane są w blokach, te z kolei łączone w łańcuchy i rozpowszechniane wśród użytkowników. Ten sposób zapisu transakcji nie wymaga polegania na zewnętrznym organie, który potwierdzi autentyczność i integralność danych. Transakcje mają zwykle charakter ekonomiczny (kryptowaluty!), ale w blokach można przechowywać dowolne informacje. Blockchain może zapewnić większą przejrzystość dostaw towarów czy ułatwić identyfikację pochodzenia żywności.
Blockchain opiera się na 5 głównych konceptach:
Kryptograficzne funkcje mieszające (hashujące)
Czyli funkcje, które przekształcają dowolne dane wejściowe w ciąg liczb o stałej długości. Możemy porównać hash do odcisku palca: każde dane będą miały swój indywidualny hash; do tego funkcja haszująca dla tych samych danych zawsze zwróci tę samą wartość.
Co ważne, funkcje mieszające są jednokierunkowe: nie można odtworzyć oryginalnych danych na podstawie wartości hash.
W blockchainie hash jest unikatowym identyfikatorem danego bloku transakcji. Każdy blok zawiera w sobie hash poprzedniego bloku.
Niezmienny rejestr
Właśnie do takiego rejestru można porównać blockchain, w którym użyliśmy hashy. Ponieważ każdy blok łańcucha zawiera hash poprzedniego, nie jest możliwe zmodyfikowanie dowolnego bloku bez zmiany całego łańcucha.
Peer-to-peer
Jest to model komunikacji w sieci komputerowej, gdzie wszyscy mają równe uprawnienia. W przypadku blockchaina dane są dystrybuowane pomiędzy wszystkich użytkowników. Informacje nie są więc przechowywane w jednym miejscu. Zatwierdzona transakcja jest dodawana do łańcucha, a wtedy każdy użytkownik aktualizuje swoje lokalne informacje. Nawet jeśli osoba atakująca zmodyfikuje lokalny łańcuch, sieć nie zaakceptuje żadnego bloku ze zmienionego łańcucha.
Algorytm konsensusu
To dzięki niemu użytkownicy dochodzą do porozumienia co do ważności łańcucha, zanim dodany zostanie nowy blok. Istnieją dwa typy algorytmów konsensusu: Proof of Work i Proof of Stake. O szczegółach przeczytacie tutaj.
Walidacja bloków, czyli kopanie bitcoinów
To pojęcie odnosi się do spełnienia wymagań Proof of Work, aby dodać nowy blok. Zwykle sprowadza się to do utworzenia hasha spełniającego dane wymagania. Ponieważ hash jest nieprzewidywalny, użytkownicy muszą przetestować każdą możliwą kombinację, zanim spełnią wymagania. A to zabiera sporo czasu. I prądu. Kiedy użytkownik rozwiąże Proof of Work, dodaje blok do łańcucha, a pozostali użytkownicy sprawdzają jego poprawność. Jeśli blok jest wiarygodny, umieszczają go w swoich lokalnych kopiach blockchaina.