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 від свого листа до опублікованого кореня.

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

Розподіл airdrop. Багато airdrop використовують дерева Merkle для публікації списку eligibility. Кожна eligible адреса і сума — це лист; корінь коммітиться до смарт-контракту airdrop. Щоб заклеймити, користувач надає шлях Merkle, доказуючи, що їх адреса в дереві.

Як верифікувати свій баланс у PoR CEX

Процедура на WhiteBIT (або Bybit):

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

Математика: ваш хеш листа, комбінований з першим братом, виробляє хеш наступного рівня. Цей хеш, комбінований з наступним братом, виробляє рівень після. Продовжуючи вгору по дереву, кінцевий результат повинен дорівнювати опублікованому кореню.

Що корінь Merkle не доказує

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

Ось чому гідний PoR комбінує дерево Merkle зобов'язань з окремою криптографічною атестацією адрес резервів і незалежним аудитом. Дерево Merkle необхідне, але недостатнє.

Подальше читання: Proof of Reserves, CEX.