Какие хеши нужны в дереве Меркле?

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

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

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

Так что при каждой модификации вам всегда нужно получать, как минимум, все хэши из первого ряда? (в противном случае, как вы восстанавливаете и проверяете корень хеша merkle?)

1 ответ

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

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

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