Перейти к основному содержимому

Доказательства Меркла

Когда вы разрешаете имя, API возвращает доказательство членства в Merkle — 128 одноуровневых хешей из разреженного дерева Меркла. Это позволяет вам проверить разрешение, не доверяя серверу.

Как работает проверка

leaf = SHA-256(address)
key = SHA-256("richard.zcash")

current_root
|
/ \
/ \
... ...
/ \
sibling[127] leaf(richard.zcash)

Хэшируйте лист по 128 уровням, используя родственные хеши. Если вы пришли к объявленному smt_root, разрешение правильное.

Редкое дерево Меркла

ZCashNames использует разреженное дерево Меркла (SMT) глубины 128 SHA-256:

  • Глубина 128 - 2^128 возможных слотов, без коллизий
  • SHA-256 на каждом уровне для детерминированного хеширования.
  • Доказательства отсутствия членства – убедитесь, что имя не занято (необходимо при регистрации)
  • Доказательства членства — проверка того, что имя зарегистрировано (возвращается после разрешения)

Детерминированное состояние

Два независимых индексатора, обрабатывающие одни и те же блоки, должны создавать один и тот же корень SMT. Несоответствие означает, что кто-то не прав.

Проверьте текущий корень: GET /v1.0/info