Доказательства Меркла
Когда вы разрешаете имя, 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