Merkle tree — бинарное дерево, где каждый лист — это кусок данных, каждый не-листовой узел — это криптографический хеш своих двух детей, и единый корневой хеш коммитит ко всему дереву — это одна из фундаментальных структур данных Bitcoin и основа Proof of Reserves. Назван в честь Ральфа Меркле, который запатентовал структуру в 1979 году. Используется в Bitcoin с генезис-блока в 2009.

Что достигает структура

Два свойства имеют значение для крипто-приложений:

Компактный commitment. Единый 32-байтовый корневой хеш представляет произвольные объёмы данных. Дерево Merkle над 1 миллионом транзакций всё ещё производит один 32-байтовый корень.

Эффективное доказательство членства. Чтобы доказать, что конкретная транзакция включена в дерево, вам нужен только путь от листа к корню — обычно 20-32 хеша для деревьев с миллионами листьев. Верификатор хеширует свои данные вдоль предоставленного пути; если перевычисленный корень совпадает с опубликованным корнем, членство доказано.

Где деревья Merkle появляются в вашем плане хранения

Три конкретных примера:

Proof of Reserves на CEX. Bybit, OKX, Bitget, WhiteBIT, MEXC — все публикуют Merkle-tree PoR. Баланс каждого пользователя — это лист в дереве; опубликованный корень коммитит к total. Пользователь может независимо верифицировать, что их баланс включён, проверяя путь Merkle от своего листа к опубликованному корню. Без деревьев Merkle такой вид верифицируемого раскрытия не был бы осуществим в масштабе биржи.

Конструкция блока Bitcoin. Каждый блок содержит корень Merkle всех транзакций в блоке. SPV (simple payment verification) клиенты используют это, чтобы доказать, что конкретная транзакция в подтверждённом блоке без загрузки всего блока. Whitepaper Bitcoin посвящает полный раздел этой конструкции.

Распределение airdrop. Многие airdrop используют деревья Merkle для публикации списка eligibility. Каждый eligible адрес и сумма — это лист; корень коммитится к смарт-контракту airdrop. Чтобы заклеймить, пользователь предоставляет путь Merkle, доказывающий, что их адрес в дереве. Этот паттерн позволяет airdrop миллионам адресов без пропорционального масштабирования стоимости on-chain хранения.

Как верифицировать свой баланс в PoR CEX

Процедура на Bybit:

  1. Войдите в Bybit, перейдите в Account → Proof of Reserves.
  2. Страница показывает ID вашего аккаунта, хеш листа Merkle и путь хеш-братьев от вашего листа к корню.
  3. Сравните отображённый хеш корня с хешем корня на публичной странице PoR Bybit.
  4. Если совпадают, ваш баланс верифицируемо включён в опубликованный total.

Математика: ваш хеш листа, комбинированный с первым братом, производит хеш следующего уровня. Этот хеш, комбинированный со следующим братом, производит уровень после. Продолжая вверх по дереву, конечный результат должен равняться опубликованному корню. Современные PoR-инструменты делают эту верификацию автоматически; для российского холдера после пятизначного долларового порога запускать раз в квартал — значимая операционная привычка.

Что корень Merkle не доказывает

Дерево Merkle коммитит к данным в момент конструкции. Не доказывает, что данные корректны (биржа могла включить некорректные балансы), не доказывает, что соответствующие активы реально существуют (нужны отдельные Proof of Liabilities и Proof of Reserves), и не доказывает, что набор листьев дерева полон (биржа могла полностью пропустить некоторые аккаунты).

Вот почему достойный PoR комбинирует дерево Merkle обязательств с отдельной криптографической аттестацией адресов резервов и независимым аудитом. Дерево Merkle необходимо, но недостаточно.

Дополнительное чтение: Proof of Reserves, CEX.