За да разберете блокчейна, трябва да знаете основните принципи, на които се основава. Вероятно основната характеристика на това е дървото Merkle, понякога наричано хеш дърво. Благодарение на него блокчейнът може да бъде едновременно ефективен и прозрачен. Концепцията е патентована от професор Ралф Меркъл през 1979 г. Сега тя помага за решаване на проблеми в големи децентрализирани мрежи.

Какво е дървото Merkle и как е свързано с криптовалутите? Нека да разберем в тази статия Changelly!

Основи на дървото Merkle

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

Merkle-Tree

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

За какво се използва дървото Merkle?

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

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

Файловите системи използват дървета Merkle за проверка на информация за грешки и разпределени бази данни за синхронизиране на записите. На блокчейн хеш дърветата позволяват опростена проверка на плащанията (SPV).

Клиентите на SPV, наречени леки (защото съхраняват само заглавки на блокове, а не тяхното съдържание), за да проверят информацията за транзакциите, не преизчисляват всички хешове, но изискват доказателство на Merkle. Състои се от корен и клон, който включва хешове от заявената транзакция до корена, тъй като клиентът не се нуждае от информация за други операции. Когато добавя заявените хешове и ги сравнява с корена, клиентът се уверява, че транзакцията е на мястото си.

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

Как работи Merkle Tree в биткойн

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

Всички транзакции в блока Bitcoin са низове в шестнадесетичен формат. Те са хеширани и представени като идентификатори на транзакции (txid). Всички txid в блока се хешират, докато не се получи единична хеш стойност на блока. В процеса се изгражда дървото Merkle:

  1. Първо се изчислява самият txid (ID на транзакция), т.е. хешове на транзакции;
  2. След това хешовете се изчисляват от сумата на хешовете на транзакциите. Дървото Merkle е двоично – т.е. при всяка нова стъпка на хеширане броят на дървесните елементи трябва да бъде четен. Ако блокът има нечетен брой транзакции, хешът на последната се дублира и добавя към себе си;
  3. Новите хешове се изчисляват от хешовете на сумата от хешовете на транзакциите. Процесът продължава, докато се получи единичен хеш (корен на Merkle). Той е посочен в заглавката на блока.

меркле-дърво в дълбочина

В блокчейн Bitcoin дърветата Merkle се изграждат с помощта на двойно хеширане SHA-256. Ето пример за хеширане на здрав низ:

SHA-256 за първи кръг:

2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824

Втори кръг SHA-256:

9595c9df90075148eb06860365df33584b75bff782a510c6cd4883a419833d50

Принципът на Merkle Tree

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

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

Алтернативи на Merkle Tree

Статията разглежда най-простата двоична версия на концепцията, измислена от Ралф Меркъл. В него всеки хеш „родител“ има двама „наследници“. В биткойн се създава хеш дърво, използващо SHA-256 двойно хеширане.

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

ethereum merkle дърво

Mike Owergreen Administrator
Sorry! The Author has not filled his profile.
follow me