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

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

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

Необходимость эффективной проверки

Начнем с основ. Зачем нужны деревья Меркла и что делает их полезными в контексте блокчейна?

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

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

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

Если это звучит здорово, то это потому, что это так. Деревья Меркла – действительно крутое криптографическое изобретение. Итак, теперь вопрос в том, как они работают?

Краткое руководство по хешированию

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

Если не вдаваться в подробности, хеш – это тип алгоритма, который принимает любые входные данные, независимо от длины, и выводит случайные выходные данные стандартной длины. Например, в Биткойне транзакция «Алиса отправляет Бобу 1 BTC» в конечном итоге выглядит как строка случайных символов:

«3cbcf3e1075b0b3357140de438336733bd6927cd1e78d36cc278324fcce932ad»

Эта строка символов является хешем, и она детерминирована. Это означает, что «A -> B 1BTC »всегда хеширует один и тот же вывод..

Однако у хешей есть еще одно замечательное свойство. Даже небольшое изменение входного потока приводит к резкому изменению выхода. Если мы немного изменим транзакцию на «A-> B 1.1BTC », тогда хеш будет совершенно другим. Поэтому сразу видно, была ли изменена запись хотя бы на один символ..

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

Как сделать дерево Меркла

дерево Меркла просто

Дерево Меркла. Блокчейн-деревья Меркла включают тысячи хешей. Здесь изображены только 8.

Пришло время построить дерево Меркла. Мы будем называть нашу транзакцию Allice / Bob выше “Транзакция А”. Когда эта транзакция добавляется в цепочку блоков, она становится частью блока с другими транзакциями. Для простоты мы будем называть эти транзакции B, C и D.

Каждая из этих транзакций хешируется, поэтому нам не нужно хранить подробности того, кто и сколько была транзакция. Но мы все еще можем доказать, что транзакция не была изменена, потому что у нас есть все хеши. Теперь у нас есть H (A), H (B), H (C) и H (D).

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

Теперь H (A) + H (B) = H (AB) и H (C) + H (D) = H (CD). Комбинируя и хешируя транзакции, мы вдвое уменьшили количество хешей, которые нам нужно хранить. Мы можем сделать то же самое снова, поэтому H (AB) + H (CD) = H (ABCD). Таким образом, теперь у нас есть только один хэш для хранения, который детерминирован на основе хэшей всех базовых транзакций. Этот единственный хеш называется корнем Меркла..

Проверка транзакций с использованием корня Меркла

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

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

Меркл Подтвердите TX

Чтобы подтвердить транзакцию D, нужно знать только H (AB), H (C), H (D) и H (EFGH)..

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

Вывод

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

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