Jak działa blockchain?
2018-04-08 00:30
Przeczytaj także: Kryptowaluty na celowniku hakerów, a blockchain nie taki bezpieczny.
Funkcja skrótu (ang. hash algorithm) ma kilka charakterystycznych atrybutów:
- ma charakter jednokierunkowy – na podstawie skrótu nie można odtworzyć danych w bloku, które reprezentuje skrót, tzn. stosunkowo łatwo jest wygenerować skrót na podstawie danych wejściowych, ale odgadnięcie danych wejściowych bloku na podstawie znajomości tylko skrótu jest zadaniem praktycznie niemożliwym nawet dla komputerów kwantowych ze względu na ogromną liczbę możliwych kombinacji,
- zamienia dowolnie duży zbiór danych w bloku w quasi-losową wartość o stałym rozmiarze,
- wartość skrótu zależy od całego zbioru danych wejściowych – najmniejsza zmiana danych wymaga wygenerowania nowego skrótu, co oznacza brak praktycznej możliwości wygenerowanie dwóch takich samych skrótów na różnych zbiorach danych wejściowych.
Skrót bloku dla danej transakcji (ang. block hash) jest generowany z uwzględnieniem trzech elementów:
- tzw. korzeń skrótów (ang. root hash) bieżącego bloku – skrót wyliczony na podstawie drzewa skrótów wszystkich transakcji w bieżącym bloku,
- hash poprzedniego bloku,
- unikalny 32-bitowy znacznik zmienny w czasie (ang. nounce) o określonej liczbie zer na początku.
Wyliczenie poprawnej wartości skrótu bloku dla danej transakcji z uwzględnieniem ściśle określonego nounce jest elementem uwierzytelniania transakcji przez innych użytkowników sieci (tzw. górników).
Zadanie kryptograficzne, czyli określenie nounce dla skrótu bloku danej transakcji, jest rozsyłane do wszystkich węzłów sieci (tzw. nody). Górnicy, po samodzielnym zweryfikowaniu czy podmiot X rzeczywiście posiada odpowiednią pulę aktywów niezbędną do realizacji transakcji (pobranie klucza publicznego podmiotu X dla sprawdzenia danych zapisanych w historycznych blokach transakcji – średnio 20 razy w przypadku bitcoin), zaczynają konkurować między sobą, kto pierwszy obliczy poprawną wartość nounce, czyli unikalną z wielu możliwych wartości, która pasuje do skrótu bloku.
W praktyce oznacza to generowanie różnych wersji nounce i dopasowywania ich do skrótu dla sprawdzenia, czy można uzyskać zgodną całość. Dla osiągnięcia sukcesu i rozwiązania tak określonej zagadki kryptograficznej trzeba zaangażować jak największą moc obliczeniową.
Pierwszy górnik, który zidentyfikuje poprawny nounce i dopasuje go do skrótu bloku danej transakcji, otrzymuje nagrodę w postaci nowej liczby danej kryptowaluty doliczonej do jego stanu posiadania (np. bitcoiny). Każdy z górników w węźle sieci może szybko sprawdzić, czy rzeczywistości wyliczony nounce jest zgodny z wymaganiami systemu, co kończy autoryzację, a tym samym finalizuje transfer aktywów od podmiotu X do podmiotu Y. Dodatkowo zwycięski węzeł sieci, otrzymuje prowizję, jaką płaci podmiot X za autoryzowanie transakcji. Im wyższa prowizja tym szybciej transakcja może być zautoryzowana, gdyż górnicy nadają jej większy priorytet autoryzacji (kopania).
Protokół blockchain może regulować szybkość rozwiązywania kryptograficznych zagadek przez górników. Przykładowo, w przypadku blockchain w systemie bitcoin transakcja weryfikacji zajmuje do 10 minut. Opóźnienie jest celowe, gdyż uniemożliwia bardzo szybkie wykorzystanie aktywów czy kryptowaluty w różnych transakcjach równocześnie (tzw. double spending) i pozwala na wielokrotne sprawdzenie stanu posiadania przez społeczność.
Poprzez budowę skrótu bloku danej transakcji, bieżący blok transakcji jest automatycznie powiązany z poprzednim blokiem, a ten ze swoim poprzednikiem, tworząc łańcuch bloków (ang. blockchain), które w sumie obrazują historię transakcji na danym adresie (portfelu). Łańcuch jest stale aktualizowany w procesie dodawania nowych bloków, a dane są rozesłane i przechowane na adresach wszystkich uczestników sieci. Stanowi to podstawę dla publicznego potwierdzenia (i udowodnienia), ile jednostek danego aktywa (kryptowaluty) jest przypisanych do danego adresu (portfela).
Ze względu na zasady dostępu do systemu i przypisane funkcje można wyróżnić różne rodzaje blockchain, który może przyjąć status rejestru:
- otwartego (ang. permissionless public ledgers), który umożliwia dostęp do rozproszonej sieci danych dowolnemu (niezweryfikowanemu) użytkownikowi, przy czym każdy z użytkowników może zawierać transakcje lub/i weryfikować nowe zestawy danych. Systemy publiczne mają wielu anonimowych walidatorów transakcji (tj. górników). Przykład: kryptowaluty bitcoin, ethereum;
- zamkniętego (ang. permissioned private ledgers), który jest wykorzystywany przez społeczność użytkowników, którzy uprzednio przejdą proces dopuszczenia do sieci (tj. identyfikacji), a więc muszą charakteryzować się ściśle określonymi atrybutami (np. instytucje finansowe, agendy rządowe), którzy zachowują kontrolę nad akceptacją nowych użytkowników i autoryzują walidatorów transakcji (jednego lub kilku). Przykład: BankChain;
- mieszanego (ang. permissioned public ledgers), który funkcjonuje w oparciu o rozróżnienie kompetencji użytkowników w zakresie pełnionych funkcji, z zastrzeżeniem funkcji weryfikowania transakcji (tj. górników) dla ściśle określonego kręgu podmiotów. Przykład: kryptowaluta ripple.
W każdym rodzaju blockchain strony danej transakcji (zidentyfikowane lub nie) nie mogą się jej wyprzeć, gdyż zarówno obecna, jak i poprzednie transakcje są widoczne publicznie w postaci zabezpieczonych kryptograficznie bloków zawierających transakcje w łańcuchu bloków (chain of block). Zmiana zawartości bloku wymagałaby zmiany wszystkich zapisów w sieci w bloku danej transakcji, jak i integralnie powiązanych blokach wcześniejszych transakcji. W innym przypadku nie ma możliwości wyliczenia skrótu, a więc autoryzacji nowej transakcji.
1 2
oprac. : Dr hab. Emil Ślązak / Gazeta Bankowa
Przeczytaj także
Skomentuj artykuł Opcja dostępna dla zalogowanych użytkowników - ZALOGUJ SIĘ / ZAREJESTRUJ SIĘ
Komentarze (0)