Blockchain i kryptowaluty to rozległy i złożony krajobraz. Do tej maszyny wchodzi wiele trybików, w tym coś znanego jako drzewo Merkle. Drzewa Merkle odgrywają kluczową rolę w funkcjonalności łańcucha bloków, ale co dokładnie robią? Jak działa drzewo Merkle i dlaczego jest tak ważne w technologii blockchain?
Jak działa Blockchain?
Zanim przejdziemy do dynamiki drzewa Merkle, ważne jest, aby zrozumieć jak działają łańcuchy bloków.
Mówiąc najprościej, blockchain to wirtualny łańcuch bloków, z których każdy zawiera własny zestaw danych. Każdy blok wykorzystuje kryptografię, w szczególności haszowanie, w celu zabezpieczenia danych i trzymania ich z dala od złośliwych aktorów.
Łańcuchy bloków są najczęściej wykorzystywane w branży kryptowalut, gdzie każda transakcja przeprowadzana z danym aktywem jest rejestrowana na jego natywnym łańcuchu bloków. Ponadto każda transakcja jest rejestrowana chronologicznie i widoczna dla całego łańcucha bloków (widoczna za pomocą narzędzia, takie jak eksplorator łańcucha bloków).
Transakcje w łańcuchu bloków nie mogą być zmieniane ani usuwane. Zamiast tego użycie a proces zwany haszowaniem, dane są kodowane za pomocą algorytmów matematycznych. Algorytmy te mogą konwertować dowolną długość znaków na stałą, zakodowaną długość.
Podczas rejestrowania transakcji na łańcuchu blokowym kluczową rolę odgrywają drzewa Merkle. Ale jak działa drzewo Merkle?
Co to jest drzewo Merkle?
Nazwa „drzewo Merkle” ma dwa źródła. „Merkle” odnosi się do Ralpha Merkle, amerykańskiego informatyka i matematyka, który wniósł ogromny wkład w kryptografię klucza publicznego. Merkle początkowo zaproponował binarne drzewa skrótów w 1987 roku w artykule zatytułowanym „A Digital Signature Based on a Konwencjonalna funkcja szyfrowania.” Merkle wynalazł również haszowanie kryptograficzne, które jest używane w Merkle drzewo.
Druga część „drzewa Merkle” wynika z jego struktury. Drzewo Merkle (lub binarne drzewo skrótów) to struktura danych, która wygląda trochę jak drzewo. Drzewa Merkle zawierają „gałęzie” i „liście”, przy czym każdy „liść” lub „gałąź” zawiera skrót bloku danych.
Krótko mówiąc, drzewo Merkle usprawnia proces przechowywania transakcyjnych skrótów w łańcuchu bloków. Grupuje wszystkie transakcje w jednym bloku i skutecznie koduje je w celu bezpieczniejszego i szybszego przechowywania w postaci jednego skrótu. Korzystając z drzewa Merkle, ważność danych można szybko ocenić za pomocą jednego końcowego skrótu. Upraszcza to proces przechowywania danych, ale także zapewnia integralność zabezpieczeń.
Drzewa Merkle również nie wymagają wielu zasobów obliczeniowych. W rzeczywistości ograniczyli przestrzeń dyskową wymaganą dla danych, kompilując wiele skrótów transakcji w jeden. Wykorzystanie zasobów od dawna jest punktem spornym w branży kryptograficznej, ponieważ sieci blockchain mogą powodować ogromne zużycie przestrzeni dyskowej i mocy. Tak więc użycie drzew Merkle pomaga złagodzić ten problem. Przechowywanie danych w łańcuchu może być również drogie, więc wykorzystanie drzew Merkle do zmniejszenia ilości danych może pomóc platformom blockchain zaoszczędzić pieniądze.
Co więcej, proces drzewa Merkle nie zajmuje dużo czasu, co jest dobrą wiadomością w odniesieniu do wydajności. W końcu wiele łańcuchów bloków zostało zaplanowanych ze względu na długi czas transakcji (w tym Bitcoina), więc każdy proces, który może pomóc w rozwiązaniu tego problemu, jest plusem.
Drzewa Merkle są wykorzystywane w wielu obszarach informatyki (szczególnie w kryptografii i szyfrowaniu), ale często są znane ze swojej obecności w łańcuchach bloków kryptowalut. Bitcoin, Ethereum, Dogecoin i wszystkie inne kryptowaluty korzystają z drzewa Merkle, więc jest to niewątpliwie ważny element.
Jak to działa?
Jak działa drzewo Merkle?
Poniżej znajduje się schemat działania drzewa Merkle. Zauważ, że w rzeczywistości na drzewo przypadałoby o wiele więcej transakcji i skrótów, ale ten obraz upraszcza proces, dzięki czemu możesz zorientować się, jakie kroki należy podjąć.
Patrząc na ten diagram drzewa Merkle'a, sprawy wyglądają trochę skomplikowanie. Ale proces haszowania drzewa Merkle jest dość prosty, gdy jest podzielony.
Proces drzewa Merkle składa się z kilku kroków. Skróty na dole drzewa Merkle są znane jako liście, podczas gdy skróty w środku drzewa są znane jako gałęzie. Gałęzie są czasami określane jako węzły inne niż liście. Na samym dole diagramu masz bloki danych (lub transakcje), z których wyłoni się hash.
Początkowe transakcje z każdego węzła są haszowane w parach, przy czym jako wynik pozostaje jeden skrót. Następnie para po parze jest wielokrotnie mieszana w jedną, aż pojawi się pojedynczy skrót, na którym proces się kończy. Jeśli zdarzy się, że w bloku będzie nieparzysta liczba transakcji, jedna transakcja zostanie zduplikowana, aby można ją było sparować z oryginałem w celu haszowania.
Chociaż końcowy skrót pojawia się na górze powyższego diagramu, jest znany jako „korzeń” drzewa (skrót główny). Korzeń jest zasadniczo skrótem kulminacyjnym wszystkich indywidualnych skrótów transakcji przechowywanych w bloku. Jedno drzewo Merkle jest wymagane na blok, co oznacza, że każdy blok ma jedno pole danych Merkle Root.
Jeśli kiedykolwiek dogłębnie przyglądałeś się łańcuchom bloków, być może słyszałeś o Merkle Root lub Merkle Hash. W bloku istnieje coś znanego jako hashMerkleRoot. Te dane (końcowy skrót na końcu drzewa) są przechowywane w nagłówku danego bloku. A blok blockchain zawiera również inne dane, takie jak sygnatura czasowa, numer wersji zasobu i „nonce” (numer użyty tylko raz).
Czy łańcuchy bloków mogą funkcjonować bez drzew Merkle?
Chociaż drzewa Merkle nie są absolutnie wymagane do istnienia łańcucha bloków, odgrywają one niezwykle ważną rolę w zabezpieczaniu danych.
Bez drzew Merkle łańcuchy bloków kryptowalut wymagają więcej zasobów i czasu na przeprowadzenie kluczowych procesów. Po pierwsze, każdy węzeł w sieci musiałby przechowywać własną kopię każdej transakcji przeprowadzanej na blockchainie. Na większych łańcuchach bloków setki tysięcy transakcji mogą odbywać się na przestrzeni tylko jednej dziennie, więc dodanie takiej ilości danych do kopii każdego węzła niewątpliwie pochłonęłoby dużo zasoby.
Co więcej, drzewa Merkle odgrywają dużą rolę w weryfikacji danych. Za pomocą pojedynczego skrótu głównego na końcu drzewa walidatorzy i górnicy mogą zweryfikować, czy blok jako całość nadaje się do dodania do łańcucha bloków. Możliwość uwierzytelniania danych bez przeszukiwania każdej pojedynczej transakcji to plus, oszczędność czasu i miejsca.
Drzewa Merkle są kluczowe w funkcjonalności Blockchain
Nie można zaprzeczyć, że drzewa Merkle zapewniają bezpieczeństwo i wydajność łańcuchów bloków bez zajmowania dużej ilości miejsca. Ten sprytny proces kryptograficzny umożliwia płynne działanie łańcuchów bloków bez potrzeby nadmiernego wykorzystywania zasobów. Drzewa Merkle nie są niezbędne, ale bardzo korzystne, jeśli chodzi o czas, miejsce do przechowywania i uwierzytelnianie danych.