Merkle koks ir datu struktūra, ko izmanto datorzinātņu lietojumprogrammās. Bitcoin un citās kriptovalūtās Merkle koki kalpo, lai efektīvāk un drošāk kodētu blockchain datus.
Tos sauc arī par "bināriem jaucējkokiem".
Nolauzot Merkles koku
Bitcoin blokķēdē darījumu bloks tiek palaists caur algoritmu, lai ģenerētu hash, kas ir skaitļu un burtu virkne, kuru var izmantot, lai pārbaudītu, vai dotā datu kopa ir tāda pati kā sākotnējā darījumu kopa, bet neiegūt sākotnējo darījumu kopumu. Bitcoin programmatūra, izmantojot jaucējfunkciju, vienā reizē tomēr neizpilda visu darījumu datu bloku - vidēji tas ir darījumu 10 minūšu vērts. Drīzāk katrs darījums tiek sajaukts, tad katrs darījumu pāris tiek salikts un sajaukts kopā, un tā tālāk, līdz visam blokam ir viena jaucējkrāna. (Ja ir nepāra darījumu skaits, viens darījums tiek dubultots, un tā sajaukšana tiek salikta pati.)
Vizualizēta, šī struktūra atgādina koku. Zemāk redzamajā diagrammā "T" apzīmē darījumu, "H" - hash. Ņemiet vērā, ka attēls ir ļoti vienkāršots; vidējā blokā ir vairāk nekā 500 darījumu, nevis astoņi.
Hashes apakšējā rindā tiek sauktas par "lapām", starpposma hashes kā "zariem", un hash augšpusē kā "saknes". Dotā bloka Merkle sakne tiek saglabāta galvenē: piemēram, bloka # 482819 Merkle sakne ir e045b18e7a3d708d686717b4f44db2099aabcad9bebf968de5f7271b458f71c8. Sakne tiek apvienota ar citu informāciju (programmatūras versija, iepriekšējā bloka hash, laika spiedogs, mērķa grūtības un nonce) un pēc tam tiek palaista cauri hash funkcijai, lai iegūtu bloka unikālo hash: 000000000000000000bfc767ef8bf28c42cbd4bdbafd9aa1b5c3c33c28c2b08954b2b8b8b4b4bd4bdbafd9aa1b5c3c33c2b0895.. Šī hash faktiski nav iekļauta attiecīgajā blokā, bet gan nākamajā; tas atšķiras no Merkles saknes.
Merkle koks ir noderīgs, jo tas lietotājiem ļauj pārbaudīt noteiktu darījumu, neveicot visa bloķēšanas ķēdes lejupielādi (2017. gada augusta beigās vairāk nekā 130 gigabaiti). Piemēram, sakiet, ka vēlējāties pārbaudīt, vai transakcija T ir iekļauta blokā iepriekšminētajā diagrammā. Ja jums ir saknes hash (H ABCDEFGH), process ir kā sudoku spēle: jūs vaicājat tīklam par H D, un tas atgriež H C, H AB un H EFGH. Merkle koks ļauj jums pārbaudīt, vai viss tiek veikts ar trim hash: dotajiem H AB, H C, H EFGH un saknei H ABCDEFGH, H D (vienīgajai trūkstošajai hash) jābūt klāt datiem.
Merkle koki ir nosaukti Ralfa Merkles vārdā, kurš tos ierosināja 1987. gada rakstā ar nosaukumu “Digitālais paraksts, kas balstīts uz parasto šifrēšanas funkciju”. Arī Merkle izgudroja kriptogrāfijas sajaukšanos.
