Co je Merkle Root?
Merkle root je hash všech hashů všech transakcí, které jsou součástí bloku v blockchainové síti.
Klíčové způsoby
Pochopení Merklova kořene
Blockchain se skládá z různých bloků, které jsou navzájem propojeny (odtud název blockchain). Hašový strom, neboli Merkle strom, kóduje data blockchainu efektivním a bezpečným způsobem. Umožňuje rychlé ověření dat blockchainu, stejně jako rychlý pohyb velkého množství dat z jednoho počítačového uzlu do druhého v síti peer-to-peer blockchainu.
Každá transakce vyskytující se v síti blockchain má s sebou asociovaný hash. Tyto hashe však nejsou uloženy v bloku v sekvenčním pořadí, spíše ve formě stromové struktury tak, že každý hash je spojen se svým rodičem na základě vztahu typu rodič-potomek stromu.
Vzhledem k tomu, že v konkrétním bloku je uloženo mnoho transakcí, všechny hashy transakcí v bloku jsou také hashovány, což má za následek Merkle root.
Uvažujme například blok se sedmi transakcemi. Na nejnižší úrovni (nazývané úroveň listu) budou čtyři hashy transakce. Na úrovni jedna nad úrovní listu budou dva hashy transakce, z nichž každý se připojí ke dvěma hashům, které jsou pod nimi na úrovni listu. Na vrcholu (úroveň dvě) bude poslední hash transakce nazývaný kořen a ten se připojí ke dvěma hashům pod ním (na úrovni jedna).
Efektivně tak získáte obrácený binární strom, kde se každý uzel stromu připojuje pouze ke dvěma uzlům pod ním (odtud název „binární strom“). Nahoře má jeden kořenový hash, který se připojuje ke dvěma hashům na úrovni jedna, z nichž každý se opět připojuje ke dvěma hashům na úrovni tři (úroveň listu) a struktura pokračuje v závislosti na počtu transakčních hashů.
Hašování začíná na uzlech nejnižší úrovně (na úrovni listů) a všechny čtyři haše jsou zahrnuty do hašování uzlů, které jsou na něj napojeny na úrovni jedna. Podobně hašování pokračuje na úrovni jedna, což vede k tomu, že hašování hašování dosahuje do vyšších úrovní, dokud nedosáhne jediného vrcholového kořenového hašování.
Tento kořenový hash se nazývá Merkle root a díky stromovému propojení hashů obsahuje všechny informace o každém jednotlivém transakčním hashu, který v bloku existuje. Nabízí jednobodovou hodnotu hashe, která umožňuje ověření všeho, co je v daném bloku přítomno.
Pokud například někdo musí ověřit transakci, která tvrdí, že pochází z bloku #137, stačí zkontrolovat strom Merkle bloku, aniž by se musel starat o ověření čehokoliv na jiných blocích na blockchainu, jako je blok #136 nebo blok #138.
Zadejte Merkle root, což ještě urychlí ověřování. Protože nese všechny informace o celém stromu, stačí ověřit daný transakční hash, jeho sourozenecký uzel (pokud existuje) a pak pokračovat vzhůru, dokud nedosáhne vrcholu.
Merkle tree a Merkle root mechanismus v podstatě výrazně snižují úroveň hašování, které má být prováděno, což umožňuje rychlejší ověřování a transakce.