Topics BlockchainCurrent Page

Merkle Tree деген не және оның блокчейндегі рөлі қандай?

Intermediate
Blockchain
9 жел 2022
15 min read

AI қорытындысы

Көбірек көрсету

Егжей-тегжейлі қорытынды

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

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

Орталықтандырылған биржа (CEX) гиганты FTX құлдырауы нәтижесінде көптеген CEX пайдаланушыларға олардың қаражаттарының қауіпсіз екеніне сендіретін Reserves Proof (PoR) нысаны ретінде Merkle Tree құрды және енгізді. Бұл мақалада біз Merkle ағаштары дегеніміз не, олардың блокчейндегі рөлі және пайдаланушы Merkle ағашын пайдаланып өз қаражатын қалай тексере алатынын талқылаймыз.

Merkle Tree негізін қалаушы кім?

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

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

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

Merkle ағаштары ақпараттың ортақ болуы және тәуелсіз растау қажеттілігіне байланысты тең дәрежелі (P2P) желілермен жиі пайдаланылады. Меркле ағаштары және олардың қалай жұмыс істейтіні туралы көбірек білейік.

Меркле ағашының құрылымы

Merkle ағашы, сондай-ақ хэш ағашы ретінде белгілі, екілік ағаш құрылымы бар, төменгі жолдағы транзакциялық деректердің хэштері «Жапырақ түйіндері», аралық хэштер «Жапырақ емес түйіндер» деп аталады, " және жоғарғы жағындағы хэш "Түбір" деп аталады. Хэш ағашының іске асырылуының көпшілігі екілік болса да (әр түйінде екі еншілес түйін бар), оларда анағұрлым көп еншілес түйіндер болуы мүмкін.

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

Түйіндердің әрқайсысын қарастырайық:

Жапырақ түйіндері

Бұл блоктағы әрбір криптовалюта транзакциясының хэштері, транзакция идентификаторлары (TXIDs) деп те аталады. Блок зерттеушісінде транзакцияны іздеген кезде транзакция хэшін көресіз.

Жапырақсыз түйіндер

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

Меркле тамыры

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

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

Merkle ағашы қалай жұмыс істейді?

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

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

Merkle ағашы D0, D1, D2 және D3 деп белгіленген төрт транзакциядан тұрады делік. Әрбір транзакция хэш тікелей жапырақ түйінінде сақталмас бұрын хэштенеді. Бұл орын алған кезде N0, N1, N2 және N3 хэштері жасалады. Жапырақ түйіндерінің кез келген дәйекті жұбы N0 хэш пен N1 хэшті хэштеу арқылы негізгі түйінде қорытындыланады, нәтижесінде N4 хэш алынады. Егер N2 хэш және N3 хэш біріктірілсе, N5 хэш жасалады. Осы хэштердің екеуі де, N4 және N5, Merkle түбірін жасау үшін тағы бір рет хэштелген.

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

Меркле ағашының пайдасы

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

Тиімді деректерді тексеру процесі

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

Блокчейндер әдетте жүздеген мың блоктардан тұратындықтан, олардың әрқайсысында бірнеше мың транзакцияға дейін болуы мүмкін, деректерді тексеру екі негізгі қиындықты тудырады: жад кеңістігі және есептеу қуаты. Егер Merkle ағаштары блокчейндегі тұжырымдама болмаса, желідегі әрбір түйін блокчейнде бұрын-соңды орын алған әрбір транзакцияның толық көшірмесін сақтауы керек еді. Түйін транзакцияны тексеру кезінде оның жазбалары желі жазбаларына дәл сәйкес келетініне көз жеткізу үшін әрбір енгізу жолын сызық бойынша салыстыруы керек еді. Жазбалар арасында қайшылық болса, желінің қауіпсіздігіне қауіп төнуі мүмкін. Нәтижесінде, ешқандай өзгерістер болмағанына көз жеткізу үшін жазбаларды салыстыру үшін деректерді тексеру үшін пайдаланылатын компьютерге әлдеқайда көп өңдеу қуаты қажет болады. 

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

Жылдамырақ өңдеу жылдамдығы

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

Crypto әмиянды пайдалану

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

Кез келген бұрмалауды анықтау

Хэш құрылымы кеншілерге транзакцияларға бұрмалану орын алғанын анықтауды жеңілдетеді. 

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

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

Неліктен Merkle ағаштары блокчейндерде маңызды?

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

  • Өте жеңіл құрылым
  • Тиімді масштабтау
  • Жанармай тиімділігі
  • Транзакциялардың белгілі бір блокқа енгізілгенін тексеру
  • Негізгі төлем аутентификациясы

Merkle Tree Proof-of-Reserves (PoR)

Бастапқыда айтылғандай, FTX құлдырауынан кейін пайдаланушылар CEX-де өз қаражаттары шынымен қауіпсіз сақталады ма деген сұрақ туындады. Нәтижесінде бірнеше CEX Merkle Tree Proof-of-Reserve механизмін әзірлеу үшін шықты. Бұл бөлімде біз Merkle дәлелдерін және біздің пайдаланушылар өз қаражаттарын қалай тексере алатынын қарастырамыз.

Merkle дәлелдері

Merkle ағашының дәлелі - бұл нақты ағаш емес, Merkle ағашынан алынған кесу. Және массив немесе реттілік ретінде көрсетіңіз (төмендегі диаграммадағы қызғылт сары бөлікпен көрсетілген).

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

  1. Бұл пайдаланушының тікелей тектік түйіндері (яғни, B және D) шығарылмайды.
  2. Түбір түйінін, яғни Merkle түбірін беріңіз.

Мысал ретінде 10 миллион пайдаланушының көлемін алсақ, ағаштың биіктігін 24 деңгей ретінде беретін математикалық формула негізінде ағаштың биіктігін Log2(10 000 000) = 23,2534966642 деп есептеуге болады. Демек, графиктегі пайдаланушыларға әдейі берілмеген түйіндер 24 - 2 = 22 болады.

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

  1. Балансдеректері: Негізгі түйін деректерін оның төменгі сол және оң жақ түйіндеріне бөлуге болады және бөлуге болады.
  2. Хэшдеректері: Әрбір түйін үшін тек баланс деректері, ағаш иерархиясы деректері және еншілес түйін хэш деректері болады (әр түйін сол және оң жақ түйіндердің жиынтық деректерін оның астында сақтайды).

Merkle ағашының валидациясы B және D алу және оны тексеру арқылы есептеледі

  1. теңгерім бөлу принципіне сәйкес; және
  2. хэш заңды.

Хэш жиынтық функциясын пайдалану арқылы Merkle ағашы пайдаланушыларға графиктегі әрбір күлгін түйінді білмей-ақ олардың бүкіл ағаштың бөлігі екенін анықтауға мүмкіндік береді. Merkle дәлелі тек сол пайдаланушыға арналған. Мысалы, 24-деңгейлі Merkle ағашы пайдаланушының теңгерім ақпаратын тексеру үшін 23 элементтен тұратын массивді қажет етеді және бұл массив тек пайдаланушының теңгерім дәлелі дәл екенін растай алады.

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

Bybit тіркелгіңізді растау

Bybit есептік жазбаңызды тексерудің және қаражаттың жарамдылығын тексерудің 2 әдісі бар.

Платформаны тексеру құралы

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

Өзін-өзі тексеру құралы

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

*Ашық Java коды оның пайдаланушылар үшін ешбір ақпаратты ұстамай ашық екенін білдіреді.

Bybit кәсіпқой пайдаланушыларға өздерінің Merkle Tree дәлелдеу файлын растау үшін оны « Деректерді көшіру» түймешігі арқылы жүйенің өздерінің «жабысқақ» нұсқасына көшіру және оны аталған файл ретінде сақтау арқылы ашық бастапқы коды бар. myProof.json жергілікті дискіге.

Blockchain-тегі Merkle Trees қолданбалары

Merkle ағашы мен Merkle түбірлік құрылымдары көптеген блокчейндер мен криптовалюта платформаларында кеңінен қолданылған. Төменде осындай үш қолданбаның егжей-тегжейлері берілген.

Bitcoin

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

Майндау

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

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

Верификация

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

Ethereum

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

Бастапқы түбір әрбір транзакцияның түбірі болып саналады. Екінші түбірге келетін болсақ, ол транзакцияның күйін көрсетеді. Соңғы түбір – транзакцияның түбіртегі. Пайдаланушы белгілі бір блокта транзакция табылғанын анықтау үшін Merkle түбірін қарай алады, сондай-ақ олардың шотындағы теңгерім қандай екенін анықтайды.

Hyperledger матасы

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

Қорытынды

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

Bybit қолданбасы
Ақылды жолмен табыс табыңыз