Об этом спрашивали уже несколько раз, так что отвечу здесь.

В блоке Bitcoin может содержаться несколько тысяч транзакций, но заголовок блока занимает всего 80 байт. Именно дерево Меркла позволяет с помощью столь небольшого объёма данных «запереть» все транзакции в блоке.

В заголовке каждого блока $BTC записан корень Меркла, который соответствует всем транзакциям в этом блоке. Сейчас 83,316.01 (за 24 ч: +2.19%).

📌 Что это за дерево?

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

Эта структура названа в честь криптографа Ральфа Меркла (Ralph Merkle). Её предложили ещё в конце 1970-х годов — задолго до появления блокчейна.

📌 Почему её нельзя изменить

В заголовке блока Bitcoin хранится корень Меркла. Если изменить любую транзакцию в блоке, её хэш изменится. Это изменение распространится вверх по дереву до корня Меркла, а вместе с ним изменится и хэш блока. В результате все последующие блоки перестанут совпадать.

Поэтому достаточно следить за одним хэшем в заголовке блока — и тем самым контролировать все транзакции в блоке.

📌 Как лёгкий кошелёк проверяет транзакцию

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

Именно так работает упрощённая проверка платежей (SPV), описанная в разделе 8 документа Bitcoin: лёгкий клиент хранит только заголовки блоков, а затем запрашивает у узла путь Меркла и может убедиться, что транзакция включена в блок.

📌 Применение в доказательстве резервов

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

📌 В двух словах

Идея дерева Меркла проста: один короткий корневой хэш представляет большой объём данных. Именно благодаря этому стали возможны такие приложения, как мобильные кошельки и доказательство резервов. Вкладывать лучше только те средства, потерю которых вы сможете перенести.

А вы раньше тоже неправильно это понимали?