Генератор и визуализатор дерева Меркла
Гид
Генератор и визуализатор дерева Меркла
Вставьте список значений, выберите функцию хеширования и мгновенно увидите визуальное дерево Меркля со всеми промежуточными хешами узлов и конечным корневым хешем. Выберите SHA-256, SHA-1 или Keccak-256 (хеш, используемый в Эфириуме), настройте правило нечетного листа в стиле Биткоина или режим сортировки пар по OpenZeppelin, и экспортируйте полное дерево в формате JSON. Нажмите на любой узел в схеме, чтобы скопировать его хеш в буфер обмена.
Как использовать
- Введите свои листья в текстовое поле, по одному значению на строку. Попробуйте кнопку примера для быстрого набора данных.
- Выберите функцию хеширования: SHA-256 для общего использования, SHA-1 для устаревших систем или Keccak-256 для корней, совместимых с Эфириумом.
- Выберите, как должна интерпретироваться каждая строка: как текст UTF-8 (по умолчанию) или как уже хешированный шестнадцатеричный строка.
- Выберите правило нечетного листа и режим сцепления пар, соответствующий протоколу, который вы хотите использовать.
- Просмотрите корневой хеш, прокрутите диаграмму SVG и скачайте экспортированный JSON для использования в дальнейших инструментах.
Возможности
- Три функции хеширования – SHA-256, SHA-1 и Keccak-256 охватывают распространённые случаи использования Биткоина, устаревших систем и Эфириума.
- Интерактивная диаграмма SVG – Каждый узел можно скопировать по клику; фантомные дублируемые сестры отображаются со штриховой границей, чтобы структура была честной.
- Стратегии нечетных листьев – Переключайтесь между дублированием последнего (конвенция Биткоина) и повышением последнего (перенос несопоставимого узла без изменений), чтобы соответствовать целевому протоколу.
- Режим сортировки пар – Включите сортировку перед сцеплением в стиле OpenZeppelin, когда требуется корень, совместимый с популярной библиотекой MerkleProof для Solidity.
- Ввод шестнадцатеричного хеша – Пропустите хеширование листьев полностью, вставляя шестнадцатеричные хеш-дигиты напрямую, что полезно, когда исходные листья большие или уже канонизированы.
- Экспорт в формате JSON – Скачайте полную копию каждого уровня, каждого хеша узлов и выбранных параметров для воспроизводимости.
Часто задаваемые вопросы
-
Что такое дерево Меркля?
Дерево Меркля — это двоичное дерево криптографических хешей. Листья — хеши входных данных, а каждый родительский узел — хеш конкатенации его двух детей. Единственный хеш в вершине — корневой хеш Меркля — является отпечатком всего набора данных: изменение любого листа приводит к изменению корня. Деревья Меркля позволяют доказать, что определённое значение принадлежит набору, предоставляя только логарифмическое количество сестринских хешей (доказательство Меркля), что делает их основой для блоков Биткоина, состояния Эфириума, коммитов Git и журналов прозрачности сертификатов.
-
Почему Биткоин дублирует последний хеш при нечетном количестве узлов на уровне?
Чтобы сохранить строго двоичную структуру, Биткоин дополняет уровни с нечетным количеством узлов дублированием правого хеша, чтобы он мог быть сопоставлен с самим собой. Это простое решение, но вводит известную проблему второго предварительного хеширования (CVE-2012-2459), при которой атакующий может иногда создать другой набор листьев, который даст тот же корень. Современные конструкции предпочитают правило «повышения» — перенос несопоставимого хеша без изменений — или использование доменной разделяющей метки между внутренними и листовыми хешами, чтобы закрыть этот разрыв.
-
Как Keccak-256 отличается от SHA-256 и SHA3-256?
Keccak-256 — это первоначальное построение в виде пузырька, которое победило в конкурсе NIST для SHA-3. Перед стандартизацией NIST изменил правило заполнения, создав SHA3-256, который несовместим по байтам с предварительным Keccak-256. Эфириум закрепил оригинальный Keccak-256 до изменения, поэтому функция 'keccak256' в Solidity не совпадает с функцией SHA3-256. SHA-256 относится к несвязанной семье SHA-2 и использует конструкцию Меркля-Дамгård; она имеет только схожее название.
-
Почему некоторые библиотеки Меркля сортируют пару перед хешированием?
Сортировка левого и правого хешей перед конкатенацией делает хеш родительского узла независимым от того, какой из детей является «левым» и какой — «правым». Это означает, что доказательство Меркля требует только сестринских хешей, а не направляющих битов, что делает доказательства на цепи на 30% меньше и значительно упрощает контракт-проверяющий. Библиотека MerkleProof.sol от OpenZeppelin использует этот стандарт; классические блоки Биткоина и Эфириума не используют его. Сортированный вариант чаще всего встречается в списках для аirdrop, в генерации решений и других внецепных обязательств.
Установите наши расширения
Добавьте инструменты ввода-вывода в свой любимый браузер для мгновенного доступа и более быстрого поиска
恵 Табло результатов прибыло!
Табло результатов — это интересный способ следить за вашими играми, все данные хранятся в вашем браузере. Скоро появятся новые функции!
Подписаться на новости
все Новые поступления
всеОбновлять: Наш последний инструмент было добавлено 15 Июня 2026
