Як будується корінь Меркла?
Почни з ідентифікатора кожної транзакції в блоці, який сам є подвійним хешем SHA-256. Розташуй їх по порядку, спочатку coinbase. Об’єднай сусідні хеші в пари й захешуй кожну пару. Тепер хешів удвічі менше. Повторюй, доки не залишиться один: це і є корінь Меркла.
Якщо на рівні непарна кількість хешів, останній поєднується сам із собою. Зміни будь-яку транзакцію, навіть на один сатоші, і кожен хеш на її шляху до вершини зміниться, зокрема й кореневий. Спробуй у демо вище.
Чому дерево, а не один великий хеш?
Докази. Щоб показати, що транзакція є в блоці, потрібні лише хеші на її гілці, а не весь блок. Для блока приблизно з 4 000 транзакцій достатньо лише 12 таких хешів, це кількасот байтів. У технічному документі Сатоші описані легкі гаманці, які перевіряють платежі в такий спосіб і зберігають лише заголовки блоків.
Це також важливо для майнінгу. Коли майнер змінює додатковий nonce у coinbase-транзакції, корінь Меркла змінюється, і в заголовку блока з’являється новий набір nonce для перевірки.
Джерела
- Bitcoin: пірингові електронні гроші · Satoshi Nakamoto, 2008
- Посилання про блокчейн: заголовки, дерева Меркла, ціль · Документація розробника Bitcoin
- Дерево Меркла · Bitcoin Wiki
Актуальні дані на цій сторінці надходять з API CloudMineCrypto та публічних даних блокчейну, регулярно оновлюються й позначені там, де відображаються. Лише для ознайомлення, не фінансова порада.