Podstawy blockchaina
Wprowadzenie
Technologia blockchain to rewolucyjny sposób przechowywania i śledzenia danych, które jednocześnie są dostępne dla każdego. Dane układają się w jedną publiczną listę wszystkich dotychczasowych transakcji: każdy może ją przeglądać, nikt nie może jej edytować. Ta lista to rejestr blockchaina.
Gdy poznasz warstwy blockchaina, zrozumiesz strukturę, którą pokazuje narzędzie o nazwie eksplorator bloków: listę bloków, transakcje w tych blokach i szczegóły każdej z nich. Zobacz to na żywo w serwisie Etherscan, popularnym eksploratorze bloków dla Ethereum.
Budowa blockchaina
Słowo blockchain bywa rzeczownikiem (blockchain Bitcoina) i przydawką (technologia blockchain). Tak czy inaczej, blockchain oznacza całą strukturę, na której zbudowane są kryptowaluty.
Patrząc od zewnątrz, blockchain ma 3 poziomy struktury:
- Cały
blockchainskłada się z bloków połączonych po kolei Blokito zgrupowane razem transakcjeTransakcjeto przelewy wartości lub polecenia dla programów międzyadresamiw sieci
Te trzy poziomy tworzą kryptograficzny rejestr, czyli niezmienną historię wszystkich transakcji w sieci.
Test wiedzy 1
Blockchain to:
-
[ ] Uporządkowane grupy transakcji zwane blokami
-
[ ] Wspólny zapis, który każdy widzi, a nikt nie edytuje
-
[ ] Bloki połączone po kolei w łańcuch
-
[ ] Wszystkie powyższe
Przyjrzyjmy się rejestrowi
W zwykłych systemach pieniężnych ufamy stronom trzecim, na przykład bankom, że policzą, ile kto ma pieniędzy. Ale żeby być naprawdę Bankless, potrzebujemy systemu, w którym rejestrem nie zarządza jeden zaufany podmiot.
Rejestr to lista WSZYSTKICH transakcji, jakie kiedykolwiek wykonano na blockchainie, a w blockchainach publicznych widzi ją każdy. Wydzielone grupy transakcji z rejestru tworzą bloki, a bloki tworzą blockchain.
Gdy do rejestru dochodzą nowe transakcje, salda przy każdym adresie się aktualizują, a dawnych transakcji nie da się zmienić. To tak, jakby każdy mógł w dowolnej chwili obejrzeć pełną historię konta każdego z nas.
Transakcje w rejestrze
Spójrzmy na przykładowe transakcje:
- Alicja wysyła 5 ETH do Boba
- Bob wysyła 2 ETH do Karola
Pojedyncza transakcja pokazuje zmianę liczby kryptowaluty na danym adresie, więc suma wszystkich transakcji TO JEST stan każdego adresu.
⇒ Alicja straciła 5 ETH
⇒ Bob zyskał łącznie 3 ETH (dostał 5, wysłał 2)
⇒ Karol zyskał 2 ETH
Test wiedzy 2
Co jest prawdą o rejestrach publicznych blockchainów?
-
[ ] Wszystkie transakcje są jawne, a dawne niezmienne
-
[ ] Rejestr pokazuje, ile kryptowaluty ma każdy adres
-
[ ] Rejestr rośnie wraz z nowymi transakcjami
-
[ ] Wszystkie powyższe
Decentralizacja
Transakcje zapisane w rejestrze blockchaina są nie tylko niezmienne. Są też współdzielone i rozproszone w wielkiej sieci komputerów. Żeby żaden pojedynczy podmiot nie mógł zmienić danych, kopie rejestru leżą na wielu komputerach w sieci, zwanych węzłami.
To współdzielenie danych sprawia, że rejestr blockchaina jest zdecentralizowany. Żadna władza ani podmiot nie kontroluje danych. Blockchainy takie jak Ethereum są też publiczne, bo rejestr może obejrzeć każdy.
Na potrzeby tej lekcji zapamiętaj, że dane rejestru są współdzielone przez wiele komputerów tworzących sieć Ethereum.
Test wiedzy 3
Co sprawia, że blockchain jest zdecentralizowany?
-
[ ] Tylko jeden podmiot może pisać do blockchaina
-
[ ] Spełnia wymogi decentralizacji ustalone przez rząd
-
[ ] Rejestr leży na wielu komputerach i nikt nim nie rządzi
-
[ ] Rejestr leży na jednym bezpiecznym serwerze
Budowa bloku
Ważna cecha blockchainów: dane dawnych transakcji nie dają się zmienić po tym, jak trafią do bloku. Każdy blok ma bowiem unikalny hash bloku, czyli odcisk palca, który łączy bloki jeden po drugim. Nie da się zmienić dawnej transakcji bez zmiany tego odcisku i odcisku KAŻDEGO kolejnego bloku, bo każdy odcisk zależy od poprzedniego.
Każdy blok to więc po prostu grupa transakcji plus unikalny odcisk (hash bloku) wyliczony z zawartości bloku. Bloki są ze sobą splecione, bo każdy wskazuje odcisk poprzedniego i razem tworzą jeden łańcuch bloków.
Test wiedzy 4
Do czego służy hash bloku?
-
[ ] Do zaszyfrowania danych bloku, żeby nikt ich nie czytał
-
[ ] Do łączenia bloków i utrzymania niezmienności dawnych danych
-
[ ] Do pilnowania, by transakcje trafiały pod właściwy adres
-
[ ] Do utrzymania decentralizacji blockchaina
Wewnątrz bloku
Pamiętaj: dane bloku to po prostu zebrane razem transakcje. Zaglądając do pojedynczego bloku, widzimy listę transakcji i dane o tym, kto ten blok utworzył.
Obie transakcje z wcześniejszego przykładu mogą trafić do jednego bloku albo rozłożyć się na kilka bloków w czasie. Niezależnie od tego, w którym bloku wylądują, wszystkie w końcu trafią do wspólnego rejestru.
- Alicja wysyła 5 ETH do Boba
- Bob wysyła 2 ETH do Karola
Pamiętaj też, że każdy blok musi wskazywać hash bloku poprzednika, żeby spiąć blockchain w całość.
Test wiedzy 5
Jakie informacje zawiera blok?
-
[ ] Wszystkie informacje z poprzednich bloków
-
[ ] Cokolwiek, bo rozmiar bloku jest nieograniczony
-
[ ] Dane transakcji i odwołanie do poprzedniego bloku
-
[ ] Wszystkie transakcje z ustalonego przedziału czasu
Pojedyncze transakcje
Dane na każdym blockchainie to po prostu lista transakcji, czyli zapisów przepływu waluty między użytkownikami. Żeby transakcja była ważna, nadawca musi ją opatrzyć podpisem cyfrowym.
Właśnie to robisz, zatwierdzając transakcję w portfelu: podpisujesz ją cyfrowo i tym samym autoryzujesz. To cyfrowy odpowiednik podpisu na czeku, paragonie czy potwierdzeniu płatności kartą.
Transakcje bywają proste, jak wysłanie aktywów, albo bardziej złożone, jak wymiana aktywów czy wdrożenie kodu, który wykonuje się po wywołaniu. Taki kod to inteligentne kontrakty.
Na koniec: każda transakcja ma unikalny identyfikator, hash transakcji, którego nie ma żadna inna. Dzięki niemu łatwo wskazać konkretną transakcję i mieć pewność, że jej szczegóły się nie zmienią.
Test wiedzy 6
Dane na blockchainie to lista transakcji pogrupowanych w bloki. Taką transakcją może być:
-
[ ] Wysłanie lub odebranie aktywów krypto
-
[ ] Zmiana rozmiaru bloku
-
[ ] Edycja dawnych danych blockchaina
-
[ ] Wszystkie powyższe
Adresy użytkowników
Adres to publiczny identyfikator, który każdy może sprawdzić na blockchainie. Jak przy adresie e-mail, każdy może wysłać na niego środki, ale odblokować je i wydać może tylko ten, kto ma klucz prywatny.
W Ethereum adres zawsze zaczyna się od _0x__________ i ma 42 znaki: cyfry i litery wyprowadzone z klucza publicznego tego adresu.
Oglądając pojedynczą transakcję w eksploratorze bloków, widzimy adresy From: i To:. Nie mówi to nam, jakie osoby kontrolują te adresy, ale pozwala każdemu śledzić ruch kryptowaluty w rejestrze blockchaina.
Test wiedzy 7
Co jest prawdą o adresach na blockchainie?
-
[ ] To publiczne identyfikatory podmiotów na blockchainie
-
[ ] W Ethereum zawsze zaczynają się od 0x
-
[ ] Środkami dysponuje ten, kto ma klucz prywatny
-
[ ] Wszystkie powyższe