Дерево Меркла (Merkle): что это и где применяется?

Каждый, кто однажды сталкивался с проблемой долгосрочного хранения электронной информации встречал понятие дерева Меркла. Но что это такое, где используется, и как загадочное дерево может помочь в сохранении информации, так и остается для большинства неизвестным. В этой статье мы разберемся: что называют деревом Меркла, и какую играет роль в мире криптовалют.

  1. Что такое дерево Меркла?
  2. Как доказать подлинность данных спустя время?
  3. Как хэшевое дерево используется в Биткоин?
  4. Почему блокчейн Биткоина нельзя изменить?
  5. OneTimeStamps и Хэшевое дерево

Что такое дерево Меркла (Mercle’s Tree)?

Дерево Меркла – это одна из разновидностей хэш-функций, которые позволяют преобразовывать входящую информацию в битовую строку определенного размера. Проще говоря, порция данных кодируется в цепь цифр, которая и называется хэшем.

Хэш всегда уникален, он не позволяет восстанавливать информацию, но зато прекрасно используется для проверок: даже при минимальном изменении информации, меняется и хэш тоже. То есть, если у вас есть доступ к исходной информации, то при их хэшировании должен получиться тот же код. Если это не так – то исходные данные не верны.

Дерево Меркла в некоторых источниках может называться деревом хэшей или обозначаться аббревиатурой TTH (Tiger Tree Hashing). Главные функции дерева хэшей:

  • Способность присваивать каждому электронному документу собственный идентификатор (хэш);
  • Проверка целостности документа;
  • Восстановление удаленного файла.

Хэшевое дерево было разработано в 1979 году Ральфом Мерклом и названо в его честь. Структура системы получила такое название еще и потому, что напоминает собой дерево. В узлах системы данных располагаются хэши, которые получены на основе информации дочерних узлов (обычно у каждого хэша таких узла два). В конечных узлах – листочках – системы располагаются хэши блоков данных.

Говоря простым языком, дерево Меркла – схема, хэширующая большое количество информации. При этом данные объединяются в порции, которые структура хэширует, получившиеся хэши также объединяются, потом снова хэшируются и так далее до тех пор, пока не получится один главный хэш, образующий вершину всего дерева. Таким образом, хэшевое дерево позволяет сохранить большое количество данных, ведь процесс преобразования может длиться сколько угодно, а результатом всегда будет один-единственный хэш.

Как произвести проверку данных при таком большом количестве исходной информации? Все просто: для решения этой задачи необходим лишь главный хэш, который еще называют «корнем Меркла». Чтобы не «перерывать» всю структуру дерева в поисках нужно информации, нужно только знать, где именно располагается нужный хэш, и когда именно была создана структура.

Как доказать подлинность данных спустя долгое время?

Если требуется зашифровать структуру таким образом, чтобы даже спустя долгое время можно было проверить подлинность исходных данных, то используется схема цифровой подписи Меркла.

Схема цифровой подписи разработана на основе хэшевого дерева и использует в своей структуре разработку одноразовой подписи. В совокупности с деревом Меркла одноразовую подпись может использовать один ключ не только для одного, а для определенного количества электронных файлов.

!Обратите внимание! Одноразовая подпись позволяет разрабатывать файлы, которые будет невозможно взломать, даже используя компьютеры более высокой мощности.

А значит, электронный документ теоретически можно будет защищать от взлома на весь срок его хранения.

Как хэшевое дерево используется в Биткоин?

Биткоин – платежная система, которая для проведения операций использует собственную валюту с одноименным названием. Отличительной особенностью валюты биткоин является то, что она является виртуальной и существует только в Интернете.

Несмотря на то, что биткоин выполняет все функции реальных денег — на него можно покупать, продавать, биткоином можно торговать на биржах, аналогично рублям или долларам — он ничем не контролируется. Именно этим эта валюта и привлекательна: ваши деньги – только ваши, и ни один банк в мире не сможет на них повлиять.

Как связаны Биткоин и дерево Меркла? Все дело в том, что для защиты всей структуры платежная система использует методы криптографии (шифровки).

Блокчейн – это непрерывная цепь порций (блоков) данных, которые связаны между собой определенным алгоритмом. Блокчейн Биткоина по сути своей является хэшевым деревом, но имеет и свои отличия от него. Хэшевое дерево представляет собой древовидную структуру с конечным хэшем (корнем Меркла). Блокчейн Биткоина – это линейная структура, каждый блок информации Биткоина хэшируется, и полученный хэш включается в другой блок, который также хэшируется и так далее. Линейная структура блокчейна Биткоина является таймлайном, то есть распределяется по шкале времени.

Почему блокчейн Биткоина нельзя изменить?

Если кто-то захочет поменять историю блокчейна, то просто удалением или изменением информации это сделать невозможно. Измененные или удаленные данные преобразуются уже в совершенно другой хэш. А поскольку каждый хэш включается в следующий блок, который также хэшируется, блок этот и все последующие блоки и хэши изменяются, и таймлайн становится недействительным. Единственный способ скрыть или удалить данные – заново создать блокчейн Биткоина, а это очень дорого.

OpenTimestamps и хэшевое дерево

Проект OpenTimestamps – это новая разработка от Питера Тодда, одного из членов команды Bitcoin Core. OpenTimestamps дает возможность отследить изменение данных блокчейна.

!Обратите внимание! То есть теперь у каждого пользователя есть возможность проверить, был ли создан электронный документ не позже определенной даты.

Каждый блок данных имеет дату. В качестве доказательства Питер Тодда провел эксперимент: он соединил почти миллиард хэшей файлов из Интернета с хэшевым деревом Меркля. Полученный корневой хэш поместили в строку транзакции Биткоина, а затем включили в цепь блокчейна. В результате все хэши имеют определенную дату, что дает возможность проверки создания документа.

Обсудить/оставить отзыв

Оставьте первый комментарий!

avatar
wpDiscuz