Satura rādītājs
Kas ir Merkles koks?
Kā darbojas Merkles koks?
Kāpēc Merkeles sakne tiek izmantota Bitcoin?
Kalnrūpniecība
pārbaudīt
Apkopojiet
Kas ir Merkles koks?
Astoņdesmito gadu sākumā Ralfs Merkle, plaši pazīstams datorzinātnieks publiskās atslēgas kriptogrāfijas jomā, ierosināja Merkles koka koncepciju.
Merkles koka struktūra var efektīvi pārbaudīt datu kopas integritāti, un tā ir efektīvāka vienādranga tīklos, kuros dalībniekiem ir jādalās un neatkarīgi jāpārbauda informācija.
Hash funkcijas ir Merkles koka struktūras pamatā. Tāpēc, pirms turpināt darbu ar šo rakstu, iesakām izprast, kas ir jaukšana.
Kā darbojas Merkles koks?
Pieņemsim, ka vēlaties lejupielādēt lielu failu. Lejupielādējot atvērtā pirmkoda programmatūru, bieži ir jāpārbauda, vai lejupielādētā faila jaucējkods atbilst izstrādātāja publiskotajam failam. Ja tie sakrīt, abi dokumenti ir saskaņoti.
Ja hash nesakrīt, jums ir problēmas. Vai nu lejupielādējāt ļaunprātīgu failu, kas slēpts kā programmatūra, vai arī lejupielādējāt to nepareizi, un gala rezultāts ir tāds, ka fails nav lietojams. Ja lejupielāde ir nepareiza, jūs noteikti jutīsities kaitinoši, jo ilgi gaidījāt faila lejupielādi. Tagad, ja sākat no jauna, jums jācer, ka tā pati problēma neatkārtosies.
Vai esat kādreiz domājis, vai ir kāds vienkāršāks veids, kā atrisināt šo problēmu? Šeit parādās Merkles koks. Merkles koki var sadalīt failus vairākos datu blokos. Piemēram, 50 GB failu var sadalīt 100 kopijās, no kurām katra ir 0,5 GB liela. Pēc tam varat tos lejupielādēt pa vienam. Šādi darbojas torrenti.
Faila avots šobrīd ir jaucējvērtība, ko sauc par Merkles sakni. Šī viena jaucējvērtība apzīmē visus datu blokus, kas veido failu. Turklāt Merkles saknes atvieglo datu validāciju.
Lai atvieglotu izpratni, mēs sniedzam piemēru. Zemāk 8 GB fails ir sadalīts astoņās daļās, un katrs fragments ir attiecīgi nosaukts no A līdz H. Katrs fragments tiek pievienots jaucējfunkcijai, kā rezultātā tiek iegūtas astoņas dažādas jaucējvērtības.

Izmantojot jaucējfunkciju, tiek aprēķinātas astoņu fragmentu jaucējvērtības.
Cerams, ka iepriekš sniegtais paskaidrojuma piemērs ir viegli saprotams. Mums ir visu fragmentu jaucējvērtības, ja kāds no tiem ir nepareizs, vai mēs varam atrast problēmu, salīdzinot to ar avota failu? Varbūt, bet tas joprojām ir ārkārtīgi neefektīvs. Ja failā ir desmitiem tūkstošu fragmentu, vai mums ir jāsajauc visi fragmenti un detalizēti jāsalīdzina rezultāti?
nevajadzīgi. Mums vienkārši jāapvieno pāris jaucējvērtību un jāveic kombinēta jaucējdarbība. Tas ir, mēs sajaukām ar hA + hB, hC + hD, hE + hF un hG + hH. Rezultātā tiks iegūtas četras jaucējvērtības. Pēc tam mēs pārejam uz nākamo apvienoto jaukšanas kārtu, līdz iegūstam divas jaucējvērtības. Pēc tam šīs divas jaucējvērtības tiek apvienotas un beidzot tiek iegūta galvenā jaucējvērtība, kas ir Merkles sakne (ko sauc arī par saknes jaucējvērtību).

Struktūra izskatās kā apgriezts koks. Apakšējā lapu rinda apvienojas viena ar otru, lai izveidotu mezglus un visbeidzot saknes.
Tagad mums ir Merkles sakne, kas apzīmē lejupielādēto failu. Salīdziniet saknes hash ar avota faila vērtību, un, ja tā sakrīt, visi ir apmierināti! Ja jaucējvērtības atšķiras, tas pierāda, ka dati ir bojāti. Citiem vārdiem sakot, viens vai vairāki fragmenti ģenerēja atšķirīgu jaucējvērtību. Tāpēc pat nelielas datu modifikācijas var pilnībā mainīt Merkeles sakni.
Par laimi, ir arī viegli pārbaudīt, vai nav kļūdainu segmentu. Pieņemsim, ka kļūda ir hE. Pirmkārt, mēs lūdzam citiem divus jaucējus (hABCD un hEFGH), lai ģenerētu Merkles sakni. Mūsu hABCD vērtībai ir jāatbilst citiem, pierādot, ka apakškoks ir bez kļūdām. Ja hEFGH neatbilst, mēs varam labot kļūdu no šejienes. Pēc tam pajautājiet citiem viņu hEF un hGH jaucējvērtības un salīdziniet tos ar savu. Ja hGH ir kārtībā, vaininieks ir hEF. Visbeidzot, mēs salīdzinām hE un hF jaucējvērtības, kad mēs atklājam, ka kļūdas avots ir hE, mēs varam atkārtoti lejupielādēt datu bloku.
Rezumējot, Merkles koka funkcija ir sadalīt datus vairākās daļās un pēc tam atkārtoti veikt jaucējdarbības, lai beidzot izveidotu Merkles sakni, lai tā varētu efektīvi pārbaudīt, kur rodas kļūdaini dati. Nākamajā sadaļā mēs iepazīstināsim ar citām interesantām lietojumprogrammām.
Vai vēlaties sākt savu kriptovalūtas ceļojumu? Dodieties uz Binance un iegādājieties Bitcoin tūlīt!
Kāpēc Merkeles sakne tiek izmantota Bitcoin?
Merkles kokiem ir daudz lietošanas gadījumu, taču šajā rakstā galvenā uzmanība tiek pievērsta tā svarīgajai lomai blokķēdē. Bitcoin un daudzas kriptovalūtas nav atdalāmas no Merkles kokiem. Merkles koks ir katra bloka neatņemama sastāvdaļa, kas parasti atrodas bloka galvenē. Izmantojot katra bloka transakcijas jaucējvērtību (TXID), mēs varam iegūt lapas. )
Šajā kontekstā Merkeles sakne kalpo vairākiem mērķiem. Apskatīsim Merkle Root pielietojumu kriptovalūtas ieguvē un darījumu pārbaudē.
Kalnrūpniecība
Bitcoin bloki sastāv no divām daļām. Pirmā daļa ir bloka galvene, kuras izmērs ir fiksēts un satur bloka metadatus. Otrā daļa ir bloka pamatteksts, kura izmērs ir mainīgs, bet parasti ir daudz lielāks par bloka galveni un satur darījumu sarakstu.
Lai iegūtu derīgu bloku, kalnračiem ir atkārtoti jājauc dati, līdz tiek iegūts noteiktiem nosacījumiem atbilstošs rezultāts. Lai iegūtu pareizo rezultātu, viņiem ir jāmēģina triljoniem reižu. Ar katru mēģinājumu kalnracis maina nejaušo skaitli bloka galvenē, Nonce vērtību, lai ģenerētu atšķirīgus rezultātus. Tomēr pārējā bloka daļa paliek nemainīga, un tūkstošiem tajā veikto darījumu joprojām ir katru reizi jaukta.
Merkele ir ievērojami vienkāršojusi procesu. Kad sākas ieguve, visas darījumu rindas tiek iesaiņotas un konstruētas Merkle kokā, un ģenerētā 32 bitu saknes jaucējvērtība tiek ievietota bloka galvenē. Tad nav nepieciešams jaukt visu bloku, tikai bloka galveni.
Šī metode novērš datu manipulācijas un tāpēc ir efektīva, ļaujot visas blokā esošās transakcijas efektīvi apkopot kompaktā formā. Derīgo bloku galveņu darījumu sarakstu nevar mainīt, pretējā gadījumā tiks mainīta Merkles sakne. Pēc tam, kad bloks ir nosūtīts uz citiem mezgliem, saknes hash tiek aprēķināts no darījumu saraksta. Ja tas neatbilst vērtībai bloka galvenē, bloku var noraidīt.
pārbaudīt
Mēs varam izmantot arī citu interesantu Merkle sakņu īpašību, kas attiecas uz vieglo klientu (mezglu, kas neuztur pilnīgu blokķēdes kopiju) lietojumprogrammu. Ja izmantojat mezglu ierīcē ar ierobežotiem resursiem, jūs nevēlaties lejupielādēt un jaukt visus darījumus blokā. Tā vietā jūs vienkārši pieprasāt Merkle pierādījumu, kas ir pierādījums, ko nodrošina pilns mezgls, ka darījums tika iekļauts noteiktā blokā. Šis pierādījums ir labāk pazīstams kā Vienkāršā maksājuma pārbaude vai SPV, un Satoshi Nakamoto to detalizēti aprakstīja Bitcoin baltajā grāmatā.

Lai pārbaudītu HDD, vienkārši pārbaudiet sarkano jaucējkodu.
Pieņemsim, ka mēs vēlamies iegūt informāciju par darījumu par TXID hD. Ja ir zināms hC, var aprēķināt hCD. Pēc tam, izmantojot hAB, var aprēķināt hABCD. Visbeidzot, atsaucoties uz hEFGH, varat pārbaudīt, vai aprēķinātā Merkle sakne atbilst saknes jaucējrakstam bloka galvenē. Veiksmīga sakritība pierāda, ka darījums tika iekļauts blokā, jo viena un tā paša jaucējkoda ģenerēšana, izmantojot dažādus datus, ir gandrīz neiespējama.
Iepriekš minētajā piemērā jaukšana tika veikta tikai trīs reizes. Bez Merkeles sertifikācijas būtu nepieciešami septiņi. Mūsdienu bloki satur tūkstošiem darījumu, un Merkles pierādījumi ietaupa mums daudz laika un skaitļošanas jaudas.
Apkopojiet
Merkles koki ir izrādījušies nozīmīgi datorzinātņu lietojumos, un, kā mēs redzējām, tie ir vērtīgi arī blokķēdē. Merkle koki padara informācijas pārbaudi dalītās sistēmās ērtāku un novērš lieko datu pārslodzi tīklā.
Bez Merkles kokiem un Merkles saknēm Bitcoin un citi kriptovalūtas bloki nebūtu tik kompakti kā šodien. Lai gan vieglajiem klientiem trūkst priekšrocību privātuma un drošības ziņā, ar Merkle pierādījumiem lietotāji var pārbaudīt, vai darījumi ir iekļauti blokos ar minimālu maksu.

