Merkle Tree Proof: Дерево Меркла В Эфире и Блокчейне

2 мин на чтение

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

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

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

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

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

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

вредоносная программа биткоин

Вы думаете, если бы существовал более простой способ сделать проверить целостность файла?

К счастью, именно здесь на помощь приходят деревья Меркла. С помощью одного из них ваш файл разбивается на части. Если бы это был файл размером 50 ГБ, вы могли бы разделить его на сто частей, каждый размером 0,5 ГБ. Затем он будет загружен по частям. По сути, это то, что вы делаете, когда загружаете торрент-файлы.

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

Для простоты возьмем пример, в котором мы используем файл размером 8 ГБ, разбитый на восемь частей. Вызов различных фрагментов А через Н. Затем каждый фрагмент проходит через хеш-функцию, что дает нам восемь различных хешей.

Дерево Меркла и хеш-функции

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

Хорошо, у нас есть кое-что, что имеет немного больше смысла. У нас есть хэш всех фрагментов, поэтому, если один из них неисправен, мы узнаем, сравнив его с исходным, верно?

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

Нет. Вместо этого мы собираемся взять каждую пару хешей, объединить их, а затем хешировать вместе. Итак, мы хешируем hA + hB, hC + hD, hE + hF и hG + hH. В итоге получаем четыре хэша. Затем мы проводим еще один раунд хеширования, чтобы получить два. Наконец, мы хэшируем оставшиеся два, чтобы получить наш главный хеш - корень Меркла (или корневой хеш).

Дерево Меркла и хеш-функции

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

Продолжение следует…

Оставайтесь на связи.

Добавляйте этот блог в закладки потому, что здесь самая правдивая и экспертная информация!

Антон Састрпцин

Антон Састрпцин

Является старшим аналитиком фондового рынка ММВБ. Работает в сфере финансовых услуг с 2014 года.

Разделы:

Дата изменения: