Меркле ағашы дегеніміз не? Осы блокчейн компонентіне жаңадан бастаушыға арналған нұсқаулық

Merkle ағаштары блокчейндердің негізгі құрамдас бөлігі болып табылады, олардың функционалдығын негіздейді. Олар үлкен деректер құрылымдарын тиімді және қауіпсіз тексеруге мүмкіндік береді, ал блокчейндер жағдайында, ықтимал шексіз деректер жинақтары.

Merkle ағаштарын блокчейндерге енгізу көптеген әсерлерге ие. Бұл оларға деректердің тұтастығын және деректердің тұтастығын тексерудің тривиальды әдісін сақтау үшін хэш негізіндегі архитектураны қамтамасыз ете отырып, масштабтауға мүмкіндік береді.

Криптографиялық хэш функциялары Merkle ағаштарының жұмыс істеуіне мүмкіндік беретін негізгі технология болып табылады, сондықтан алдымен криптографиялық хэш функцияларының не екенін түсіну маңызды.

Жылдам шешім: Merkle ағаштары - криптографиялық хэштерден тұратын деректер құрылымдары, олар тұтастықты тиімді тексеруге және үлкен деректер жиынын салыстыруға мүмкіндік береді, оларды блокчейндер және таратылған нұсқаларды басқару сияқты жүйелердің ажырамас құрамдас бөлігі етеді.


Жылдам фактілер

негізгі Pointsсипаттамасы
Криптографиялық хэш функцияларыКез келген өлшемдегі кірісті қабылдайтын және бекітілген ұзындық хэш мәнін шығаратын хэш функциялары. Меркле ағаштарында қолданылады.
ағаш құрылымыӘрбір жапырақты емес түйін оның еншілес түйіндерінің хэші болатын ағаш деректер құрылымы. Үлкен деректер жиынын тиімді салыстыруға және тексеруге мүмкіндік береді.
Түбірлік хэшБүкіл ағаштың хэшін білдіретін Merkle ағашының жоғарғы жағындағы хэш. Толық деректер жинағы үшін саусақ ізі ретінде әрекет етеді.
Меркле дәлелдеріТолық деректер жинағын қажет етпей, деректер тұтастығын және ағаштағы орынды тексеруге рұқсат беріңіз, тек түбірлік хэш.
Биткоинге енгізуMerkle ағаштары транзакцияларды блоктарда сақтайды. Блок тақырыбында сақталған түбірлік хэш SPV түйіндеріне транзакцияларды тексеруге мүмкіндік береді.
Басқа блокчейн енгізулеріНеғұрлым күрделі Merkle Patricia ағаштарын пайдаланатын Ethereum сияқты көптеген блокчейндерде қолданылады.
Бөлінген жүйелерGit және IPFS сияқты нұсқаларды басқару жүйелеріне әріптестер арасында ортақ деректерді оңай тексеруге рұқсат беріңіз.

Криптографиялық хэш функциялары

Қарапайым тілмен айтқанда, хэш-функция - бұл ерікті өлшемдегі деректерді (енгізу) бекітілген өлшемді шығысқа салыстыру үшін пайдаланылатын кез келген функция. Деректерді енгізуге хэштеу алгоритмі қолданылады және алынған тұрақты ұзындық шығысы хэш деп аталады.

Көптеген хэштеу алгоритмдері жалпыға қолжетімді және сіздің қажеттіліктеріңізге қарай таңдалуы мүмкін.

Ерікті енгізуден алынған хэш тек ұзындығы бойынша бекітіліп қана қоймайды, ол сонымен қатар кіріс үшін толығымен бірегей және функцияның өзі детерминирленген. Яғни, функцияны бір кірісте қанша рет іске қоссаңыз да, шығыс әрқашан бірдей болады.

Мысалы, кіріс ретінде төменде төмендегі деректер жиындары болса, нәтиже шығыстары әрбір кіріс үшін бірегей болады. Екінші және үшінші мысалдардағы кірістердің айырмашылығы бір ғана сөз болса да, нәтижелер мүлдем басқаша екеніне назар аударыңыз.

Бұл өте маңызды, себебі ол деректердің «саусақ ізін» алуға мүмкіндік береді.

Криптографиялық хэш функциясы, Википедиядан алынған сурет

Шығару (мысалдағы хэш сомасы) ұзындығы әрқашан пайдаланылған хэштеу алгоритмімен анықталғанмен бірдей болғандықтан, деректердің үлкен көлемін тек олардың нәтижесіндегі хэш арқылы анықтауға болады.

Деректердің үлкен көлемін қамтитын жүйелерде бекітілген ұзындықтағы деректерді сақтау және анықтау мүмкіндігінің артықшылықтары үлкен сақтауды үнемдеуге және тиімділікті арттыруға көмектеседі.

Блокчейндерде блокчейннің күйін анықтау үшін хэштеу алгоритмдері қолданылады.

Блокчейндер - бұл алдыңғы блокты көрсететін, қосылған блоктар тізбегін құрайтын деректер мен хэш көрсеткішінен тұратын байланыстырылған тізімдер, сондықтан «блокчейн» атауы.

Әрбір блок бір-бірімен хэш көрсеткіші арқылы қосылады, ол алдыңғы блоктың адресімен бірге алдыңғы блок ішіндегі деректердің хэші болып табылады. Осы пішімдегі деректер блоктарын байланыстыру арқылы алдыңғы блоктың әрбір нәтижелі хэші блокчейннің бүкіл күйін білдіреді, өйткені алдыңғы блоктардың барлық хэштелген деректері бір хэшке хэштелген.

Бұл (SHA-256 алгоритмі жағдайында) келесідей шығыс (хэш) арқылы көрсетіледі:

b09a57d476ea01c7f91756adff1d560e579057ac99a28d3f30e259b30ecc9dc7

Жоғарыдағы хэш - блокчейннің оның алдындағы бүкіл күйінің саусақ ізі. Жаңа блокқа дейінгі блокчейннің күйі (хэширленген деректер ретінде) кіріс болып табылады, ал алынған хэш - шығыс.

Merkle ағаштары жоқ криптографиялық хэштерді пайдалану мүмкін болса да, ол өте тиімсіз және масштабталмайды. Деректерді блокта сериялық пішімде сақтау үшін хэштерді пайдалану көп уақытты қажет етеді және қиын.

Көріп отырғаныңыздай, Merkle ағаштары деректер тұтастығын тривиальды шешуге, сондай-ақ Merkle дәлелдерін пайдаланып сол деректерді бүкіл ағаш арқылы салыстыруға мүмкіндік береді.


Merkle ағаштары және Merkle дәлелдері

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

Жапырақ түйіндері ағаштағы түйіндердің ең төменгі деңгейі болып табылады. Басында түсіну қиын болып көрінуі мүмкін, бірақ төменде жиі қолданылатын суретке қарасаңыз, оны түсіну оңайырақ болады.

Хэш ағашы

Бинарлы хэш ағашының мысалы, Википедиядан алынған сурет

Маңыздысы, сол жақтағы жапырақты емес түйіндердің немесе «тармақтардың» (хэш 0-0 және хэш 0-1 арқылы көрсетілген) олардың сәйкес L1 және L2 еншілестерінің хэштері екеніне назар аударыңыз. Әрі қарай, Хэш 0 тармағы оның біріктірілген еншілестерінің хэшіне, Хэш 0-0 және Хэш 0-1 тармақтарына назар аударыңыз.

Жоғарыдағы мысал екілік Merkle ағашы ретінде белгілі Merkle ағашының ең кең таралған және қарапайым түрі болып табылады. Көріп отырғаныңыздай, түбірлік хэш деп аталатын бүкіл ағаштың хэші болып табылатын жоғарғы хэш бар. Негізінде, Merkle ағаштары хэштердің «n» санын қабылдай алатын және оны бір хэшпен көрсете алатын деректер құрылымы болып табылады.

Ағаштың құрылымы деректердің ерікті түрде үлкен көлемін тиімді салыстыруға мүмкіндік береді және сол деректердегі өзгерістердің қай жерде болатынын оңай анықтауға мүмкіндік береді. Бұл тұжырымдама Merkle дәлелдеріне мүмкіндік береді, оның көмегімен біреу деректердің хэшингінің барлық хэштер жинағын іс жүзінде қарастырмай-ақ ағаштың бойына және дұрыс позицияға сәйкес келетінін тексере алады.

Оның орнына, олар деректер бөлігінің түбірлік хэшпен сәйкестігін бүкіл деректер жиынын емес, тек хэштердің шағын жиынын тексеру арқылы тексере алады.

Түбірлік хэш жалпыға белгілі және сенімді болғанша, дерекқорда кілт-мәнді іздеуді жүзеге асырғысы келетін кез келген адам Merkle дәлелін пайдалана алады. белгілі бір тамыр.

Түбірлік хэш қол жетімді болғанда, хэш ағашын кез келген сенімді емес көзден алуға болады және ағаштың бір тармағын бүкіл ағаш әлі қол жетімді болмаса да, деректер тұтастығын дереу тексеру арқылы бір уақытта жүктеп алуға болады.

Merkle ағаш құрылымының ең маңызды артықшылықтарының бірі деректердің әлдеқайда аз мөлшерін тексеру үшін пайдаланылатын ұқсас хэштеу механизмі арқылы ерікті түрде үлкен деректер жиынын аутентификациялау мүмкіндігі болып табылады.

Ағаш деректердің үлкен жиынын басқарылатын кішірек бөліктерге тарату үшін тиімді, мұнда тұтастықты тексеруге кедергі жалпы үлкенірек деректер өлшеміне қарамастан айтарлықтай төмендейді.

Түбірлік хэшті бүкіл дерекқорды қоса алғанда немесе блокчейннің бүкіл күйін білдіретін бүкіл деректер жиыны үшін саусақ ізі ретінде пайдалануға болады. Келесі бөлімдерде біз Bitcoin және басқа жүйелердің Merkle ағаштарын қалай жүзеге асыратынын талқылаймыз.


Биткоиндағы Merkle ағаштары

Bitcoin қолданатын криптографиялық хэш функциясы SHA-256 алгоритмі болып табылады. Бұл «Қауіпсіз хэштеу алгоритмі» дегенді білдіреді, оның шығысы бекітілген ұзындығы 256 бит. Биткоиндегі Merkle ағаштарының негізгі функциясы - әр блокта транзакцияларды сақтау және ақырында кесу.

Жоғарыда айтылғандай, блокчейндегі блоктар алдыңғы блоктың хэштері арқылы қосылады. Bitcoin-де әрбір блок осы блоктағы барлық транзакцияларды, сондай-ақ блок тақырыбын қамтиды, ол мыналардан тұрады:

  • Блок нұсқасының нөмірі
  • Алдыңғы блок хэші
  • Уақыт белгісі
  • Тау-кен жұмыстарының қиындығы
  • Nonce
  • Merkle Root Hash

Төмендегі сурет Bitcoin ақ қағазынан алынған және Merkle ағашының әрбір блокқа қалай сәйкес келетінін көрсетеді.

Меркле ағашы

Транзакцияларды шахтерлер блоктарға қосады және Merkle ағашының бөлігі ретінде хэштелген, бұл блок тақырыбында сақталған Merkle түбіріне әкеледі. Бұл дизайн бірқатар ерекше артықшылықтарға ие.

Ең бастысы, техникалық құжатта көрсетілгендей, бұл «жеңіл клиенттер» деп те аталатын қарапайым төлемді тексеру (SPV) түйіндерінің болуына мүмкіндік береді. Бұл түйіндерге бүкіл Bitcoin блокчейнін жүктеп алудың қажеті жоқ, тек ең ұзын тізбектің блок тақырыптары ғана.

SPV түйіндері олар жұмыс істейтін сақталған блок тақырыптары ең ұзын тізбектің бөлігі екеніне көз жеткізбейінше, өздерінің тең түйіндерін сұрау арқылы қол жеткізе алады. SPV түйіні транзакцияны ең ұзын тізбектің бөлігі болып табылатын блок тақырыбындағы тиісті Merkle ағашының түбір хэшімен белгілі бір Merkle ағашымен салыстыру үшін Merkle дәлелін пайдалану арқылы транзакция күйін анықтай алады.

Сонымен қатар, Bitcoin-тің Merkle ағаштарын енгізуі кеңістікті үнемдеу үшін блокчейнді кесуге мүмкіндік береді. Бұл тек түбірлік хэштің блок тақырыбында сақталуының нәтижесі, сондықтан ескі блоктарды Merkle дәлелі үшін қажет болғандарды ғана сақтай отырып, Merkle ағашының қажетсіз бұтақтарын алып тастау арқылы кесуге болады.


Merkle ағаштарын басқа блокчейндерде және жүйелерде енгізу

Bitcoin Merkle ағаштарын іске асыратын бірінші блокчейн болса да, көптеген басқа блокчейндер Merkle ағашының ұқсас құрылымдарын немесе одан да күрделі нұсқаларын жүзеге асырады.

Әрі қарай, Merkle ағашын іске асыру блокчейндермен ғана шектелмейді және басқа да көптеген жүйелерге қолданылады.

Ethereum, басқа ең танымал криптовалюта бола отырып, сонымен қатар басқа Merkle ағашын жүзеге асырудың тамаша үлгісі болып табылады. Ethereum анағұрлым күрделі қосымшаларды құруға арналған платформа ретінде дайын болғандықтан, ол Merkle Patricia Tree деп аталатын Merkle ағашының күрделі нұсқасын пайдаланады, ол іс жүзінде үш түрлі нысан үшін пайдаланылатын 3 бөлек Merkle ағашы болып табылады. Сіз бұл ағаштар туралы көбірек біле аласыз.

Соңында, Merkle ағаштары Git және IPFS сияқты таратылған нұсқаларды басқару жүйелерінің маңызды құрамдас бөлігі болып табылады. Олардың P2P пішіміндегі компьютерлер арасында ортақ деректердің тұтастығын оңай қамтамасыз ету және тексеру мүмкіндігі оларды осы жүйелер үшін баға жетпес етеді.


қорытынды

Merkle ағаштары блокчейндердің ажырамас құрамдас бөлігі болып табылады және олардың дәлелденген өзгермейтіндігімен және транзакцияларының тұтастығымен жұмыс істеуіне тиімді мүмкіндік береді.

Олардың таратылған желілерде ойнайтын рөлін және олардың криптографиялық хэш функцияларының негізгі технологиясын түсіну криптовалюталардағы негізгі ұғымдарды түсіну үшін өте маңызды, өйткені олар үлкенірек және күрделі жүйелерге айналуын жалғастыруда.

Дереккөз: https://blockonomi.com/merkle-tree/