Jak powstaje korzeń Merkle’a?
Zacznij od identyfikatora każdej transakcji w bloku, który sam jest podwójnym hashem SHA-256. Ułóż je w kolejności, zaczynając od coinbase. Połącz sąsiednie identyfikatory w pary i zahashuj każdą parę. Otrzymasz o połowę mniej hashy. Powtarzaj, aż zostanie jeden: to korzeń Merkle’a.
Jeśli na danym poziomie jest nieparzysta liczba hashy, ostatni z nich łączy się w parę z samym sobą. Zmiana dowolnej transakcji, choćby o jednego satoshiego, zmienia każdy hash na ścieżce do góry, łącznie z korzeniem. Wypróbuj to w demonstracji powyżej.
Dlaczego drzewo, a nie jeden duży hash?
Dowody. Aby wykazać, że transakcja znajduje się w bloku, potrzebujesz tylko hashy z jej gałęzi, a nie całego bloku. W bloku zawierającym około 4 000 transakcji wystarczy ich zaledwie 12, czyli kilkaset bajtów. W swojej białej księdze Satoshi opisuje lekkie portfele, które w ten sposób sprawdzają płatności, przechowując tylko nagłówki bloków.
Ma to znaczenie także przy kopaniu. Gdy górnik zmienia dodatkowy nonce w transakcji coinbase, zmienia się korzeń Merkle’a, a nagłówek bloku otrzymuje nowy zestaw nonce’ów do sprawdzenia.
Źródła
- Bitcoin: system elektronicznej gotówki peer-to-peer · Satoshi Nakamoto, 2008
- Informacje o łańcuchu bloków: nagłówki, drzewa Merkle’a, cel · Dokumentacja dla deweloperów Bitcoin
- Drzewo Merkle’a · Bitcoin Wiki
Bieżące dane na tej stronie pochodzą z API CloudMineCrypto i publicznych danych łańcucha bloków. Są regularnie odświeżane i oznaczone w miejscach, w których się pojawiają. Wyłącznie do celów edukacyjnych, to nie jest porada finansowa.