Follow Us
Facebooktwitteryoutube
YouTube
Promo
banner
Promo
banner

Путеводитель по деревьям Меркла

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

Итак, что это такое?

В этой статье мы подробно рассмотрим дерево Меркла и поймем его роль в обеспечении успеха технологии блокчейн..

Давайте начнем.

 

Что такое дерево Меркла?

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

И Эфириум, и Биткойн используют деревья Меркла..

Проблема: В основе централизованной сети можно получить доступ к данным из одной единственной копии. Это означает, что им не нужно много делать для хранения данных или доступа к ним. Однако, когда дело доходит до децентрализованной сети блокчейнов, все идет наперекосяк, поскольку все данные копируются между узлами. Таким образом, эффективный доступ к данным является сложной задачей. Задача также состоит в том, чтобы сделать копию данных и поделиться ею между узлами. Кроме того, общие данные должны быть проверены для каждого из принимающих узлов..

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

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

Однако концепция была впервые представлена ​​Ральфом Мерклом, который запатентовал ее в 1979 году. Она была названа в его честь..

Также прочтите, Hyperledger Cactus: A New Hyperledger Framework


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

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

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

Хеш-функции эффективны и известны своим единственным свойством, то есть, функция не может быть отменена. Это односторонняя функция, которая предназначена только для работы в этом режиме.. 

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

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

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

Если вы используете алгоритм хеширования SHA256 и передаете 101Blockchains в качестве входных данных, вы получите следующий результат

fbffd63a60374a31aa9811cbc80b577e23925a5874e86a17f712bab874f33ac9

Подводя итог, можно сказать, что ключевые свойства хэш-функций включают:

  • Детерминированный
  • Устойчивость к предварительному изображению
  • Вычислительно эффективный
  • Невозможно перестроить
  • Устойчивость к столкновениям

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

Как работают деревья Меркла?

Теперь, когда у нас есть хорошее представление о хэш-функциях, пришло время узнать больше о деревьях Меркла..

Итак, технически деревья Меркла – это деревья структур данных, в которых нелистовой узел определяется как хэш-значение его соответствующих дочерних узлов..

Это также означает, что дерево Меркла перевернуто вниз, где листовые узлы являются самым нижним узлом.. 

Чтобы лучше понять, что я пытаюсь передать, давайте взглянем на пример дерева Меркла:

Источник: Википедия.

В основе деревьев Меркла нам нужно изучить три важных термина. Они такие, как показано ниже:

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

Если вы посмотрите на дерево Меркла в целом, то это перевернутое дерево. Дерево способно само по себе суммировать целый набор транзакций. Это означает, что пользователь может проверить, является ли транзакция частью блока или нет..

Чтобы деревья Меркла работали, используется хеширование. Он просто выполняет хеширование пар узлов несколько раз, пока не останется только одно значение хеш-функции. Левое хеш-значение известно как Корень Меркла или корневой хеш. Дерево создается снизу вверх с использованием хешей отдельных транзакций. Хэши отдельных транзакций также известны как идентификаторы транзакций.. 

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

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

 

Пример

Попробуем понять это на примере.

Пример Дерева Меркла

Здесь мы видим, что в блоке произошло четыре транзакции. Эти транзакции называются X, Y, Z и W. Затем транзакции хешируются, а затем сохраняются в конечных узлах, которые мы называем Hash X, Hash Y, Hash Z и Hash W..

После этого листовые узлы хэша X, Y, Z и W снова хешируются и создаются в комбинированный хэш XY и ZW. Наконец, эти два хэша используются для создания корня Меркла или корневого хэша..

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

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

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

 

Что насчет целостности данных?

Дерево Меркла идеально подходит для обеспечения целостности данных. Кроме того, нет необходимости проходить всю транзакцию, чтобы убедиться в ее проверяемости. Транзакции могут быть проверены с использованием информации, хранящейся в заголовке блока. Значение корня Меркла также изменяется в зависимости от предыдущих транзакций..

Это также означает, что корневые значения часто меняются и могут использоваться для почти мгновенной проверки транзакций.. 

Все это может звучать немного похоже на hash-list, однако это не так. Для хеш-списка вам необходимо скачать полный список для проверки транзакций или данных..

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

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

Вы также можете попробовать Python tree Merkle – реализацию дерева Меркла в Python статья.

 

Как деревья Меркла работают в биткойнах

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

Также прочтите, Как начать работу с блокчейном

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

  • Корневой хеш Меркла
  • Номер версии блока
  • Отметка времени
  • Nonce
  • Целевая сложность майнинга
  • Хеш предыдущего блока

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

Подпись под фото: деревья Меркла в биткойнах

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

Таким образом, использование деревьев Меркла может дать множество преимуществ. Это включает в себя одно заметное преимущество, а именно простую проверку платежей (SPV). Эти SVP – это узлы, которые также можно назвать легковесными клиентами. Итак, что же они делают? Они просто загружают самые длинные заголовки блоков цепочки и, следовательно, не должны загружать всю цепочку блоков. Чтобы сделать все это, им необходимо проверить, есть ли в нем сохраненные заголовки блоков для самой длинной цепочки. Вот как реализовано дерево Меркла в биткойнах.

В конце концов, SPV может затем использовать Доказательство карты Меркла и проверить транзакцию с помощью корневого хэша дерева Меркла.. 

Как деревья Меркла используются в Ethereum

Блокчейн Ethereum также использует деревья Меркла. Однако подход здесь отличается от того, как биткойн его использовал. В Ethereum используется дерево Меркла Патрисии, которое является сложной версией дерева Меркла. Это возможно, потому что Ethereum является полным по Тьюрингу..

Если вы хотите узнать больше о том, как деревья Меркла работают в Ethereum, ознакомьтесь с подробным постом. здесь.

Другая реализация деревьев Меркла: примеры использования

Конечно, существуют и другие реализации деревьев Меркла. Одна из самых популярных – Git – распределенная система контроля версий. Программисты со всего мира используют его для управления своими проектами.. 

Еще одна полезная реализация представлена ​​в Межпланетная файловая система – одноранговый распределенный протокол. Он также имеет открытый исходный код и позволяет вычислительным устройствам подключаться и использовать повсеместную файловую систему..

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

Последний вариант использования, который мы собираемся обсудить, – это системы баз данных, такие как Amazon DynamoDB и Apache Cassandra. Эти распределенные базы данных без SQL контролируют несогласованность с помощью деревьев Меркла в процессе репликации данных. Если есть какие-либо проблемы, он может обновить или восстановить данные, используя процесс антиэнтропийного восстановления..

Короче говоря, использование кейсов деревьев Меркла включает

  • Синхронизация данных
  • Проверка данных
  • Проверка согласованности

Преимущества Merkle Trees

В этом разделе мы кратко рассмотрим преимущества дерева Меркла..

  • Проверьте целостность данных: Его можно эффективно использовать для проверки целостности данных..
  • Занимает мало места на диске: Дерево Меркла занимает мало места на диске по сравнению с другими структурами данных.
  • Крошечная информация в сетях: Деревья Меркла можно разделить на крошечные информационные для проверки.
  • Эффективная проверка: Структура данных эффективна и требует всего времени для проверки целостности данных..

Вывод

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

Итак, что вы знаете о деревьях Меркла? Прокомментируйте ниже и дайте нам знать.

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