Как деревья Merkle могут помочь проверить содержимое блока в блокчейне

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

Это позволяет реализовать упрощенную проверку платежа (или проверку любых других данных в блоке).

Связанное определение гласит, что SVP является

[...] метод проверки, включены ли конкретные транзакции в блок без загрузки всего блока.

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

Неужели мы "просто" полагаемся на тот факт, что значения имеют псевдослучайный характер и что будет трудно создать поддельное дерево с тем же корневым значением, но с другим значением узла?

Спасибо!

1 ответ

Решение

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

Представление Меркле Три

В чем выгода этого?
Блок транзакции должен будет хранить только корень дерева Merkle. Цель, которую заявляет SPV, заключается в том, что любой клиент, выполняющий транзакции в цепочке, может просто сохранить путь хэшей от корня до своей транзакции вместо хранения всей книги, которая может быть очень большой по размеру.

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

Это может быть подделано?
Нет. Как только блок принят в основную цепочку, которая обычно представляет собой добавление еще около 5-6 блоков в биткойнах, ваша транзакция становится необратимой. Сама концепция блокчейна заключается в том, что бухгалтерская книга является неизменной. Это означает, что корень деревьев Merkle также постоянно хранится в регистре и не может быть изменен. Теперь, чтобы отслеживать вашу транзакцию, вы можете просто сохранить заголовки и путь от root до ваших транзакций.

Другие вопросы по тегам