Co je Merkle Tree?
Merkle strom je datová struktura, která se používá v aplikacích výpočetní techniky. V bitcoinu a dalších kryptoměnách slouží Merkle stromy k efektivnějšímu a bezpečnějšímu kódování blockchainových dat.
Jsou také označovány jako „binární hašišovníky“.
Breaking Down Merkle Tree
V bitcoinovém blockchainu, je blok transakcí spuštěn pomocí algoritmu, který vygeneruje hash, což je řetězec čísel a písmen, který může být použit k ověření, že daná sada dat je stejná jako původní sada transakcí, ale ne k získání původní sady transakcí. Bitcoinový software však nepropouští celý blok transakčních dat – představující v průměru 10 minut transakcí – prostřednictvím hashové funkce najednou. Spíše je každá transakce hashována, pak je každá dvojice transakcí zřetězena a hashována dohromady, a tak dále, dokud není jeden hash pro celý blok. (Pokud je lichý počet transakcí, jedna transakce je zdvojnásobena a její hash je zřetězen sám se sebou.)
Ve vizualizaci tato struktura připomíná strom. V diagramu níže „T“ označuje transakci, „H“ hash. Všimněte si, že obrázek je velmi zjednodušený; průměrný blok obsahuje více než 500 transakcí, ne osm.
Hashe ve spodním řádku jsou označovány jako „listy“, mezilehlé hashe jako „větve“ a hash nahoře jako „kořen“. Merkle kořen daného bloku je uložen v hlavičce: například Merkle kořen bloku #482819 je e045b18e7a3d708d686717b4f44db2099aabcad9bebf968de5f7271b458f71c8. Kořen je kombinován s dalšími informacemi (softwarová verze, hash předchozího bloku, časové razítko, cíl obtížnosti a nonce) a poté je spuštěn pomocí hashové funkce, aby byl vytvořen unikátní hash bloku: 000000000000000000bfc767ef8bf28c42cbd4bdbafd9aa1b5c3c33c2b089594 v případě bloku #482819. Tento hash není ve skutečnosti zahrnut do příslušného bloku, ale do dalšího; je odlišný od Merkle kořene.
Merklovy stromy jsou pojmenovány po Ralphu Merklovi, který je navrhl v roce 1987 v článku nazvaném „Digitální podpis založený na konvenční šifrovací funkci“. Merklovi se také podařilo vynalézt kryptografické hašování.