Drzewo Merkle to struktura danych używana w aplikacjach informatycznych. W bitcoinach i innych kryptowalutach drzewa Merkle służą do wydajniejszego i bezpieczniejszego kodowania danych blockchain.
Są one również nazywane „binarnymi drzewami mieszania”.
Breaking Down Merkle Tree
W łańcuchu bloków bitcoinów blok transakcji jest przeprowadzany przez algorytm w celu wygenerowania skrótu, który jest ciągiem cyfr i liter, których można użyć do sprawdzenia, czy dany zestaw danych jest taki sam jak oryginalny zestaw transakcji, ale nie uzyskać oryginalnego zestawu transakcji. Oprogramowanie Bitcoin nie uruchamia całego bloku danych transakcji - reprezentujących średnio transakcje o wartości 10 minut - za pomocą funkcji skrótu jednocześnie. Raczej każda transakcja jest mieszana, następnie każda para transakcji jest łączona i mieszana razem, i tak dalej, dopóki nie będzie jednego skrótu dla całego bloku. (Jeśli liczba transakcji jest nieparzysta, jedna transakcja jest podwajana, a jej skrót jest łączony ze sobą.)
Wizualizowana ta struktura przypomina drzewo. Na poniższym schemacie „T” oznacza transakcję, „H” skrót. Zauważ, że obraz jest bardzo uproszczony; średni blok zawiera ponad 500 transakcji, a nie osiem.
Skróty w dolnym rzędzie są nazywane „liśćmi”, skróty pośrednie jako „gałęzie”, a skrót u góry jako „korzeń”. Katalog główny Merkle danego bloku jest przechowywany w nagłówku: na przykład katalog główny Merkle bloku # 482819 to e045b18e7a3d708d686717b4f44db2099aabcad9bebf968de5f7271b458f71c8. Rdzeń jest łączony z innymi informacjami (wersja oprogramowania, skrót poprzedniego bloku, znacznik czasu, cel trudności i nonce), a następnie uruchamiany przez funkcję skrótu w celu wygenerowania unikalnego skrótu bloku: 00000000000000000000bfc767ef8bf28c42cbd4bdbafd9aa1b5c3c33c2b # 89898988. Ten skrót nie jest w rzeczywistości zawarty w odpowiednim bloku, ale w następnym; różni się od korzenia Merkle.
Drzewo Merkle jest przydatne, ponieważ pozwala użytkownikom zweryfikować określoną transakcję bez pobierania całego łańcucha bloków (ponad 130 gigabajtów na koniec sierpnia 2017 r.). Załóżmy na przykład, że chcesz sprawdzić, czy transakcja T D jest uwzględniona w bloku na powyższym schemacie. Jeśli masz skrót główny (H ABCDEFGH), proces przypomina grę sudoku: pytasz sieć o H D, a zwraca H C, H AB i H EFGH. Drzewo Merkle pozwala sprawdzić, czy wszystko jest rozliczane za pomocą trzech skrótów: dane H AB, H C, H EFGH, a główny H ABCDEFGH, H D (jedyny brakujący skrót) musi być obecny w danych.
Drzewa Merkle zostały nazwane na cześć Ralpha Merkle'a, który zaproponował je w artykule z 1987 roku zatytułowanym „Podpis cyfrowy oparty na konwencjonalnej funkcji szyfrowania”. Merkle wynalazł również haszowanie kryptograficzne.
