Ръководство за дървета Merkle

Чували ли сте за дърветата Merkle, когато обсъждате блокчейн технологията? Това е така, защото дървото Merkle е в основата на самата технология. 

И така, какво точно е това?

В тази статия ще разгледаме задълбочено дървото Merkle и ще разберем неговата роля за успеха на технологията блокчейн.

Да започваме.

 

Какво е дърво на Меркле?

Дървото на Merkle е структура от данни, която се използва за сигурна проверка на данни в голям пул съдържание. Той също така е ефективен и последователен, когато става въпрос за проверка на данните.

Ethereum и Bitcoin използват Merkle Trees.

Проблемът: В основата на централизираната мрежа данните могат да бъдат достъпни от едно копие. Това означава, че те не трябва да правят много за съхраняване или достъп до данни. Въпреки това, когато става въпрос за децентрализираната блокчейн мрежа, нещата се разминават, тъй като всяка информация се копира между възлите. И така, предизвикателство е ефективният достъп до данни. Предизвикателството е също да направите копие на данните и да ги споделите между възлите. На всичкото отгоре споделените данни трябва да бъдат проверени за всеки от приемащите възли.

Решението: Merkle Trees позволяват на децентрализираните блокчейни да споделят данни, да ги проверяват и да ги правят надеждни. Той организира данните по такъв начин, че не е необходима много обработваща мощност за споделяне и проверка на данни. Той също така улеснява сигурната транзакция благодарение на използването на хеш функции и криптография.

Сатоши Накамото беше първият човек, който внедри дървета Merkle в блокчейн технологията чрез биткойн. Използването му отвори нов клон на компютърните науки, където няма нужда от централизирана власт. Той също така използва дървета Merkle в прекомерна степен и използва дървета Fast Merkle.

Концепцията обаче е представена за първи път от Ралф Меркъл, който я патентова през 1979 г. Тя е кръстена на него.

Прочетете също, Hyperledger Cactus: New Hyperledger Framework


Криптографски хеш функции

Преди да обсъдим дърветата Merkle, трябва да разберем по-добре криптографската хеш функция.

Хеш функцията е отговорна за картографиране на произволна форма на произволни данни с произволна дължина в изход с фиксиран размер. Това е криптографска функция и следователно се използва широко в криптографията.

Хеш функциите са ефективни и са известни със своето едно свойство, т.е.функцията не може да бъде обърната. Това е еднопосочна функция, която е проектирана да работи само по този начин. 

Хеширането има множество приложения, включително

  • Защита с парола
  • Проверка и проверка на целостта на файла
  • Криптовалута

Има множество хеш семейства, включително Message Direct (MD), Secure Hash Function (SHF) и RIPE Message Direct (RIPEMD).

Ако използвате хеш алгоритъм SHA256 и предадете 101Blockchains като вход, ще получите следния изход

fbffd63a60374a31aa9811cbc80b577e23925a5874e86a17f712bab874f33ac9

За да обобщим, ключовите свойства на хеш функциите включват:

  • Детерминистичен
  • Устойчив на изображения
  • Ефективна в изчисление
  • Не може да бъде обърнато проектирано
  • Устойчив на сблъсък

Ако искате да научите повече за криптографските хеш функции, разгледайте подробните статии тук: 

Как работят дърветата Merkle?

Сега, след като имаме малко добро разбиране за функциите на Hash, сега е време да научим повече за Merkle Trees.

Така че, технически, дърветата на Merkle са дървета на структурата на данни, където нелистовият възел е дефиниран като хеш стойност на съответните дъщерни възли.

Това също означава, че дървото Merkle е обърнато надолу, където листните възли са най-ниският възел. 

За да разберете по-добре какво се опитвам да ви предам, нека разгледаме примера на дървото Merkle:

Източник: Уикипедия

В основата на дърветата Merkle трябва да научим три важни термина. Те са както по-долу:

  • Корен на Меркле
  • Листни възли
  • Нелистни възли

Ако погледнете дървото Меркле като цяло, то е обърнато дърво. Дървото може да обобщи цял набор от транзакции само по себе си. Това означава, че потребителят може да провери дали транзакцията е част от блока или не.

За да накарат дърветата Merkle да работят, се използва хеширане. Той просто прави хеширането на двойки възли многократно, докато остане само една хеш стойност. Лявата хеш стойност е известна като Merkle Root или Root Hash. Дървото се създава отдолу нагоре, като се използват отделните хешове на транзакции. Отделните хешове на транзакции са известни още като ID на транзакции. 

Листовите възли са възлите, които съдържат хешове на транзакционни данни. В случай на нелистовите възли те съхраняват хеша на двата предишни хеша.

Друго важно свойство на дърветата Merkle е, че то е двоично по природа. Това означава, че той изисква листните възли да бъдат равномерни, за да работи. В случай, че има нечетен брой листни възли, той просто ще дублира последния хеш и ще го направи четен.

 

Пример

Нека се опитаме да го разберем, като вземем пример.

Пример за дърво Merkle

Тук виждаме, че в блока са извършени четири транзакции. Тези транзакции се наричат ​​X, Y, Z и W. След това транзакциите се хешират и след това се съхраняват в листови възли, които ние наричаме Hash X, Hash Y, Hash Z и Hash W.

След като приключат, листните възли на Hash X, Y, Z и W отново се хешират и се създават в комбиниран хеш от XY и ZW. И накрая, тези два хеша се използват за създаване на Merkle Root или Root Hash.

Целият процес на хеширане може да се извърши на много голям набор от данни, което прави структурата от данни на Merkle Trees полезна в случай на децентрализирани мрежи.

Както обсъдихме по-рано, използването на алгоритми за хеширане зависи от изпълнението. Въпреки това, една от най-често използваните хеш функции, включва криптографската хеш функция SHA-2. 

Така че транзакцията може да бъде проверена, ако предишните транзакции са проверими, благодарение на хеш стойностите.

 

Какво ще кажете за целостта на данните?

Дървото Merkle е идеално за целостта на данните. Освен това не е необходимо да преминавате през цялата транзакция, за да видите нейната проверимост. Транзакциите могат да бъдат проверени с помощта на информацията, съхранявана в заглавката на блока. Коренната стойност на Merkle също се променя в зависимост от предишните транзакции.

Това също означава, че кореновите стойности се променят често и могат да се използват за проверка на транзакциите почти моментално. 

Всичко това може да звучи малко подобно на хеш-списъка, но това не е вярно. За хеш-списък трябва да изтеглите пълния списък, за да проверите транзакции или данни.

В случая на дървото Merkle можете да изтеглите клона и след това да го използвате, за да проверите транзакциите.

Не е необходимо да изтегляте цялото дърво, за да проверите транзакциите. Това също означава, че цялото дърво може да бъде разделено на малки блокове с данни, които могат да се използват за проверка на транзакциите в цялата мрежа. Концепцията е известна като Меркле доказателства.

Можете също да проверите Merkle дърво python – изпълнение на дърво Merkle в Python статия.

 

Как работят дърветата Merkle в биткойн

Биткойнът беше първата криптовалута, която ефективно използва дърветата Merkle. За да се гарантира, че хеш стойностите са защитени и не могат да бъдат обърнати лесно, той използва известния Secure Hashing Algorithm SHA-256. Това също означава, че изходните стойности на хеш стойности са с дължина 256 бита. В основата си дърветата Merkle се използват за съхраняване на данни и също така за подрязване на транзакции.

Прочетете също, Как да започнем с Blockchain

В биткойн всеки блок е свързан с предишни блокове с помощта на хеш стойности. Така се създава цялата блокчейн. В даден блок има заглавки на блокове, които съдържат важна информация като:

  • Merkle Root Hash
  • Номер на блоковата версия
  • Клеймо за време
  • Nonce
  • Цел за трудност на копаене
  • Предишен блок хеш

За да разберете по-добре, нека разгледаме диаграмата по-долу. Взето е от Бяла книга за биткойни себе си.

Надпис: Merkle дървета в биткойн

Както можете да видите, той изисква от майньорите да включват транзакциите в блока. След като се направи, той се хешира и става част от дървото Merkle.

Използването на Merkle Trees по този начин може да доведе до множество предимства. Това включва една забележителна полза, т.е.проста проверка на плащането (SPV). Тези SVP са възли, които също могат да бъдат наречени като леки клиенти. И така, какво правят? Те просто изтеглят най-дългите заглавки на верижните блокове и следователно не е нужно да изтеглят цялата блокчейн. За да направят всичко това, те трябва да проверят дали има съхранени заглавки на блокове за най-дългата верига. Ето как се изпълнява дървото на Merkle в биткойн.

В крайна сметка SPV може след това да използва Merkle Proof of Map и да провери транзакция, като използва коренния хеш на дървото на Merkle. 

Как се използват дърветата Merkle в Ethereum

Ethereum blockchain също използва дървета Merkle. Тук обаче подходът е различен от този как биткойнът го е използвал. В Ethereum се използва дървото Merkle Patricia, което е сложна версия на дървото Merkle. Това е възможно, тъй като Ethereum е завършен на Тюринг.

Ако искате да научите повече за това как дърветата Merkle работят в Ethereum, вижте подробната публикация тук.

Прилагане на други Merkle Trees: Използвайте случаи

Разбира се, има и други приложения на Merkle дървета. Един от най-популярните е Git – разпределена система за контрол на версиите. Използва се от програмисти от цял ​​свят за управление на техните проекти. 

Друго полезно изпълнение се вижда в Междупланетна файлова система – равноправен разпределен протокол. Освен това е с отворен код и позволява на изчислителните устройства да се присъединят и използват повсеместна файлова система.

Дори сертифициращите органи използват дърветата Merkle в своя полза. Те го използват в механизма за създаване на проверими дневници за прозрачност на сертификата. Тъй като дневникът е огромен, дърветата Merkle позволяват на компютрите да го проверяват, без да губят твърде много време и усилия.

Последният случай на употреба, който ще обсъдим, са системи за бази данни като Amazon DynamoDB и Apache Cassandra. Тези разпределени бази данни No-SQL поемат контрола върху несъответствията, използвайки дървета Merkle по време на процеса на репликация на данни. Ако има някакви проблеми, той може да актуализира или поправи данните, като използва процеса на поправка срещу ентропия.

Накратко, използването на случаи на дървета Merkle включва

  • Синхронизиране на данни
  • Проверка на данните
  • Проверка на последователността

Предимства на Merkle Trees

В този раздел ще разгледаме набързо предимствата на дървото Merkle.

  • Проверете целостта на данните: Той може ефективно да се използва за валидиране на целостта на данните.
  • Отнема малко място на диска: Дървото Merkle отнема малко дисково пространство в сравнение с други структури от данни.
  • Малка информация в мрежите: Merkle дърветата могат да бъдат разделени на малка информация за проверка.
  • Ефективна проверка: Структурата на данните е ефективна и отнема само известно време, за да се провери целостта на данните.

Заключение

Дървото Merkle е едно от важните понятия в компютърните науки. Той се използва широко в много случаи на употреба и използването му в криптовалута е довело до революционна технология, – blockchain.

И така, какво знаете за дърветата Merkle? Коментирайте по-долу и ни уведомете.

Mike Owergreen Administrator
Sorry! The Author has not filled his profile.
follow me
Like this post? Please share to your friends:
Adblock
detector
map