Merkle Tree

Меркл ағашы дегеніміз не?

Merkle ағашы – бұл информатика қосымшаларында қолданылатын мәліметтер құрылымы. Bitcoin және басқа криптовалюталарда Merkle ағаштары блокчейн деректерін тиімді және қауіпсіз кодтауға қызмет етеді.

Оларды «екілік хэш ағаштары» деп те атайды.

Меркле ағашын бұзу

Жылы Bitcoin ның blockchain, операциялардың блок бір генерациялау үшін алгоритм арқылы іске асырылады хэш, деректер берілген жиынтығы операциялардың бастапқы жиынтығы бірдей екенін тексеру үшін пайдаланылуы мүмкін сандар мен әріптер қатарынан, бірақ транзакциялардың бастапқы жиынтығын алмау. Биткоиннің бағдарламалық жасақтамасы транзакциялардың барлық блогын – орташа есеппен 10 минуттық транзакцияны білдіретін хэш функциясы арқылы басқара алмайды. Әрбір транзакция хэштелген, содан кейін транзакциялардың әр жұбы біріктіріліп, біріктірілген және т.с.с бүкіл блок үшін бір хэш болғанша. (Егер транзакциялардың тақ саны болса, бір транзакция екі еселенеді және оның хэші өзімен біріктіріледі.)

Көрнекі түрде бұл құрылым ағашқа ұқсайды. Төмендегі диаграммада «T» транзакцияны, «H» хэшті белгілейді. Суреттің өте жеңілдетілгеніне назар аударыңыз; орташа блок сегіз емес, 500-ден астам транзакцияны қамтиды.

Төменгі қатардағы хэштер «жапырақтар», аралық хэштер «бұтақтар», ал жоғарғы жағындағы хэштер «тамыр» деп аталады. Берілген блоктың Merkle түбірі тақырыпта сақталады: мысалы, # 482819 блогының Merkle түбірі e045b18e7a3d708d686717b4f44db2099aabcad9bebf968de5f7271b458f71c8. Түбір басқа ақпараттармен (бағдарламалық жасақтама нұсқасы, алдыңғы блоктың хэші, уақыт белгісі, қиындықтың мақсаты және басқа) біріктіріліп, содан кейін блоктың ерекше хэшін шығару үшін хэш функциясы арқылы іске қосылады: 000000000000000000bfc767ef8bf28c42cbd4bdbafd9aa1b5c3c33c2b089594 жағдайда. Бұл хэш іс жүзінде тиісті блокқа кірмейді, бірақ келесі; ол Merkle түбірінен ерекшеленеді.

Merkle ағашы пайдалы, себебі ол пайдаланушыларға бүкіл транзакцияны жүктеместен нақты транзакцияны тексеруге мүмкіндік береді (2017 жылдың тамыз айының соңында 130 гигабайттан жоғары). Мысалы, T D транзакциясының  жоғарыдағы диаграммадағы блокқа енгізілгендігін тексергіңіз келгендігін айтыңыз. Егер сізде түбірлік хэш болса (H ABCDEFGH ), процесс sudoku ойыны сияқты: сіз H D туралы желіні сұрайсыз, және ол H C, H AB және H EFGH қайтарады. Берілген H: Меркл ағаш Сіз бұл бәрі үш хэшам есепке алынады тексеруге мүмкіндік береді AB, H C, H EFGH, және түбірлік H ABCDEFGH H, D  (тек хабарсыз кеткен хэш) деректер болуы керек.

Меркле ағаштары Ральф Мерклдің есімімен аталады, ол оларды 1987 жылы « Шифрлаудың кәдімгі функциясына негізделген цифрлық қолтаңба » атты мақаласында ұсынған. Меркл криптографиялық хэштеуді де ойлап тапқан.