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:
- Войдите в Bybit, перейдите в Account → Proof of Reserves.
- Страница показывает ID вашего аккаунта, хеш листа Merkle и путь хеш-братьев от вашего листа к корню.
- Сравните отображённый хеш корня с хешем корня на публичной странице PoR Bybit.
- Если совпадают, ваш баланс верифицируемо включён в опубликованный total.
Математика: ваш хеш листа, комбинированный с первым братом, производит хеш следующего уровня. Этот хеш, комбинированный со следующим братом, производит уровень после. Продолжая вверх по дереву, конечный результат должен равняться опубликованному корню. Современные PoR-инструменты делают эту верификацию автоматически; для российского холдера после пятизначного долларового порога запускать раз в квартал — значимая операционная привычка.
Что корень Merkle не доказывает
Дерево Merkle коммитит к данным в момент конструкции. Не доказывает, что данные корректны (биржа могла включить некорректные балансы), не доказывает, что соответствующие активы реально существуют (нужны отдельные Proof of Liabilities и Proof of Reserves), и не доказывает, что набор листьев дерева полон (биржа могла полностью пропустить некоторые аккаунты).
Вот почему достойный PoR комбинирует дерево Merkle обязательств с отдельной криптографической аттестацией адресов резервов и независимым аудитом. Дерево Merkle необходимо, но недостаточно.
Дополнительное чтение: Proof of Reserves, CEX.